分類
R 生物統計

R語言 檢測兩組觀察數據之間是否有差異

#檢測兩組觀察數據之間是否有差異: 兩個組別可能是互相配對(paired)、重複的(repeated)、有關聯的(related)或是獨立的。

配對資料(paired data):配對t檢定、Wilcoxon符號排序檢定和符號檢定

paired t-test

Example: 有人提出,建設發電廠會影響空氣中的懸浮粒子量。在工程前後各在三個地點取得三個測量值。

before<- c(34.6,38.2,37.6)
after<- c(41.3,39.6,41.0)
t.test(before,after,paired = T)

#Wilcoxon符號排序檢定 (Wilcoxon signed ranks test): 是t-test對應的吳母數版本,此檢定力較t-test弱,欲使用此檢定,資料配對數至少要有6對。

Example: 研究人員希望知道某河川流量在兩天之間是否有差異,在不同採樣佔取樣。

day1<- c(268,260,243,290,294,270,268)
day2<- c(236,241,239,285,282,273,258)
wilcox.test(day1,day2, paired = T) #資料配對數

#符號檢定 (signed test): 對資料型態幾乎沒有限制,只要求資料可以比大小即可。檢定力弱但安全(意即很保守,不太可能造成第一型誤差),此檢定只有在配對樣本數夠大時才能使用。
binom.test(sum(day1>day2),length(day1))

#未配對資料: 獨立樣本t檢定、單因子變異數分析、Mann-Whitney U檢定

t-test

Example: 兩個穀物實驗品種,"Premier (特級)"和"Super(超級)",被分別選出五顆榖粒秤重(mg),研究人員想知道兩個品種穀粒重量是否相等?

premier<- c(24.5,23.4,22.1,25.3,23.4)
super<- c(26.4,27.0,25.2,25.8,27.1)
t.test(premier,super,paired=F,var.equal = T) #R預設版本假設變異數不相等,而會比較兩者變異數以校正自由度。此版t-test稱作"Welch t-test"(var.equal = T),較保守,因而可能發生第二型錯誤,但較不會犯第一型錯誤。
#此範例採用預設也不會影響結果。
t.test(premier,super,paired=F,var.equal = F)

#方法二
cultivar<- c("premier","premier","premier","premier","premier","super","super","super","super","super")
grain<- c(premier,super)
t.test(grain~cultivar,var.equal=T)
t.test(grain~cultivar)

#單因子變異數分析 (One-way ANOVA): 與t-test結果相同,且也可適用多組比較平均值。
summary(aov(grain~cultivar)) #宣告grain是cultivar的函數

#Mann-Whitney U檢定:也稱作Wilcoxon-Mann-Whitney檢定,相較前兩種檢定,其不做"變異數同質性"和"常態分佈的假定",為典型的"排序"檢定,好處在於即使有極端值也可以使用。
wilcox.test(premier, super) #預設連續性校正,資料有等值出現(23.4出現兩次),表示該筆資料無法適用檢定的精確版本。
wilcox.test(premier, super, correct = F) #建議除非需要和其他未校正的檢定比較檢定結果,否則就使用連續性校正的預設版本。

 

提供R script參考

參考來源: 生物統計學:如何選擇與應用

發表迴響