一次样本测试

时间:2018-11-05 05:42:56

标签: python

我想用Python进行“比例的单样本测试”。我找到了此文档one sample proportion ztest example,但我不知道如何使用它。例如,计数和点数是什么。在这两个示例中,example1提供了一个用于计数和nob的数字,但是example2提供了两个数字。

对于结果,我想知道事件发生率高于60%的p值

Example1

>>> count = 5
>>> nobs = 83
>>> value = .05
>>> stat, pval = proportions_ztest(count, nobs, value)
>>> print('{0:0.3f}'.format(pval))
0.695

Example2

>>> import numpy as np
>>> from statsmodels.stats.proportion import proportions_ztest
>>> count = np.array([5, 12])
>>> nobs = np.array([83, 99])
>>> stat, pval = proportions_ztest(counts, nobs)
>>> print('{0:0.3f}'.format(pval))
0.159

我的数据看起来像这样

Yes No
1   0
1   0
1   0
0   1
0   1
1   0
1   0
0   1
0   1
0   1
0   1
0   1

您能帮忙解释一下如何使用它并举一些例子吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

在示例1的情况下:

nobs是试验的总数,即列表中的行数。

count是成功试用的次数,即列表中Yes个事件的数量。

value是根据您的问题文本进行测试的比例,即0.6

这里的零假设是,这些值给出的单个样本是从与指定value相等的比例的分布中提取的。

对于示例2:

有两个独立的样本,nobscount向量的第一个条目代表第一个样本,第二个代表第二个样本。然后value被省略,零假设是两个样本具有相等的真实比例。

答案 1 :(得分:0)

有关如何使用this document的说明在注释中。 以科学计数法打印p值:

from decimal import Decimal
print('{0:.2E}'.format(Decimal(pval))) 

答案 2 :(得分:0)

user10605163提供的答案对于所提出的问题是正确的。

但是,由于statsmodel中的proportions_ztest使用经典的统计方法,即使用正态分布来近似二项式分布,因此从proportions_ztest获得的p值与从<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <style> .non-italic-class{ font-size: 25px; font-weight: 900; font-family: "futura-pt", sans-serif; } .italic-class{ font-style: italic; } </style> </head> <body> <span class="non-italic-class">NON ITALIC</span> <br> <span class="non-italic-class italic-class">ITALIC</span> </body> </html> 计算得到的p值不同第一原则。

在这个计算时代,似乎不再需要使用正态分布来近似二项式,特别是对于如此小的试验规模。

您可以使用一些组合运算来计算概率空间,或者可以模拟多组试验并直接获得p值,而无需任何测试统计信息。