对于 1,000,000 次观察,我观察到一个离散事件 X,对照组 3 次,测试组 10 次。如果三个在统计上与十个不同,我如何确定大量观察(1,000,000)?
确定对于大量观察 (1,000,000),三个是否在统计上不同于十
巨大的分母摆脱了一个人的直觉。由于样本量相同且比例较低,因此可以重述问题:发生了 13 个事件,并且预期(根据零假设)在两组中同样发生。事实上,一组中有 3 人,另一组中有 10 人。那有多罕见?二项式测试答案。
在 R 中输入这一行: binom.test(3,13,0.5,alternative="two.lateral")
双尾 P 值为 0.09229,与 Fisher 检验结果的四位数相同。
这么看,结果也就不足为奇了。这个问题相当于这个问题:如果你掷硬币 13 次,看到三个或更少,或十个或更多的正面是多么令人惊讶。其中一种结果将在 9.23% 的时间内发生。
(双边)Fisher 精确检验给出 p-value = 0.092284。
function p = fexact(k, x, m, n)
%FEXACT Fisher's Exact test.
% Y = FEXACT(K, X, M, N) calculates the P-value for Fisher's
% Exact Test.
% K, X, M and N must be nonnegative integer vectors of the same
% length. The following must also hold:
% X <= N <= M, X <= K <= M and K + N - M <= X. Here:
% K is the number of items in the group,
% X is the number of items in the group with the feature,
% M is the total number of items,
% N is the total number of items with the feature,
if nargin < 4
help(mfilename);
return;
end
nr = length(k);
if nr ~= length(x) | nr ~= length(m) | nr ~= length(n)
help(mfilename);
return;
end
na = nan;
v = na(ones(nr, 1));
mi = max(0, k + n - m);
ma = min(k, n);
d = hygepdf(x, m, k, n) * (1 + 5.8e-11);
for i = 1:nr
y = hygepdf(mi(i):ma(i), m(i), k(i), n(i));
v(i) = sum(y(y <= d(i)));
end
p = max(min(v, 1), 0);
p(isnan(v)) = nan;
对于您的示例,请尝试fexact(1e6, 3, 2e6, 13)
.
我认为一个简单的卡方检验就可以了。您是否有 1,000,000 个用于控制和测试的观察值?如果是这样,您的观察表将是(在 R 代码中)
编辑:哎呀!留下一个零!
m <- rbind(c(3, 1000000-3), c(10, 1000000-10))
# [,1] [,2]
# [1,] 3 999997
# [2,] 10 999990
卡方检验将是
chisq.test(m)
返回卡方 = 2.7692,df = 1,p 值 = 0.0961,这在 p < 0.05 的水平上没有统计学意义。如果这些无论如何都可能具有临床意义,我会感到惊讶。
在这种情况下,泊松是个案数量分布的良好近似值。有一个简单的公式来近似 log RR(delta 方法)的方差。
log RR = 10/3 = 1.2,se log RR = sqrt(1/3+1/10) = 0.66,所以 95%CI = (-0.09; 2.5)
采用双边检验在 0.05 水平上差异不显着。Poisson 模型的基于 LR 的卡方检验给出 p=0.046 和 Wald 检验 p=0.067。该结果类似于没有连续性校正的 Pearson 卡方检验(Chi2 校正 p=0.096)。另一种可能性是 chisq.test,带有选项 simulation.p.value=T,在这种情况下 p=0.092(对于 100 000 次模拟)。
在这种情况下,检验统计量相当离散,因此 Fisher 检验可以是保守的。有一些证据表明差异可能很大。在得出最终结论之前,应考虑数据收集过程。