分类变量组间差异分析

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

你可能感兴趣的:(肿瘤生信分析,r语言-4.2.1)