我有这个数据集:
ItemNumber Successes Trials Prob
15 14 95 0.047
9625 20 135 0.047
19 14 147 0.047
24 12 120 0.047
20 15 133 0.047
22 8 91 0.047
9619 16 131 0.047
10006 8 132 0.047
25 15 127 0.047
我想确定每个项目的累积二项式分布 p 值,以了解观察到相同或更高数量的项目出现的概率。
我使用了这段代码:
import sys
import scipy
from scipy.stats.distributions import binom
import sys
for line in open(sys.argv[1], 'r').readlines():
line = line.strip().split()
Item,num_succ,num_trials,prob = line[0],int(line[1]),int(line[2]),float(line[3])
print Item + "\t" + str(num_succ) + "\t" + str(num_trials) + "\t" + str(prob) + "\t" + str(1 - (binom.cdf(num_succ, num_trials, prob)))
输出如下所示:
Item NumSucc NumTrials Prob Binomial
15 14 95 0.047 3.73e-05
9625 20 135 0.047 1.48e-06
19 14 147 0.047 0.004
24 12 120 0.047 0.0043
20 15 133 0.047 0.00054
22 8 91 0.047 0.027
9619 16 131 0.047 0.0001
10006 8 132 0.047 0.169
25 15 127 0.047 0.0003
问题:当我选择一条线并对照这样的在线工具检查获得的累积二项式 p 值时:http: //stattrek.com/online-calculator/binomial.aspx,结果不一样。
例如,
对于第 20 项(# 成功 = 15,# 试验 = 133,概率 = 0.047):
My Binomial P Val = 0.00054
StatTrek P Val = 0.0015
但是,我可以从 StatTrek 看到,我查找的是累积概率:P(X>15),但是由于我想要“等于或大于”,所以我真正想要计算的是P(X> =15) (即 0.0015)。
我正在努力正确编辑上面的代码,将 P 值从"find number of occurrences greater than"更改为"find the number of occurrences greater than or equal to"。如果有人可以证明我会很感激。如果你看这个问题,我试图关注 Volodymyr 的评论。