MathGroup Archive 2000

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Second Opinion

  • To: mathgroup at smc.vnet.net
  • Subject: [mg26382] Re: [mg26373] Second Opinion
  • From: BobHanlon at aol.com
  • Date: Sat, 16 Dec 2000 02:40:12 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Needs["Statistics`DiscreteDistributions`"];

dist = PoissonDistribution[mu];

Domain[dist]

Range[0, Infinity]

PDF[dist, x]

mu^x/(E^mu*x!)

Verify that the distribution is valid on the domain

Sum[PDF[dist, x], {x, 0, Infinity}] == 1

True

mu == Mean[dist] == Variance[dist]

True

CDF[dist, x]

GammaRegularized[1 + Floor[x], mu]

FullSimplify[
  CDF[dist, x] == Sum[PDF[dist, k], {k, 0, x}], 
  Element[x, Integers]]

True

Plot[CDF[PoissonDistribution[5], n], {n, 0, 10}, PlotPoints -> 101, 
    PlotStyle -> RGBColor[1, 0, 0]];

Plot3D[CDF[PoissonDistribution[mu], n], {mu, 1, 5}, {n, 0, 6}, 
    PlotPoints -> 25];

Demonstrating that the mean of Poisson data is the maximum likelihood 
estimate for the parameter mu

data = Table["x" <> ToString[k], {k, 20}];

(mu /. Solve[D[(Plus @@ Log[PDF[dist, #] & /@ data]), mu] == 0, mu][[1]]) == 
  Mean[data]

True

data = RandomArray[PoissonDistribution[10*Random[]], {250}];

(mu /. Solve[D[(Plus @@ Log[PDF[dist, #] & /@ data]), mu] == 0, mu][[1]]) == 
  Mean[data]

True


Bob Hanlon

In a message dated 12/13/00 3:40:40 AM, john.lai at worldnet.att.net writes:

>I tried to calculate Poisson Distribution in a backdoor way and used
>mathematica to model it.  I could not get what I wanted.  I don't think
>it
>is mathematica problem and more than likely my method is flawed.  So I
>toss
>this out to see if some of you may spot my error.
>
>Poisson Distribution,P(n) =1-Summation [exp(-n)*(n^x)]/Factorial(x)  where
>x
>goes from 0 to N-1
>
>For given n and N, P(n) can be determined easily.  However, I want to
>determine N if P(n) and n are specified and I do not want to get access
>to
>Poisson lookup table.  My idea is to calculate P(n) with a series of n
>and N
>(essentially generating the tables).  Plot a surface curve whose variables
>are n, P(n) and N.  The idea was once this surface is obtained, with x-axis
>as n, y-axis as P(n) and z-axis as N, then for a given n and P(n) I can
>obtain N.
>
>I wrote a C program to generate P(n) and use mathematica to plot this
>surface.  I have 14 sets of n and in each set of n, I have 139 variables
>(i.e. N runs from 1 to 140 ), so there are 139 corresponding values of
>P(n)
>for each n.  When I tried to use the function Fit to estimate this surface,
>it took about   hr for my 500MHz desktop to calculate!  And the resultant
>expression is huge!
>
>Then, I cut down the dimension of my data set.  For each n, I generated
>10
>values of N and repeated the process again.  However, no matter what
>combination of polynomial I used (x,x^-1,Exp(-x),Exp(-x^2),Exp(-x-y).),
>the
>resulting equation of the surface is meaningless.  It doesn't look right
>(at
>least I expected it to resemble some sort of Poisson or even Gaussian shape)
>and substituting P(n) and n back, I got garbage.  I have enclosed a .nb
>file
>for reference.  [Contact the author to obtain this file - moderator]
>
>So after all this, does it mean that my scheme of calculating Poisson
>Distribution is fundamentally wrong?
>Any suggestions are appreciated and thanks in advance.
>


  • Prev by Date: RE: Bug in Package Graphics`Graphics` ?
  • Next by Date: Hypercube Graphing
  • Previous by thread: Re: Second Opinion
  • Next by thread: Bug in Limit Package