Home 課程與演講 R語言統計分析 用R語言來實作SPSS統計...

用R語言來實作SPSS統計功能(4)-卡方檢定

166
0
Pearson's Chi-squared test
Pearson's Chi-squared test

本篇內容包括:

  • 卡方檢定
  • 卡方獨立性檢定
  • Pearson’s卡方檢定
  • 列聯表相關係數(contingency table)
  • 帶有瑕疵的數據資料

有時候就算給你全部公式,其實你也不一定會用,用了也不知道數據跑出來對不對,甚至知其然而不知其所以然,所以這幾篇有關用R語言來實踐統計分析,難不難,見仁見智。

在這裡的案例數據和統計分析結果,可不是隨便蝦掰出來的,特別是統計分析結果,都是經過驗證的,也就是用R跑出來的數據和使用SPSS是一樣的,甚至 P-value 值的精準度更高(小數點以後更多位,但其實巫山小路用,沒太大影響),那麼你會不會又有一種感覺?原來不只要會統計和R,連SPSS都要略懂呢!是不用那麼跨張啦!只是用對的方法就會產生對的結果。當然我也不是統計專門老師,若有錯還請見諒。

但有一點可以確定的是,如果沒有使用實際案例,只談統計理論、公式或R函數的話,那麼跟實作出結果通常會有一段不小的差距。

卡方檢定(Chi Square Test)

想到卡方檢定,你想到什麼呢?簡單的說,在於驗證類別資料出現的頻率,是不是會隨著另一個類別資料的不同有所不同。

例如:牛肉麵店顧客的性別和居住地區分佈如下

北部中部南部總計
4810085233
84144120348
總計66244205581

想更了解R語言的資料結構,請試著練習看看,將上方資料以輸入到R裡面吧!

案例:請問牛肉麵店顧客點餐種類和居住地區有無關係?

H0:顧客點餐種類和居住地區無關
H1:顧客點餐種類和居住地區有關

列聯相關係數

函數:xtabs(formula = ~., data = parent.frame(), subset, sparse = FALSE, na.action, addNA = FALSE, exclude = if(!addNA) c(NA, NaN), drop.unused.levels = FALSE)

居住地區和點餐種類交叉表(contingency table)

mytable <- xtabs(~ collegedata$居住地區 + collegedata$點餐種類, data = collegedata)

chi-squared顯示列聯相關係數
chi-squared顯示列聯相關係數

Pearson’s卡方檢定(獨立性檢定)

函數:chisq.test(x, y = NULL, correct = TRUE, p = rep(1/length(x), length(x)), rescale.p = FALSE, simulate.p.value = FALSE, B = 2000)

chisq.test(mytable)

Pearson's卡方檢定
Pearson’s卡方檢定

P-value = 0.1252 > 0.05 無法拒絕H0,所以顧客點餐種類和居住地區無關。

案例:全校學生居住地區和入學方式是否有關係?

H0:全校學生居住地區和入學方式無關
H1:全校學生居住地區和入學方式有關

帶有瑕疵的數據資料

居住地區和入學方式交叉表(contingency table)

mytable <- xtabs(~ collegedata$地區 + collegedata$入學方式, data = collegedata)

卡方居住地區和入學方式交叉表(contingency table)
卡方居住地區和入學方式交叉表(contingency table)

Pearson’s卡方檢定

chisq.test(mytable)

Pearson's Chi-squared test
Pearson’s Chi-squared test

檢定是跑出來了,可是怎麼有一點怪怪的呢?出現了一個警告訊息

Warning message:
In chisq.test(mytable) : Chi-squared approximation may be incorrect

為什麼呢?

卡方各一個格子,期望值儘量要大於5
卡方各一個格子,期望值儘量要大於5

因為要使用卡方檢定其實有些小細節要注意,像每一個格子的期望值儘量要大於5,期望次數低於5的格子數不能多於20%。

那麼想看看接著該如何處理?

用R語言來實作SPSS統計功能(4)-卡方檢定
喜歡這篇文章嗎?

發表迴響