我对 binom.test 的操作感到困惑。
假设我想针对 p=0.5 测试 4/10 成功的样本。P 值应为:
P(X <= 4) + P(X >=6) 或 P(X <= 4) + 1-P(X <= 5)
确实:
>pbinom(4,10,p=0.5) + 1-pbinom(5,10,0.5)
[1] 0.7539063
或者:
>binom.test(4,10,p=0.5)
Exact binomial test
data: 4 and 10
number of successes = 4, number of trials = 10, p-value = 0.7539
但是现在我想针对 p=0.66 测试一个 95/150 的样本,这里的期望值是 99,所以 P 值应该是
P(X <= 95) + P(X >= 103) 或 P(X <= 95) + 1-P(X <= 102)
这是
>pbinom(95,150,.66) + 1-pbinom(102,150,.66)
[1] 0.5464849
但
>binom.test(95,150,.66)
Exact binomial test
data: 95 and 150
number of successes = 95, number of trials = 150, p-value = 0.4914
事实上,这两个 P 值的差值正好是dbinom(103,150,.66)
。所以看起来 R 没有包含 X=103。
我能猜到的唯一解释是,由于 0.66 的不精确表示导致 R 错过 X=103,因此存在舍入误差。这就是全部,还是有其他事情发生?