0

我有这个数据集:

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 的评论。

4

2 回答 2

0

如果要计算每条记录的 p_value,请使用以下代码,这更容易:

#alternative : {‘two-sided’, ‘greater’, ‘less’},
from scipy.stats import binom_test
binom_test(x= number_of_occurance, n = number_of_trail, p= probability, alternative= 'greater')
于 2018-06-22T21:14:01.583 回答
0

二项分布是离散分布。因此以下是正确的 P(X>14) = P(X>=15)。

因此,如果 binom.cdf 计算 P(X > N) 的概率(是吗?我没有找到它的文档)如果你想测试 P( X >= N)。

于 2017-03-04T12:38:47.033 回答