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的每一個水平下並不獨立