質問
Excel(またはOpenOffice Calc)でPOISSON関数を使用する場合、2つの引数を取ります:
- 整数
- 「平均」数
フロートを返します。
Python(RandomArrayとNumPyを試しました)では、ランダムなポアソン数の配列を返します。 私が本当に欲しいのは、このイベントが発生する割合です(定数であり、配列は毎回異なる数を持っています-それで平均ですか?)。
例:
print poisson(2.6,6)
[1 3 3 0 1 3]
を返します(実行するたびに異なります)。
calc / excelから取得した数値は3.19( POISSON(6,2.16,0)* 100
)です。
Pythonのポアソンを間違って使用していますか(しゃれはありません!)、または何か不足していますか?
解決
手作業で行うのは簡単ですが、その方法でオーバーフローさせることができます。オーバーフローを回避するために、ループで指数と階乗を行うことができます。
def poisson_probability(actual, mean):
# naive: math.exp(-mean) * mean**actual / factorial(actual)
# iterative, to keep the components from getting too large or small:
p = math.exp(-mean)
for i in xrange(actual):
p *= mean
p /= i+1
return p
他のヒント
このページでは、配列を取得する理由を説明しています。少なくともその中の数字の意味。
所属していません StackOverflow