这个问题看起来很简单,但你对它的反思表明它并不是那么简单。
实际上,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
Prob(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% 的增长。