Determine function from Poisson PDF with lambda < 1

4 次查看(过去 30 天)
I am trying to fit a function to a set of data with a Poisson distribution. Using poissfit, I determined the lambda (mean) is less than 1.
Looking at the Poisson PDF, it only handles integer values (i.e. counting), so how do I determine a Poisson function when lambda < 1?
For example, say I have a data set of 20 values consisting of only 0's and 1's. Perhaps 15 total 0's and 5 total 1's, so the lambda = 0.25.
This example is a realistic distribution for counting. However, lambda < 1 doesn't make sense because one would need at least 1 "event" to make sense of a Poisson distribution.
My only work-around thought would be to scale the non-zero values. Using the example dataset above, say I scaled the 20 values by a factor of 100: 15 zero's and 5 100's. Lambda = 25, so I could plot a smooth function and then scale/normalize it back. Counting only 0's and 100's is not realistic, so this shouldn't be valid. Right?

采纳的回答

the cyclist
the cyclist 2023-2-17
编辑:the cyclist 2023-2-17
It is not accurate to say "one would need at least 1 'event' to make sense of a Poisson distribution". The events can be very rare (low probability of observation during a particular interval), but still be Poisson.
Taking your case ...
lambda = 0.25;
count = 0:10;
prob = poisspdf(count,lambda);
bar(count,prob)
xlabel("Count during interval")
ylabel("Probability of this count")
If the mean probability is 0.25, then most of the time, you see zero events, sometimes 1, and quite rarely more than 1.

更多回答(1 个)

John D'Errico
John D'Errico 2023-2-17
编辑:John D'Errico 2023-2-17
I don't see the problem. Yes, you need good data. Not having sufficient data will kill any chances for do anything, but what do you expect?
A Poisson distribution is a counting distribution. Think of it as counting the number of events that are seen in some interval of time.
The Poisson rate lambda is equal to the mean of the distribution. Large rates are equivalent to seeing many arrivals in a unit time. Small rates tell you that you expect to see few arrivals. For example:
poissrnd(1,[1,12])
ans = 1×12
0 2 4 0 1 0 1 0 0 0 0 2
In the above example, we see a significant number of times where there would be more than 1 Poisson arrival in a unit time. But with a smaller Poisson rate
poissrnd(0.25,[1,12])
ans = 1×12
0 1 0 1 0 1 0 0 0 1 0 0
With that small of a poisson rate, you expect it to be a moderately rare event where you would see any arrivals at all in a unit of time. And that makes complete sense.
So I'm not at all sure what is your problem. lambda<1 is perfectly reasonable. It probably means that you might have considered using a longer time span. It certainly means more data would help.
And no, scaling your data will not help at all.

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by