R语言线性趋势检验:Cochran Armitage 检验
Cochran Armitage
检验是一种线性趋势检验,常用于自变量是有序分类变量,而因变量是二分类变量的资料,可以用来检验自变量和因变量存不存在线性趋势。
注意和Cochran-Mantel-Haenszel
检验区分,CMH检验
是研究两个分类变量之间关联性的一种检验方法。但有时数据除了我们研究的变量外,还混杂或隐含了其它的变量,如果将这些变量纳入分析中,则有可能得出完全不同的结论,著名的Simpson悖论
就是这个问题的典型案例。
关于CMH检验的内容可以参考之前的推文:R语言卡方检验方法总结
换句话说,在2 x 2表格数据的基础上,引入了第三个分类变量,称之为混杂变量。混杂变量的引入使得CMH检验
可以用于分析分层样本,作为生物统计学领域的一种常用技术,该检验常用于疾病对照研究。
现在我们想要了解某种药物剂量和疗效之间的关系,药物剂量有50mg,100mg,200mg,300mg,500mg,5个水平,疗效分为有效/无效两个水平。这种情况可以使用Cochran Armitage
检验。
df <- matrix(c(13, 136, 17, 125, 16, 104, 32, 149, 9, 45),
nrow = 5, byrow = T,
dimnames = list("Dose" = c("50", "100", "200", "300", "500"),
"effect" = c("Yes", "No"))
)
df
## effect
## Dose Yes No
## 50 13 136
## 100 17 125
## 200 16 104
## 300 32 149
## 500 9 45
首先可以计算一下不同药物剂量下的有效率是多少:
df[,1]/rowSums(df)
## 50 100 200 300 500
## 0.08724832 0.11971831 0.13333333 0.17679558 0.16666667
可以看到随着药物剂量增加,有效率整体也是增加的,下面使用CAM检验验证一下。
使用DescTools
包中的CochranArmitageTest()
函数进行检验:
DescTools::CochranArmitageTest(df)
##
## Cochran-Armitage test for trend
##
## data: df
## Z = 2.2116, dim = 5, p-value = 0.02699
## alternative hypothesis: two.sided
结果显示P值为p-value = 0.02699,小于0.05,可以认为疗效会随着药物剂量增加而增加。
现在的df
是一个频数统计表类型的数据,我们可以把它变成每行一个患者的数据,然后进行logistic回归看看结果。
df1 <- rstatix::counts_to_cases(df)
psych::headTail(df1)
## Dose effect
## 1 50 Yes
## 2 50 Yes
## 3 50 Yes
## 4 50 Yes
## ... <NA> <NA>
## 643 500 No
## 644 500 No
## 645 500 No
## 646 500 No
把Dose
变成数值型:
df1$Dose <- as.numeric(factor(df1$Dose))
summary(glm(effect~Dose, data = df1,family = binomial()))
##
## Call:
## glm(formula = effect ~ Dose, family = binomial(), data = df1)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.1762 0.4435 0.4912 0.6001 0.6616
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 2.48493 0.29598 8.396 <2e-16 ***
## Dose -0.21544 0.08985 -2.398 0.0165 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 510.57 on 645 degrees of freedom
## Residual deviance: 504.71 on 644 degrees of freedom
## AIC: 508.71
##
## Number of Fisher Scoring iterations: 4
logistic回归的结果也显示,剂量的P值是小于0.05的。
下面是CMH检验的一个补充。
默认的CMH检验只能进行3个变量的检验,vcdExtra
中的CMHtest()
可以进行两个变量的CMH检验。
vcdExtra::CMHtest(df, types = "cor")
## Cochran-Mantel-Haenszel Statistics for Dose by effect
##
## AltHypothesis Chisq Df Prob
## cor Nonzero correlation 5.8217 1 0.015829
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的