有朋友问两个比值数据,怎么求他们的 p 值?
例如,两组人,分别接受两种药物治疗,想知道疗效之间是否有差异,计算 p 值。
接受药物 1 治疗,30 人,其中 20 人有疗效,10 人没有疗效。
接受药物 2 治疗,30 人,其中 10 人有疗效,20 人没有疗效。
直观上判断,药物 1 的疗效要好(20:10 vs 10:20),但与药物 2 的疗效相比,是否达到了显著性的差异了呢?
这种情况可以用 fisher
检验来探索,R 代码如下:
fisher.test(matrix(c(20, 10, 10, 20), ncol = 2))
##
## Fisher's Exact Test for Count Data
##
## data: matrix(c(20, 10, 10, 20), ncol = 2)
## p-value = 0.01938
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 1.212812 13.467843
## sample estimates:
## odds ratio
## 3.901234
可以看到,p 值 = 0.01938,如果显著性阈值定为 0.05,则两种药物的疗效达到了统计学意义的上差异。
另外判断差异时,不仅要看 p 值,还要看 OR 值,这里的 OR 值 = 3.901234,其 95 % 置信区间为 1.212812 - 13.467843,是有意义的。OR 的置信区间不能跨过 1,否则 p 值再小也无意义。