本文介绍: 两个变量关联可能受到第三变量影响,因此我们有必要检验两个分类变量在调整(控制)第三变量的情况下是否独立函数chisq:test()的参数correct用于设置是否进行连续性校正默认为TRUE,故在输出中有说明“Pearsons Chisquared test with Yatescontinuity correction”。对于一般的列联表可以使用函数chisq.test()进行 卡方检验函数fisher.test()不仅可以用于四格表,还可以用于行列大于2的列联表

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,独立性检验

t检验(连续变量)和卡方检验(分类变量)-CSDN博客

一文汇总卡方检验全部内容 – 知乎 (zhihu.com)

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)
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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注