Well,
I am definetly glad that someone has also stumbled onto the same problem.
But it is nevertheless intriguing, that you can run poisson a million
times with mean zero or negative(it assumes zero mean inthis
case) without any problems by itself. But when I call it within my
code, the rate of error is very high (I would say it returns a wrong
result every time, but I haven't checked every answer).
Meanwhile, my solution will be:
import rpy
n = rpy.r.rpois(n,mean)
I don't feel I can trust poisson while this "funny" behavior is still there...
If someone has any Idea of how I could trace this bug please tell me,
and I'll hunt it down. At least I can reproduce it in a very specific
context.
thanks,
Flávio
Hi Flavio!
I had reported this long time ago and this list (about numarray).
Somehow this got more or less dismissed. If I recall correctly the argument
was that nobody could reproduce it (I ran this on Debian Woody , py2.2, (with
CVS numarray at the time).
I ended up writting my own wrapper(s):
def poissonArr(shape=defshape, mean=1):
from numarray import random_array as ra
if mean == 0:
return zeroArrF(shape)
elif mean < 0:
raise "poisson not defined for mean < 0"
else:
return ra.poisson(mean, shape).astype(na.UInt16)
def poissonize(arr):
from numarray import random_array as ra
return na.where(arr<=0, 0, ra.poisson(arr)).astype(na.UInt16)
(I use the astype( na.UInt16) because of some OpenGL code)
Just last week had this problem on a windows98 computer (python2.4).
This should get sorted out ...
Thanks for reporting this problem.
Sebastian Haase
On Tuesday 12 July 2005 13:32, Flavio Coelho wrote:
> Hi,
>
> I am having problems with the poisson random number generators of both
> Numarray and Numeric.
> I can't replicate it when calling the function from the python cosonle, but
> it has consistently malfunctioned when used within one of my scripts.
>
> What happens is that it frequently return a value greater than zero when
> called with zero mean: poisson(0.0)
>
> Unfortunately My program is too big to send attached but I have confirmed
> the malfunction by printing both the mean and the result whenever it spits
> out a wrong result.
>
> This is very weird indeed, I have run poisson millions of times by itsel on
> the python console, without any problems...
>
> I hope it is some stupid mistake, but when I replace the poisson function
> call within my program by the R equivalent command (rpois) via the rpy
> wrapper, everything works just fine...
>
> any Ideas?