chisq.test()对而二维表的行变量和列变量进行卡方独立性检验ide
> 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-value 表示从整体中抽取的样本行变量与列变量是互相独立的几率,p<a(=0.05)通常认为发生的几率很小 #统计学上的解释 #假设 H0: 行变量与列变量互相独立, H1:行变量与列变量不独立,经过卡方检验,计算出p值,而后与a(=0.05)进行比较, P < a(=0.05)则认为两个变量独立的几率比0.05还要小,通常不会发生,因此拒绝H0,接受H1 > mytable <- xtabs(~Improved+Sex, data=Arthritis) > chisq.test(mytable) Pearson's Chi-squared test data: mytable X-squared = 4.8407, df = 2, p-value = 0.08889 #p>a(0.05)则接受H0,拒绝H1,表示没有充分的证听说明二者是不独立的
fisher.test()进行Fisher精确检验,Fisher精确检验的原假设是:边界固定的列联表中行和列是互相独立的,调用格式为 fisher.test(mytable),其中mytable是一个二维列联表函数
> mytable <- xtabs(~Treatment+Improved, data=Arthritis) > fisher.test(mytable) Fisher's Exact Test for Count Data data: mytable p-value = 0.001393 alternative hypothesis: two.sided
注spa
fisher.test()函能够在任意行列数大于等于2的二维列联表上使用,但不能用于 2*2列联表code
mantelhasen.test()函数能够进行Conchran-Mantet-Haenszel卡方检验,其假设是,两个名义变量在第三个变量的每一层中都是条件独立的。下列代码能够检验能够检验Treatment和Improved,在sex每一水平下是否独立,此检验不存在三阶交互做用( Treatment*Improved*sex)it
> mytable <- xtabs(~Treatment+Improved+Sex, data=Arthritis) > mantelhaen.test(mytable) Cochran-Mantel-Haenszel test data: mytable Cochran-Mantel-Haenszel M^2 = 14.632, df = 2, p-value = 0.0006647 #Treatment与Improved在sex的每一个水平下并不独立