【问题标题】:How to calculate p-value for coin toss?如何计算抛硬币的p值?
【发布时间】:2021-08-03 01:56:24
【问题描述】:

我试图计算以下抛硬币示例的 p 值:

n = 5
h = 4  # out of 5 toss 4 are head

# calculate pvalue using equal or more extreme cases
pval = P(4H1T) + P(4T1H) + P(5H) + P(5T)
     = 5/32    + 5/32    + 1/32  + 1/32
     = 12/32
     = 0.375

但是当我尝试标准方法时:

from scipy import stats

phat = h / n
p0 = 0.5  # for unbiased coin
q0 = 1 - p0
z = (phat - p0) / sqrt(p0q0/n)      

pval = 1 - stats.norm.cdf(z)

我明白了:

0.08985624743949994.

问题 1

如何使用 python scipy stats (answer = 0.375) 获得类似的结果?

参考文献

在这个 statquest 视频中,作者解释了如何使用相等或更多的极值获得 pvalue,我们得到 0.375

但是在这里,

使用给定的公式,我们得到另一个答案。

问题 2

哪种方法比较好,可以比较pvalue和alpha?

【问题讨论】:

    标签: python statistics p-value


    【解决方案1】:

    z 值是正态分布的标准化值,它不是概率。此外,连续分布中精确值的概率有点棘手。这种情况听起来最适合二项分布。

    from scipy.stats import binom
    binom.pmf(4,5,0.5)
    

    哪些输出:

    0.15625
    

    【讨论】:

      【解决方案2】:

      这是一个二项分布情况。按照scipy.stats.binom_test中的官方示例:

      import numpy as np
      from scipy import stats
      
      alpha = 0.05
      pval = stats.binom_test(4, n=5, p=0.5, alternative='two-sided')
      
      print('pvalue = ', pval)
      if pval< alpha:
          print("We Reject the Null Hypothesis.")
      else:
          print("We Accept the Null Hypothesis.")
      

      输出

      pvalue =  0.375
      We Accept the Null Hypothesis.
      
      

      【讨论】:

        猜你喜欢
        • 2019-10-28
        • 1970-01-01
        • 2021-03-04
        • 1970-01-01
        • 1970-01-01
        • 2014-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多