相同變異數單因子變異數分析 (One Way ANOVA)

套路19: 相同變異數單因子變異數分析 (One Way ANOVA)

什麼是比較多組相同變異數獨立樣本平均值檢定? 說白了就是多組分別獨立取樣的資料做比較的假設檢定。**注意** ”比較變異數” (comparing variances)變異數分析” (analysis of variance)不同。變異數分析是多組資料比較平均值。統計假設檢定檢定什麼?H0。例如多組獨立樣本假設檢定H0 : μ1 = μ2 = … = μkHA : 至少有一組平均值不同是檢定多組資料的平均值是否相同。假設相等時為雙尾 (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 = m4HA: 餵食不同飼料的肉雞平均體重不完全相同。

第一步: 使用基本模組(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.05H0: m1 = m2 = m3 = m4,不成立。
  # Pr > 0.05H0: 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.05H0: m1 = m2 = m3 = m4,不成立。
  # p-value > 0.05H0: 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是平均值有差異的組別。

來勁了嗎? 想知道更多?? 補充資料(連結):
4. 關於Multiple comparisons problem (https://en.wikipedia.org/wiki/Multiple_comparisons_problem)
5. 關於R基礎,R繪圖及統計快速入門:
   b. Cookbook for R: http://www.cookbook-r.com/
   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.

留言

這個網誌中的熱門文章

統計不球人 目錄 (Table of Contents)

如何選擇統計方法 1

單因子多樣本中位數差異檢定 (Kruskal-Wallis test)