一、定义
卡方检验是用来检验样本观测次数与理论或总体次数之间差异性的推断性统计方法,其原理是比较观测值与理论值之间的差异。两者之间的差异越小,检验的结果越不容易达到显著水平;反之,检验结果越可能达到显著水平。
二、用法
chisq.test()函数
函数的用法:
chisq.test(x, y=NULL, correct=TRUE, p=rep(1/length(x), length(x)), rescale.p=FALSE, simulate.p.value=FALSE, B=2000)
参数详解:
- x:数值向量、因子或矩阵;
- y:数值向量或因子;当x是因子时,y也必须是一个相同长度的因子;如果x是一个矩阵,那么y就会被自动忽略。
- correct:用于单元格的数值小于5时的连续矫正,只能用于2x2的列联表;连续性矫正通常用于减少由于样本量较小而导致的偏差。
- p:表示与x长度相同的概率值向量。用于拟合优度检验时,指定每个类别的期望概率。如果未指定,则默认为等概率分布,即每个类别的概率为
1/length(x)
。- rescale.p:逻辑参数,用于控制是否将
p
的和重新调整为1;默认情况下为FALSE
,表示不进行调整。如果p
的元素之和不为1,且rescale.p = TRUE
,则会自动将p
重新调整为等概率分布。- simulate.p.value:逻辑参数,用于控制是否以蒙特卡洛采样的方法模拟p值。默认情况下为
FALSE
,表示不使用蒙特卡洛模拟。当样本量较小或期望频数较小时,使用蒙特卡洛模拟可以得到更准确的p值。- B:整数参数,指定蒙特卡洛采样的重复次数。仅在
simulate.p.value = TRUE
时有效。默认情况下为2000次重复采样。
三、举例
1、默认p中所有元素都相等
随机抽取了50名儿童从5种玩具中挑选出一种自己最喜欢的玩具。
# 50名儿童对5种玩具的选择结果
toys <- c(10, 8, 20, 7, 5)
# 检验这5种玩具的结果是否相同
chisq.test(toys)
# 参数p中的每个元素默认相同,故设置p=rep(0.2,5)
chisq.test(toys, p=rep(0.2,5))
从以下结果可知,卡方值为14,自由度为4,p值为0.008<0.05,故可得出结论这5种玩具受欢迎程度差异显著。