我想用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
您能帮忙解释一下如何使用它并举一些例子吗?
谢谢!
答案 0 :(得分:1)
在示例1的情况下:
nobs
是试验的总数,即列表中的行数。
count
是成功试用的次数,即列表中Yes
个事件的数量。
value
是根据您的问题文本进行测试的比例,即0.6
。
这里的零假设是,这些值给出的单个样本是从与指定value
相等的比例的分布中提取的。
对于示例2:
有两个独立的样本,nobs
和count
向量的第一个条目代表第一个样本,第二个代表第二个样本。然后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值,而无需任何测试统计信息。