如何测试比例的增加

机器算法验证 r 部分
2022-03-20 17:06:43

假设我有一个列联表:

           score
           <=2  [3-4]  >=5
no_event   248    796  288
event       71    419  285

我计算了每个分数类别( 和 )的<=2事件[3-4]百分比>=5特此绘图(每个条形图的顶部显示events / (events+no_event).

在此处输入图像描述

我想测试>2-> [3-4]->之间的比例增加>=5是否有意义。

我的第一个想法是使用 chisq 或 Fisher 精确测试。

 m <- matrix(c(248,71,796,419,288,285),ncol=3)
 fisher.test(m)$p.value
 [1] 9.640235e-17

但是这个测试没有考虑类别的顺序 >2-> [3-4]->>=5

有任何想法吗 ?

谢谢

1个回答

一种是使用Cochran Armitage 趋势检验R中有一个实现。我想您对事件与非事件感兴趣,因此您需要翻转矩阵:

library(DescTools)
m <- matrix(c(71,248,419,796,285,288),ncol=3)
CochranArmitageTest(m)

Cochran-Armitage test for trend

data:  m
Z = 8.5195, dim = 3, p-value < 2.2e-16
alternative hypothesis: two.sided

由于您有两组,并且您知道事件的平均分数更高,您还可以使用 wilcoxon 测试分数的差异:

event_scores =  rep(1:3,m[1,])
noevent_scores =  rep(1:3,m[2,])

wilcox.test(event_scores,noevent_scores)

    Wilcoxon rank sum test with continuity correction

data:  event_scores and noevent_scores
W = 618058, p-value < 2.2e-16
alternative hypothesis: true location shift is not equal to 0