2017年10月21日 星期六

卡方檢驗後的兩兩比較分析 (Post Hoc analysis after Chi-square test is significant)

    昨晚一位好朋友微信問在RxC(即多行x多列)的表格進行卡方檢驗後, 知道差異有統計學意義, 應如何進行事後的兩兩比較分析呢~

    我知她僅能使用SPSS統計軟件, 就告知她: 在SPSS進行卡方檢驗事後的兩兩比較分析, 一般只能拆表, 而且要修正每個檢驗的p值(即Bonferroni校正呵...)

    她又問到如何可以不用這樣"痛苦"? 我告訴她可以用R統計軟件吧... 但無奈她不懂R...
如有一數據集, 內容如下:
                 有效    無效
靜脈注射   25       7
肌肉注射   22       10
口  服 藥   15        17
    在SPSS的處理如youtube的視頻那樣, 哇... 真的"痛苦"! 在R軟件呢?
#第1部份:處理數據
dat<-matrix(c(25,22,15,7,10,17),nrow=3,ncol=2)
rownames(dat)<-c("靜脈注射","肌肉注射","口服藥")
colnames(dat)<-c("有效","無效")

#第2部份:矩陣-組間兩兩比較, 注意用Bonferroni法校正p,即0.05/3=0.017
chi<-chisq.test(dat)#總結果x2=7.1954,p=0.02739
chi1<-chisq.test(dat[c(1,2),])#靜脈注射與肌肉注射比較,結果x2=0.3204,p=0.5714
chi2<-chisq.test(dat[c(1,3),])#靜脈注射與口服藥比較,結果x2=5.4,p=0.02014
chi3<-chisq.test(dat[c(2,3),])#肌肉注射與口服藥比較,結果x2=2.3063,p=0.1288

#第3部份:快捷方法
#install.packages("fifer")先安裝這統計套件
library("fifer")#載入套件
chi.result<-chisq.post.hoc(dat,test="chisq.test",control=c("bonferroni"))
##結果
##             comparison        raw.p  adj.p
##1 靜脈注射 vs. 肌肉注射 0.5714 1.0000
##2 靜脈注射 vs. 口服藥     0.0201 0.0604
##3 肌肉注射 vs. 口服藥     0.1288 0.3865


    其實第2部份與第3部份任選1個即可... 而且紅色字內容只是註釋, 實際操作時沒有必要寫!
    結果與視頻的有不同, 是因R的chisp.test預設了作"連續校正的"(correct=TRUE). 如果改為correct=FALSE, 結果就完全一樣啦...

沒有留言:

張貼留言