gpt4 book ai didi

python - 泊松模拟未按预期工作?

转载 作者:太空宇宙 更新时间:2023-11-03 19:34:40 25 4
gpt4 key购买 nike

我有一个简单的脚本来设置泊松分布,方法是构造概率 = 0.1 的“事件”数组,然后计算每组 10 中的成功次数。它几乎可以工作,但分布不太好正确(P(0) 应等于 P(1),但约为 P(1) 的 90%)。好像存在一种离一的错误,但我无法弄清楚它是什么。该脚本使用 here 中的 Counter 类(因为我有 Python 2.6 而不是 2.7 )并且分组使用 itertools,如讨论的 here 所示。这不是一个随机问题,重复给出的结果非常严格,总体平均值看起来不错,组大小看起来也不错。我有什么搞砸的地方吗?

from itertools import izip_longest
import numpy as np
import Counter

def groups(iterable, n=3, padvalue=0):
"groups('abcde', 3, 'x') --> ('a','b','c'), ('d','e','x')"
return izip_longest(*[iter(iterable)]*n, fillvalue=padvalue)

def event():
f = 0.1
r = np.random.random()
if r < f: return 1
return 0

L = [event() for i in range(100000)]
rL = [sum(g) for g in groups(L,n=10)]
print len(rL)
print sum(list(L))

C = Counter.Counter(rL)
for i in range(max(C.keys())+1):
print str(i).rjust(2), C[i]

$ python script.py
10000
9949
0 3509
1 3845
2 1971
3 555
4 104
5 15
6 1
$ python script.py
10000
10152
0 3417
1 3879
2 1978
3 599
4 115
5 12

最佳答案

我对你的数学进行了组合现实检查,看起来你的结果实际上是正确的。 P(0) 不应大致等于 P(1)

.9^10 = 0.34867844 = probability of 0 events
.1 * .9^9 * (10 choose 1) = .1 * .9^9 * 10 = 0.387420489 = probability of 1 event

我想知道你是否不小心这样算了:

.1 * .9^10 * (10 choose 1) = 0.34867844 = incorrect probability of 1 event

关于python - 泊松模拟未按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4135837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com