1. 首页
  2. 自学中心
  3. 理论
  4. 数据分析

趋势性检验 Cochran-Armitage检验

基本概念

Cochran-Armitage检验,是一种线性趋势检验,指经过logistic变换后呈现线性变化趋势。适用于处理分组变量为有序分类变量(K≥3),结局变量为二分类变量,即K×2列联表资料,因此又称趋势卡方检验

趋势性检验 Cochran-Armitage检验

例:研究者想分析偏头痛药物的剂量与药物眩晕副作用是否存在线性关系。

趋势性检验 Cochran-Armitage检验

无效假设

H0:P1=P2=……=Pk

备择假设

单侧(上升趋势):H1:P1<P2<……<Pk

单侧(下降趋势):H1:P1>P2>……>Pk

双侧:H1:P1<P2<……<PkH1:P1>P2>……>Pk

在线性趋势检验中,需要用到变量在卡方检验中没有用到的顺序信息,这就面临着如何对变量进行赋值的问题,不同的赋值方法得到的检验结果显然不同。

Cochran-Armitage趋势检验不同赋值的模拟研究》一文对Cochran-Armitage趋势检验中的三种赋值方法,即等距赋值、均秩赋值、MERT法赋值,通过计算机模拟进行比较,发现三种方法的检验效能非常接近,但Ⅰ类错误率以等距赋值方法最低。综合模拟结果和应用的便利性,有序分类数据的Cochran-Armitage趋势检验采用等距赋值更值得提倡

等距赋值:指相邻两个等级赋值的差为一个不等于0的常数。如本例的五个等级可以赋值为1、2、3、4、5,也可以赋值为1、3、5、7、9,也可以赋值为50、100、150、200、250,这些赋值最终的分析结果都是一样的。

均秩赋值:即按照每个等级的平均秩次进行赋值赋值。如本例的五个等级可以赋值为x1=(1+149)/2=75x2=149+(1+142)/2=220.5x3=149+142+(1+120)/2=351.5x4=149+142+120+(1+181)/2=502x5=149+142+120+181+(1+54)/2=619.5

MERT法:采用极大极小效率原理进行赋值。

R语言

1. Cochran-Armitage检验

CochranArmitageTest(),默认等距赋值

CAT <- matrix(c(13, 136, 17, 125, 16, 104, 32, 149, 9, 45), nrow = 5, byrow = T)
dimnames(CAT) <- list("Dose" = c("50", "100", "200", "300", "500"),
                       "Dizziness" = c("Yes", "No"))
CAT
趋势性检验 Cochran-Armitage检验
library(DescTools)
CochranArmitageTest(CAT)
趋势性检验 Cochran-Armitage检验

2. Logistic回归(将Dose作为连续型变量)

H0:β=0

library(rstatix)
CAT_df <- counts_to_cases(CAT)

CAT_df$DoseC <- NA
CAT_df$DoseC[CAT_df$Dose == "50"] <- 1
CAT_df$DoseC[CAT_df$Dose == "100"] <- 2
CAT_df$DoseC[CAT_df$Dose == "200"] <- 3
CAT_df$DoseC[CAT_df$Dose == "300"] <- 4
CAT_df$DoseC[CAT_df$Dose == "500"] <- 5

fit <- glm(Dizziness ~ DoseC, family = binomial(link = "logit"), CAT_df)
summary(fit)
趋势性检验 Cochran-Armitage检验

3. CMH检验(Correlation统计量)

library(vcdExtra)
CMHtest(CAT, types = "cor")
趋势性检验 Cochran-Armitage检验

SAS

1. Cochran-Armitage检验

默认原始数值,不另外赋值

data CAT;
input Dose Dizziness Count;
cards;
50 1 13
50 0 136
100 1 17
100 0 125
200 1 16
200 0 104
300 1 32
300 0 149
500 1 9
500 0 45
run;

proc freq data = CAT;
table Dose * Dizziness / trend nocol nopercent scores = table;
weight Count;
run;
趋势性检验 Cochran-Armitage检验
趋势性检验 Cochran-Armitage检验

等距赋值

data CAT2;
set CAT;
if Dose = 50 then DoseC = 1;
if Dose = 100 then DoseC = 2;
if Dose = 200 then DoseC = 3;
if Dose = 300 then DoseC = 4;
if Dose = 500 then DoseC = 5;
run;

proc freq data = CAT2;
table DoseC * Dizziness / trend nocol nopercent scores = table;
weight Count;
run;
趋势性检验 Cochran-Armitage检验
趋势性检验 Cochran-Armitage检验

2. Logistic回归(将Dose作为连续型变量)

Score检验的结果等价于Cochran-Armitage检验的结果

proc logistic data = CAT2;
Model Dizziness = DoseC / cl rl;
weight Count;
run;
趋势性检验 Cochran-Armitage检验

SPSS

SPSS不直接提供Cochran-Armitage Trend Test,可用Linear-by-Linear Association (LLA) test代替进行线性趋势检验。

趋势性检验 Cochran-Armitage检验

N为样本量,r为两个变量之间的Pearson相关系数

趋势性检验 Cochran-Armitage检验

1. Linear-by-Linear Association (LLA) Test

趋势性检验 Cochran-Armitage检验
趋势性检验 Cochran-Armitage检验

趋势性检验 Cochran-Armitage检验

2. Logistic回归(将Dose作为连续型变量)

趋势性检验 Cochran-Armitage检验
趋势性检验 Cochran-Armitage检验

Block0为空模型,即只有截距,没有其他协变量。Variables not in the Equation为每一个协变量单独加入模型中时的contribution。

趋势性检验 Cochran-Armitage检验

手动计算

N为样本量,Y为事件数,ni为各等级的样本量,yi为各等级的事件数,xi为有序分类变量的赋值

1. 正态近似法

采用等距赋值(1、2、3、4、5)

趋势性检验 Cochran-Armitage检验

不另外赋值(50、100、200、300、500)

趋势性检验 Cochran-Armitage检验

2. 构建卡方统计量

采用等距赋值(1、2、3、4、5)

趋势性检验 Cochran-Armitage检验

不另外赋值(50、100、200、300、500)

趋势性检验 Cochran-Armitage检验

其它

1. 卡方检验 vs 单因素logistic回归

单因素logistic回归的结果和卡方检验的结果是等价的。在logistic回归中,对于整个模型和回归系数的检验采用的是似然比检验(LR)、Wald检验以及Score检验,三者输出的统计量均服从卡方分布。Score检验的 值等于卡方检验的Pearson 值,同样似然比检验的 值等于卡方检验的似然比 值。

2. 在回归分析中,对于分类变量, SPSS和SAS默认Last作为Reference,R语言默认First作为Reference。我个人比较习惯以First作为Reference,SPSS和SAS改为First Reference的操作如下:

SPSS

趋势性检验 Cochran-Armitage检验
趋势性检验 Cochran-Armitage检验

SAS

proc logistic data = CAT;
class Dose (param = ref ref = first);
Model Dizziness = Dose / cl rl;
weight Count;
run;
趋势性检验 Cochran-Armitage检验

R

CAT_df$Dizziness <- factor(CAT_df$Dizziness)
CAT_df$Dose <- factor(CAT_df$Dose)

fit2 <- glm(Dizziness ~ Dose, family = binomial(link = "logit"), CAT_df)
summary(fit2)
趋势性检验 Cochran-Armitage检验

参考文献

Cochran-Armitage趋势检验不同赋值的模拟研究《中国卫生统计》

Cochran-Armitage Trend Test Using SAS

lexjansen.com/pharmasug

Cochran-Armitage test for trend for 2xI tables

ibm.com/support/pages/c

搞懂传统单因素分析和单因素回归分析的纠葛,有这篇文章

sohu.com/a/205111806_48

本文来自zhihu,观点不代表一起大数据-技术文章心得立场,如若转载,请注明出处:https://zhuanlan.zhihu.com/p/450066515

联系我们

在线咨询:点击这里给我发消息

邮件:23683716@qq.com

跳至工具栏