# Why do I get different results from poisspdf and computing the probability myself?

4 views (last 30 days)
Daniel LeJeune on 4 Sep 2014
Edited: Daniel LeJeune on 5 Sep 2014
I'm writing a maximum likelihood estimator for the Poisson distribution, and I get different results from using poisspdf versus computing the probability myself with the formula (which is listed on the help page for poisspdf). I'm taking the log-likelihood, and here's my code:
n = 40;
d = 10;
X = poissrnd(30, [d n]);
mlearray = zeros(100,1);
mlearray2 = zeros(100,1);
mlearray3 = zeros(100,1);
for lambda = 1:100
mlearray(lambda) = sum(sum(log(poisspdf(lambda, X))));
mlearray2(lambda) = sum(sum(X*log(lambda)-lambda-log(factorial(X))));
mlearray3(lambda) = sum(sum(log(lambda.^X*exp(-lambda)./factorial(X))));
end
plot(mlearray)
hold on
plot(mlearray2,'r')
plot(mlearray3,'g:')
axis([20 40 min(mlearray(20:40)) max(mlearray)])
hold off
mlearray2 and mlearray3 give the same result, as expected (and the correct result I might add, with a peak at 30), while mlearray peaks at 29. This difference persists regardless of n and d. It doesn't appear to be an off-by-one error, since adding or subtracting a one here and there fails to fix the peak without distortion of the curve.
EDIT: minor code tweak unrelated to the issue.

Yu Jiang on 5 Sep 2014
Edited: Yu Jiang on 5 Sep 2014
Hi Daniel
I think you need to change
poisspdf(lambda, X)
to
poisspdf(X,lambda)
This is according to the documentation at the following link
- Yu
Daniel LeJeune on 5 Sep 2014
Edited: Daniel LeJeune on 5 Sep 2014
Thanks, that was it. I must have overlooked that. I guess it makes sense that they would be close since the expectation of X is lambda, but I wonder why it's off by one.

### Categories

Find more on Poisson Distribution in Help Center and File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!