看過許多統計教程,這篇是我最推薦的
介 紹
數值變量如果服從正態分布,採用均數±標準差進行統計描述,採用方差分析進行組間比較,如果組間差異有統計學意義,進一步採用LSD法(也可以是其它方法)進行兩兩比較。如果不服從正態分布,採用中位數(四分位數間距)進行統計描述,組間比較採用非參數檢驗(Kruskal-Wallis秩和檢驗),當組間總的有統計學差異,進一步採用Dunn法(也可以是其它方法)進行多重比較。
對於分類變量,採用例數(百分比)的形式描述,組間比較採用χ2檢驗或精確概率法,當組間總的有統計學差異,進一步採用χ2檢驗或精確概率法進行兩兩比較,兩兩比較的P值需採用Boferroni法(也可以選擇其它方法)進行校正。
對於只會SPSS軟體的同學來說,做兩兩比較的卡方檢驗或精確概率法時,需要一次次選擇個案,一次次點菜單,太浪費時間和精力。用R軟體的優勢在於做兩兩比較時,不用再一次一次點菜單了,直接用幾行命令就可以了。
我們想看看不同工作崗位的男女比例是否有差異。
軟體操作
1、導入數據
mydata <- read.delim("clipboard")#查看數據str(mydata)head(mydata)
2、變量因子化
mydata$sex<-factor(mydata$sex,levels=c(0,1),labels=c("Male","Female"))mydata$work<-factor(mydata$work,levels=c(1,2,3,4),labels=c("A崗","B崗","C崗","D崗"))
#查看數據str(mydata)head(mydata)
3、對於分析涉及到的變量,形成表格數據
我們想研究不同工作崗位的男女比例是否有差異,需要把涉及到的兩個變量work和sex生成表格,輸入:
tab<-table(mydata$work,mydata$sex)tab
4、卡方檢驗和精確概率法
#卡方檢驗chisq.test(tab)
#精確概率法fisher.test(tab)
結果解讀:
使用chisq.test命令進行卡方檢驗,結果顯示:統計量χ2=20.911,p=0.0001099,在論文中需寫成χ2=20.91,p<0.001,說明不同崗位的男女比例有差異,但具體是哪兩個崗位有差異,還需進一步兩兩比較。(註:論文中卡方值一般保留兩位小數,p值一般保留三位小數,如果p<0.001,可以直接寫成p<0.001)。
如果不符合卡方檢驗條件,需改用精確概率法,其實就算符合卡方檢驗條件,也可以直接用精確概率法。使用fisher.test命令進行精確概率法,結果顯示p=8.359*10-5,論文中需要寫成p<0.001,說明不同崗位的男女比例有差異,但具體是哪兩個崗位有差異,還需進一步兩兩比較。
5、兩兩比較
#install.packages("rcompanion")library(rcompanion)#兩兩比較卡方檢驗pairwiseNominalIndependence(tab,chisq = TRUE,fisher = FALSE,gtest = FALSE,method = "bonferroni")
上面紅色的warning messages提示卡方檢驗得到的結果可能不準確,為了保險起見,我們採用Fisher精確概率法進行兩兩比較。
#兩兩比較精確概率法pairwiseNominalIndependence(tab,chisq = FALSE,fisher = TRUE,gtest = FALSE,method = "bonferroni")
結果解讀:
事後兩兩比較由於檢驗次數的增多,會增加一類錯誤的概率,所以通常需要校正p值或校正檢驗水準,兩者本質是一樣的。
我們通過R軟體進行兩兩比較的好處是,可以直接設定兩兩比較p值校正方法,如本例中,我們直接設置為bonferroni法,p.adj.Fisher列即為校正後的p值,可以直接與0.05相比,如果<0.05,說明兩者之間差異有統計學意義;否則,說明無統計學意義。
本例中,A崗和B崗的男女比例差異有統計學意義,p=6.42*10-5,需要寫成p<0.001。
需要說明的是,有的p值經校正之後=1,這是很正常的。
知識拓展
本例中p值校正的方法,我們選擇的是bonferroni法,只要在論文中說明所用方法即可。
大家也可以嘗試別的方法,更多信息可以在Rstudio中輸入?p.adjust獲取。