卡方检验在计数资料中的应用,包括推断两个总体率或构成比之间有无差别、多个总体率或构成比之间有无差别、多个样本率间的多重比较、两个分类变量之间有无关联性、多维列联表的分析和频数分布拟合优度的卡方检验。选自:周支瑞老师
下面分别介绍计数资料怎么进行卡方检验。
目 录1. 四格表资料的卡方检验1.1 数据集数据
1.2 向量或矩阵数据
1.3 chisq.test()函数
2. Fisher确切概率法
3. 配对四格表资料的卡方检验3.1 b+c < 40
3.2 b+c ≥ 40
3.3 mcnemar.test()函数
4. Cochran-Mantel-Haenszel检验4.1 mantelhaen.test()函数
4.2 数据集形式的数据
4.3 向量或数组数据
4.4 计算各层OR值
4.5 Breslow-Day检验
4.6 BreslowDayTest()函数
4.7 WoolfTest()函数
5. 计算列联系数
6. 频数分布拟合优度的卡方检验
1. 四格表资料的卡方检验
1.1 数据集数据
选用survival包的colon数据集。
library(survival) #加载内置数据集的包
data(colon) # 加载数据集
mytable
chisq.test(mytable) # 进行连续性校正
chisq.test(mytable, correct = FALSE) # 不进行连续性校正
无论是否进行连续性校正,结果都显示p值>0.05,接受原假设,说明sex和status无关。
还可以输出卡方检验摘要:chisq.test(mytable)$observed # 实际频数(和mytable一样)
chisq.test(mytable)$expected # 期望频数
chisq.test(mytable)$residuals # Pearson 残差
chisq.test(mytable)$stdres # 标准化残差
1.2 向量或矩阵数据
compare
dimnames = list(c('male', 'female'),
c('Yes', 'No')));compare
chisq.test(compare)
注意:在使用chisq.test()函数计算时,要注意单元格的期望频数。如果所有单元格频数都不为零,并且所有单元的期望频数≥5,那么Pearson卡方检验是合理的,否则会显示警告信息。
如果在计算时出现警告信息,表明表中单元格期望频数有<5的值,这可能会使卡方近似无效。
如果数据不满足卡方检验的条件时,应使用Fisher精确检验。
1.3 chisq.test()函数
chisq.test()函数可以进行卡方列联表检验和拟合优度检验。chisq.test(x, y = NULL, # x是由数据构成的向量或矩阵,y是数据向量(当x为矩阵时,y忽略)
correct = TRUE, # 逻辑词,默认为TRUE,在计算2x2列联表的检验统计量时是否使用连续性校正
<