【发布时间】:2017-04-03 00:06:57
【问题描述】:
我对 binom.test 的操作感到困惑。
假设我想针对 p=0.5 测试 4/10 成功的样本。 P值应该是:
P(X =6) 要么 P(X
确实:
>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 = 103) 要么 P(X
这是
>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,因此存在舍入误差。就是这样,还是发生了其他事情?
【问题讨论】:
-
我想说是时候深入研究代码了...
标签: r floating-accuracy binomial-cdf