这个问题看起来很简单,但是您对它的思考表明,它并不是那么简单。
实际上,p值是统计理论中相对较晚的补充。在没有计算机的情况下计算p值非常繁琐。这就是为什么直到最近才执行统计测试的唯一方法是使用统计测试表,正如我在此博客文章中所解释的。由于这些表是针对固定水平(通常为0.05、0.01和0.001)计算的,因此您只能使用这些水平进行测试。α
计算机使这些表无用,但是测试的逻辑仍然相同。你应该:
- 提出零假设。
- 提出另一种假设。
- 确定您准备接受的最大I类错误(错误拒绝无效假设的概率)错误。
- 设计一个拒绝区域。假设零假设是您的水平,则检验统计量落入拒绝区域的可能性。正如@MånsT所解释的,这应该不小于您可以接受的I类错误,并且在许多情况下使用渐近逼近。α
- 进行随机实验,计算测试统计量,并查看其是否在拒绝区域内。
从理论上讲,事件“统计量落在拒绝区域”和“ p值小于 ”α之间存在严格的等价关系,这就是为什么您可以改为报告p值的原因。实际上,它允许您跳过步骤3,并在测试完成后评估类型I错误。
回到您的帖子,原假设的陈述是不正确的。零假设在于翻转头的概率为(零假设不能涉及的随机试验的结果)。1 / 2
如果您以0.05的阈值p值一次又一次地重复实验,是的,您应该有大约 5%的拒绝率。而且,如果您将p值截止值设为0.06,则最终的拒绝率约为6%。更一般而言,对于连续测试,通过定义p值p
Pr o b (p < x )= x ,(0 < x < 1 ),
这仅适用于离散测试。
这是一些R代码,我希望可以澄清一下。二项式测试相对较慢,因此我只进行10,000次随机实验,其中可以翻转1000个硬币。我执行二项式检验并收集10,000个p值。
set.seed(123)
# Generate 10,000 random experiments of each 1000 coin flipping
rexperiments <- rbinom(n=10000, size=1000, prob=0.5)
all_p_values <- rep(NA, 10000)
for (i in 1:10000) {
all_p_values[i] <- binom.test(rexperiments[i], 1000)$p.value
}
# Plot the cumulative density of p-values.
plot(ecdf(all_p_values))
# How many are less than 0.05?
mean(all_p_values < 0.05)
# [1] 0.0425
# How many are less than 0.06?
mean(all_p_values < 0.06)
# 0.0491
您会发现比例并不精确,因为样本数量不是无限的,并且测试是离散的,但是两者之间仍然有大约1%的增长。