
基本原理
方差分析(Analysis of variance, ANOVA)是用于兩個或兩個以上樣本均數比較的方法,還可以分析兩個或多個研究因素的交互交互作用以及回歸方程的線性假設檢驗等。其基本思想是將全部觀察值間的變異——總變異按設計和需要分解成兩個或多個組成部分,再作分析。
本文將針對單因素方差分析(One-Way ANOVA)開展R語言的實踐。單因素方差分析是將同質的受試對象隨機地分配到各處理組,再觀察對比實驗效應的方法。在單因素方差分析中,首先將總變異(SS_總)分解為組間變異(SS_組間)也叫處理變異和組內變異(SS_組內)也叫誤差變異,然后比較兩者的平均變異(MS_組間,MS_組內),比較時采用兩者的比值F值(MS_組間/MS_組內)
R語言實踐
為研究鈣離子對體重的影響作用,某研究者將36只肥胖模型大白鼠隨機等分為三組,每組12只,分別給予高脂正常劑量鈣(0.5%)、高脂中劑量鈣(1.0%)和高脂高劑量鈣(1.5%)三種不同的飼料,喂養9周,測其喂養前后體重的差值。結果如下:
高脂正常劑量鈣(0.5%):332.96,297.76,312.57,295.47,284.25,307.97,292.12,244.61,261.46,286.46,322.49,282.42
高脂中劑量鈣(1.0%):253.21,235.87,269.3,258.9,254.39,200.87,227.79,237.05,216.85,238.03,238.19,243.49
高脂高劑量鈣(1.5%):232.55,217.71,261.15,220.72,219.46,247.27,280.75,196.01,208.24,198.41,240.35,219.56
首先,導入數據:
my_data = read.xlsx("./anova_1.xlsx", sheetIndex = 1, encoding = "UTF-8")
其次,對通過箱型圖和線圖對數據進行可視化:
# 繪制箱型圖
ggboxplot(my_data, x = "劑量", y = "體重差值",color = "劑量", palette = c("#00AFBB", "#E7B800", "#FC4E07"),order = c("高脂正常劑量鈣", "高脂中劑量鈣", "高脂高劑量鈣"),ylab = "體重差值", xlab = "劑量")
# 繪制線圖
ggline(my_data, x = "劑量", y = "體重差值",add = c("mean_se", "jitter"),order = c("高脂正常劑量鈣", "高脂中劑量鈣", "高脂高劑量鈣"),ylab = "體重差值", xlab = "劑量")
繪制結果如下:


然后進行方差分析:
# 計算方差分析
res.aov <- aov(體重差值 ~ 劑量, data = my_data)
# 輸出分析結果
summary(res.aov)
分析結果如下:
Df Sum Sq Mean Sq F value Pr(>F)
劑量 2 28925 14462 27.21 1.04e-07 ***
Residuals 33 17540 532
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
上述結果表明,經假設檢驗得出多個總體均數不全等。
最后,我們可以計算Tukey HSD(Tukey Honest Significant Differences,R函數:TukeyHSD()可以實現),以在組均值之間進行多次成對比較
# 確定特定組對之間的平均差異是否具有統計顯著性
TukeyHSD(res.aov)
輸出結果如下:
Tukey multiple comparisons of means95% family-wise confidence levelFit: aov(formula = 體重差值 ~ 劑量, data = my_data)$劑量diff lwr upr p adj
高脂正常劑量鈣-高脂高劑量鈣 64.86333 41.76836 87.95831 0.0000002
高脂中劑量鈣-高脂高劑量鈣 10.98000 -12.11498 34.07498 0.4810804
高脂中劑量鈣-高脂正常劑量鈣 -53.88333 -76.97831 -30.78836 0.0000064
上述結果表明說明中、高劑量鈣與正常鈣喂養9周前后體重差值不同,但不能認為中、高劑量鈣喂養9周前后體重差值不同。