Re: binomial distribution

• To: mathgroup at smc.vnet.net
• Subject: [mg33670] Re: [mg33658] binomial distribution
• From: "Johannes Ludsteck" <johannes.ludsteck at wiwi.uni-regensburg.de>
• Date: Sat, 6 Apr 2002 00:48:44 -0500 (EST)
• Organization: Universitaet Regensburg
• Sender: owner-wri-mathgroup at wolfram.com

```Dear Nadia,
you seem to be one of the millions of users trying
to obtain good answers to *bad* questions!
How should someone answer your question if he does
not know
1) How large were N and X[[N]] when the error
message was given, was it 500 or 10^20?
2) how is p defined?
3) Which program do you use to generate the lists,
Nest, FoldList, Do, For?

By the way: X[[n]] may increase rapidly
(of course, depending on the definition of p).
Thus, if for example X[[n]] == 1000, it becomes
computationally very demanding to draw 'good' random
numbers from a binomial distribution.
(If you are interested in the details,
have a look at the Package where
the random draws are programmed.
A simple algorithm is to make thousand (!)
draws from a Bernoulli Distribution with
parameter p.)
However, it is **highly!** inefficient to
draw from a binomial distribution if X[[n]] > 100,
since (you should have learned this in
an introductory statistics course)
the binomial distribution converges rapidly
to a normal distribution
and it is computationally very 'cheap'
to draw from a normal distribution. Thus
you simply have to transform the binomial distribution
to a normal if X > 100 or so.

When I replicate your what you *probably* did, I obtain

In[1]:=
p=Table[Random[Real,{0.1,0.5}],{40}];

In[2]:=
FoldList[
#1+Random[BinomialDistribution[#1,#2]]&,1,p]

Out[2]=
{1,1,1,1,1,1,1,1,1,1,2,3,3,3,4,4,6,8,8,9,
10,11,14,19,26,36,43,55,75,94,122,166,210,
268,396,564,640,831,1187,1757,2068}

Though my values in p are between 0.1 and 0.5 and
X[[1]] = 1, X[[40]] is larger than 2000.
Therefore I advise you to use the normal distribution
transformation.

Best regards,
Johannes

On 4 Apr 2002, at 19:40, Nadia Lalam wrote:

Hello,

I have to define a sequence recursively with the binomial distribution
in the following way :

X[[n+1]]=X[[n]]+Random[BinomialDistribution[X[[n]],p[[n]]], n ranging
from 1 to some N

The first terms of the sequence are well constructed with Mathematica
but as X[[n]] grows, I had the message

Internal counter overflow.
Some expression evaluations may not run to their
final fixed points.  Try redoing your computation
on a 64-bit enhanced version of Mathematica.

Could you tell me how to solve this problem?