卡方检验

chisq.test()函数对二维表的行列变量进行卡方检验

使用vcd包中Arthritis数据集

library(vcd)

生成列联表格式

mytable <- xtabs(~Treatment+Improved,data = Arthritis)

卡方检验

chisq.test(mytable)

Pearson's Chi-squared test

data: mytable
X-squared = 13.055, df = 2, p-value = 0.001463

p值小于0.05,说明治疗情况和改善情况不独立。

Fisher精确检验
fisher.test()函数
格式fisher.test(mytable),mytable是一个二维列联表

library(vcd)
mytable <- xtabs(~Treatment+Improved,data = Arthritis)

调用fisher.test()函数

fisher.test(mytable)

Fisher's Exact Test for Count
Data

data: mytable
p-value = 0.001393
alternative hypothesis: two.sided

P小于0.05,两者之间不独立

Cochran-Mantel-Haenszel检验
为两个二分类变量进行分层卡方检验。
mantelhaen.test()

mytable <- xtabs(~Treatment+Improved+Sex,data = Arthritis)

调用mantelhaen.test()函数

mantelhaen.test(mytable)

Cochran-Mantel-Haenszel test

data: mytable
Cochran-Mantel-Haenszel M^2 =
14.632, df = 2, p-value =
0.0006647

结果表明,患者接受的治疗与得到的改善在性别的每一水平下并不独立

其他实例

#四个表卡方检验--数据框数据格式
a <- c(9,2)
b <- c(4,9)
y <- data.frame(a,b)
chisq.test( y) 
chisq.test(y,correct = F)  #无连续性较正计算结果
chisq.test(y)$observed  #观察值(实际数)
chisq.test(y)$expected  #期望值(理论数)
print('=======================')
fisher.test(y)
#四个表卡方检验---矩阵数据格式
z <- matrix(c(12, 5, 7, 7), ncol = 2)
chisq.test(z) 
print('======================')
#行X列表卡方检验
x <- matrix(c(50,48,18,72,105,10,7,23), ncol = 2)
chisq.test(x)
print('======================')