使用 R 的 chisq.test
R 卡方檢定函數,進行適合度檢定與獨立性檢定。
R 卡方檢定可以用於適合度檢定(goodness of fit test)與獨立性檢定(test of independence),以下是使用的方法與範例。
適合度檢定
假設我們想要檢驗骰子是否公正,也就是說骰子出現 1 到 6 的機率是否都是 1/6,就可以使用卡方檢定。這裡我們使用模擬的資料來示範卡方適合度檢定的操作方式。
首先以模擬的方式,產生擲骰子的資料:
# 模擬擲骰子 set.seed(5) x <- factor(sample.int(6, size = 500, replace = TRUE))
畫出長條圖,檢視一下產生的資料:
# 繪製長條圖 ggplot(data.frame(x=x), aes(x)) + geom_bar()
接著使用 table
計算各點數出現次數:
# 計算各點數出現次數 x.table <- table(x) x.table
x 1 2 3 4 5 6 87 87 93 60 85 88
使用 chisq.test
進行卡方檢定:
# 檢定出現的機率是否相同 chisq.test(x.table)
Chi-squared test for given probabilities data: x.table X-squared = 8.272, df = 5, p-value = 0.1419
呼叫 chisq.test
若不指定機率值,預設就是檢定每個點數的出現機率是否都相同,我們也可以用 p
參數指定每個值的機率值,也就是說上面這個指令就等於以下這行指令:
# 指定機率值 chisq.test(x.table, p = c(1/6, 1/6, 1/6, 1/6, 1/6, 1/6))
Chi-squared test for given probabilities data: x.table X-squared = 8.272, df = 5, p-value = 0.1419
這個卡方檢定所得到 p-value 為 0.1419
,大於 0.05
,不拒絕虛無假設(null hypothesis),所以沒有顯著證據顯示這個骰子是不公正的。
如果想要檢定的機率值不是每一個都相同,就自己更改一下 p
參數的機率值即可,例如若要檢定 A、B、C 三類型的比例是不是 1:2:1,就可以這樣寫:
# A、B、C 三類型的出現次數 y <- c(93, 156, 87) # 檢定比例是否為 1:2:1 chisq.test(y, p = c(1/4, 1/2, 1/4))
Chi-squared test for given probabilities data: y X-squared = 1.9286, df = 2, p-value = 0.3813
獨立性檢定
卡方檢定也可以用在兩個變數的獨立性檢定,觀察兩個變數是否有關聯。
以下我們將使用 MASS
套件中的 survey
資料集,檢定性別與吸菸習慣之間的關係。首先載入 MASS
套件;
# 載入 MASS 套件 library(MASS)
取出性別與吸菸習慣的欄位,並且移除含有缺失值的資料:
# 移除含有 NA 的資料 survey.clean<- na.omit(subset(survey, select = c(Smoke, Sex))) # 查看資料 head(survey.clean)
Smoke Sex 1 Never Female 2 Regul Male 3 Occas Male 4 Never Male 5 Never Male 6 Never Female
這個資料中的 Sex
就是性別,而 Smoke
則是吸菸習慣,而吸菸習慣有四種,分別是不吸菸(Never)、偶爾(Occas)、時常(Regul)與重度(Heavy)。
畫出性別與吸菸習慣的統計圖:
# 繪製長條圖 ggplot(survey.clean, aes(x = Smoke, fill = Sex)) + geom_bar(position = "dodge")
建立吸菸與性別的列聯表:
# 建立吸菸與性別的列聯表 smoke.table <- table(survey.clean$Smoke, survey.clean$Sex) smoke.table
Female Male Heavy 5 6 Never 99 89 Occas 9 10 Regul 5 12
使用 chisq.test
進行卡方檢定:
# 檢定吸菸與性別是否相關 chisq.test(smoke.table)
Pearson's Chi-squared test data: smoke.table X-squared = 3.5536, df = 3, p-value = 0.3139
經過卡方檢定所得到的 p-value 為 0.3139
,大於 0.05
,不拒絕虛無假設(null hypothesis),表示沒有證據顯示性別與吸菸習慣之間有相關。