Background - SymPy.stats has three major components for three different
kind of distributions

Finite Random Variables -  like dice, coins, and binomials  -- uses Python
iterators
Continuous Random Variables -  like normals, exponentials, and chi squares
-- Uses SymPy Integrals
Discrete Random Variables -  like poisson  -- Uses SymPy Summations

Discrete is the newest and least mature and could presumably use work.

1) The Geometric and Poisson random variable types exist in the
> drv_types.py file, and I'm able to use them in code, but they aren't
> mentioned in the documentation (
> http://docs.sympy.org/latest/modules/stats.html) as far as I can tell. I
> would be willing to add these to the docs if they should be there.
>

Yes.  They should be there.  This would be a good and hopefully simple
contribution.  It looks like the discrete random variables didn't make it
into docs.


>
> 2) The expected value calculation E() seems to take a long time for
> certain types, like Binomial.  For example,
> >>> X = Binomial("x", 10000, S.Half)
> >>> E(X)
>
> takes quite a while (over 10 seconds on my computer). Not sure if this is
> some weird issue with my setup, or an inefficiency in the code. If it's an
> inefficiency, we should think about providing built-in expected value
> formulas for common types like Binomial (which has a very simple formula
> that should return almost immediately even for large values).
>

So things like Binomials could be implemented as either Finite or
Discrete.  Currently they're under finite which means that they use Python
iterators for solution.  This is extremely robust but also very slow.  It
would be nice if they would try discrete-like functionality
(sympy.summation) and then default to finite-like functionality (explicit
iterators).


>
> 3) There isn't a Negative Binomial (
> http://en.wikipedia.org/wiki/Negative_binomial_distribution) random
> variable type. I've written code that implements it, I believe, if we want
> to include it in SymPy.
>

Awesome.  This is totally welcome. You might want to ping @raoulb on any
github work.  He has some experience adding distributions in the past.

Please also ping me @mrocklin , on any work done on this topic and please
ask more questions.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to