相同變異數單因子變異數分析 (One Way ANOVA)
套路19: 相同變異數單因子變異數分析 (One Way ANOVA)
什麼是比較多組相同變異數獨立樣本平均值檢定? 說白了就是多組分別獨立取樣的資料做比較的假設檢定。**注意** ”比較變異數” (comparing variances)和”變異數分析” (analysis of variance)不同。變異數分析是多組資料比較平均值。統計假設檢定檢定什麼?看H0。例如多組獨立樣本假設檢定H0 : μ1
= μ2 = … = μk,HA : 至少有一組平均值不同,是檢定多組資料的平均值是否相同。假設相等時為雙尾 (two-tailed test) 檢定。
1. 使用時機: 用於比較多組相同變異數獨立樣本平均值(mean)。
2. 分析類型: 母數分析(parametric
analysis)。直接使用資料數值算統計叫parametric方法,把資料排序之後用排序的名次算統計叫non-parametric方法。
3. 假設前提: 每組資料(observations
within each cell)都是常態分布(normally distributed)且具相同變異數(equal variances)。
4. 範例資料: 咪路調查餵食不同飼料的肉雞體重(g),資料如下:
飼料1
|
飼料2
|
飼料3
|
飼料4
|
61.8
|
78.8
|
70.5
|
60.3
|
65.1
|
79.5
|
72.6
|
63.8
|
61.7
|
76.0
|
71.7
|
64.1
|
63.3
|
73.4
|
72.0
|
61.4
|
|
77.3
|
71.1
|
60.9
|
不同飼料是否效果不同? H0: m1 = m2 = m3 = m4。HA: 餵食不同飼料的肉雞平均體重不完全相同。
第一步: 使用基本模組(base)的read.table函數輸入建立資料儲存到變數m。
m <- read.table(header = TRUE, text = "
Feed Weight
F1 61.8
F1 65.1
F1 61.7
F1 63.3
F2 78.8
F2 79.5
F2 76.0
F2 73.4
F2 77.3
F3 70.5
F3 72.6
F3 71.7
F3 72.0
F3 71.1
F4 60.3
F4 63.8
F4 64.1
F4 61.4
F4 60.9") # 資料間以空白間隔,F1-F4: 餵食不同飼料。
attach(m) # 告知R使用資料m。
names(m) # 指定資料標題。
5. 畫圖看資料分佈:
第一步: 安裝ggplot2程式套件。
第二步: 呼叫ggplot2程式套件備用。
library(ggplot2)
第三步: 使用函數ggplot代入m資料畫box圖。
ggplot(m, aes(x = Feed,
y = Weight)) +
geom_boxplot(color = "red") +
geom_jitter(position = position_jitter(0.05)) # 畫box圖
6. 檢查不同組別數值是否符合常態分布假設前提(Check the normality assumption)。
第一步: 輸入資料。
f1 <- c(61.8, 65.1,
61.7, 63.3)
f2 <- c(78.8, 79.5,
76, 73.4, 77.3)
f3 <- c(70.5, 72.6,
71.7, 72, 71.1)
f4 <- c(60.3, 63.8,
64.1, 61.4, 60.9)
第二步: 使用基本模組(base)的shapiro.test函數代入f1-f4來檢查資料數值是否符合常態分布。
shapiro.test(f1)
shapiro.test(f2)
shapiro.test(f3)
shapiro.test(f4)
第三步: 判讀結果。
Shapiro-Wilk
normality test
data: f1
W = 0.87689, p-value = 0.3255 # p-value
> 0.05資料數值符合常態分布。
Shapiro-Wilk
normality test
data: f2
W = 0.95046, p-value = 0.7405 # p-value
> 0.05資料數值符合常態分布。
Shapiro-Wilk
normality test
data: f3
W = 0.98998, p-value = 0.9796 # p-value
> 0.05資料數值符合常態分布。
Shapiro-Wilk
normality test
data: f4
W = 0.86271, p-value = 0.2382 # p-value
> 0.05資料數值符合常態分布。
# p-value < 0.05資料數值不符合常態分布。
# p-value > 0.05資料數值符合常態分布。
7. 檢查不同組別數值是否符合相同變異數假設前提(Check the homogeneity of variance
assumption)方法一 (parametric):
第一步: 安裝car程式套件。
第二步: 呼叫car程式套件備用。
library(car)
第三步: 閱讀car程式套件的leveneTest函數使用說明。
help(leveneTest)
第四步: 使用car程式套件的leveneTest函數檢查不同組別數值是否符合相同變異數。
leveneTest(Weight ~
Feed, data = m)
第五步: 判讀結果。
Levene's Test for Homogeneity of Variance (center = median)
Df F value Pr(>F)
group 3 1.0506 0.3991
15
# Pr < 0.05不同組別數值不符合相同變異數。
# Pr > 0.05不同組別數值符合相同變異數。
8. 檢查不同組別數值是否符合相同變異數假設前提(Check the homogeneity of variance assumption)方法二 (parametric):
第一步: 閱讀基本模組(base)的bartlett.test函數使用說明。
help(bartlett.test)
第二步: 使用基本模組(base)的bartlett.test函數檢查不同組別數值是否符合相同變異數。
bartlett.test(Weight ~
Feed, data = m)
第三步: 判讀結果。
Bartlett test of homogeneity of
variances
data: Weight by Feed
Bartlett's K-squared = 3.7184, df = 3, p-value = 0.2935
# p-value < 0.05不同組別數值不符合相同變異數。
# p-value > 0.05不同組別數值符合相同變異數。
9. 計算單因子變異數分析 (One Way ANOVA) 方法一:
第一步: 使用基本模組(base)的aov函數代入m中資料來計算單因子變異數分析,結果儲存到變數fm。
fm <- aov(Weight ~
Feed, data = m)
# fm變數名稱為使用者自定
第二步: 使用基本模組(base)的summary函數代入fm來顯示雙因子變異數分析結果。
summary(fm)
Df Sum Sq
Mean Sq F value Pr(>F)
Feed 3 734.8
244.94 80.12 1.85e-09 ***
Residuals 15 45.9
3.06
---
Signif. codes: 0 ‘***’ 0.001
‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# Pr < 0.05,H0: m1 = m2 = m3 = m4,不成立。
# Pr > 0.05,H0: m1 = m2 = m3 = m4,成立。
10. 計算單因子變異數分析 (One Way ANOVA) 方法二:
第一步: 使用基本模組(base)的oneway.test函數代入m中資料來計算單因子變異數分析。
oneway.test(Weight ~
Feed, data = m, var.equal = TRUE)
# var.equal = TRUE不同組資料有相同變異數。
第二步: 判讀結果。
One-way analysis
of means
data: Weight and Feed
F = 80.124, num df = 3, denom df = 15, p-value = 1.845e-09
# p-value < 0.05,H0: m1 = m2 = m3 = m4,不成立。
# p-value > 0.05,H0: m1 = m2 = m3 = m4,成立。
11. H0不成立時需計算多重比較 (multiple comparison) 來顯示有差異的組別:
第一步: 閱讀基本模組(base)的TukeyHSD函數使用說明。
help(TukeyHSD)
第二步: 使用基本模組(base)的TukeyHSD函數代入fm來計算顯示有差異的組別。
TukeyHSD(fm)
Tukey multiple
comparisons of means
95% family-wise
confidence level
Fit: aov(formula = Weight ~ Feed, data = m)
$Feed
diff lwr upr
p adj
F2-F1 14.025 10.644564
17.405436 0.0000000 # p adj <
0.05
F3-F1 8.605 5.224564
11.985436 0.0000133 # p adj <
0.05
F4-F1 -0.875 -4.255436
2.505436 0.8769289
F3-F2 -5.420 -8.607106
-2.232894 0.0009841 # p adj <
0.05
F4-F2 -14.900 -18.087106
-11.712894 0.0000000 # p adj < 0.05
F4-F3 -9.480 -12.667106
-6.292894 0.0000020 # p adj <
0.05
# p adj < 0.05是平均值有差異的組別。
來勁了嗎? 想知道更多?? 補充資料(連結):
5. 關於R基礎,R繪圖及統計快速入門:
a. R Tutorial: https://www.tutorialspoint.com/r/index.htm
b. Cookbook for R: http://www.cookbook-r.com/
c. Quick-R: https://www.statmethods.net/
d. Statistical tools
for high-throughput data analysis (STHDA): http://www.sthda.com/english/
e. The Handbook of Biological Statistics: http://www.biostathandbook.com/
f. An R Companion for the Handbook of Biological Statistics: http://rcompanion.org/rcompanion/index.html
6. Zar, JH. 2010. Biostatistical Analysis, Fifth Edition,
Pearson.
留言
張貼留言