1,频数表列联表
一维频数表
table <- table(data$low)
table
0 1
130 59
prop.table(table)#百分比
0 1
0.6878307 0.3121693
二维频数表
table1 <- table(data$low,data$smoke)
table1
0 1
0 86 44
1 29 30
addmargins(table1)
0 1 Sum
0 86 44 130
1 29 30 59
Sum 115 74 189
prop.table(table1,margin = 1)##行比例
0 1
0 0.6615385 0.3384615
1 0.4915254 0.5084746
prop.table(table1,margin = 2)##列比例
0 1
0 0.7478261 0.5945946
1 0.2521739 0.4054054
2,独立性检验
1,卡方检验
对于一般的列联表,可以使用函数chisq.test()进行 卡方检验。例如,要想知道母亲吸烟情况和新生儿低体重之间的关系是否独立,可以使用下面的命令:
mytable <-table(data$smoke,data$low)
mytable
chisq.test(mytable)
Pearson's Chi-squared test with Yates' continuity correction
data: mytable
X-squared = 4.2359, df = 1, p-value = 0.03958
函数chisq:test()的参数correct用于设置是否进行连续性校正,默认为TRUE,故在输出中有说明“Pearson‘s Chi-squared test with Yates‘continuity correction”。对于频数表中每个单元格的期望频数都比较大(大于5)的大样本,可以将这个参数设为FALSE,即不进行连续性校正。
chisq.test(mytable)$expected
0 1
0 79.10053 35.89947
1 50.89947 23.10053
每个单元格的期望频数都比较大,所以可以尝试将参数correct设为FALSE:
chisq.test(mytable,correct = F)
Pearson's Chi-squared test
data: mytable
X-squared = 4.9237, df = 1, p-value = 0.02649
不论是否进行连续性校正,母亲吸烟情况与新生儿低体重都存在显著的关联(p<0.05)。
2,Fisher精确概率检验
如果观察总记录数n小于40,或者频数表里的某个期望频数很小(小于1),则需要使用Fisher精确概率检验。函数fisher.test()可用于执行该检验。即使期望频数都较大,仍然可以尝试使用Fisher精确概率检验。
fisher.test(mytable)
Fisher's Exact Test for Count Data
data: mytable
p-value = 0.03618
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
1.028780 3.964904
sample estimates:
odds ratio
2.014137
函数fisher.test()不仅可以运用于四格表,还可以运用于行列数大于2的列联表。
3,相对危险度与优势比
library(epiDisplay)
cs(data$smoke,data$low)
Exposure Outcome Non-exposed Exposed Total Negative 86 29 115 Positive 44 30 74 Total 130 59 189 Rne Re Rt Risk 0.34 0.51 0.39 Estimate Lower95ci Upper95ci Risk difference (attributable risk) 0.17 0.02 0.31 Risk ratio 1.5 1.02 2.21 Attr. frac. exp. -- (Re-Rne)/Re 0.33 Attr. frac. pop. -- (Rt-Rne)/Rt*100 % 13.56 Number needed to harm (NNH) 5.88 3.26 58.85 or 1/(risk difference)
4,Cochran-Mantel-Haenszelx²检验
两个变量的关联有可能受到第三个变量的影响,因此我们有必要检验两个分类变量在调整(控制)第三个变量的情况下是否独立。Cochran-Mantel-Haenszel x²检验常用于探索变量间的混杂因素。其零假设是:两个分类变量在第三个变量的每一层都是条件独立的。函数mantelhaen.test()可以用来进行该检验。
mytable1 <-table(data$smoke,data$low,data$race)
mantelhaen.test(mytable1)
Mantel-Haenszel chi-squared test with continuity correction
data: mytable1
Mantel-Haenszel X-squared = 8.3779, df = 1, p-value = 0.003798
alternative hypothesis: true common odds ratio is not equal to 1
95 percent confidence interval:
1.490740 6.389949
sample estimates:
common odds ratio
3.086381
参考:
1:R语言医学数据分析实战/赵军编著.–北京:人民邮电出版社,2020.8
原文地址:https://blog.csdn.net/hx2024/article/details/134793677
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_42172.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!