ANOVA可分析多組間的差異

本次以R內建的dataset- “airquality”當範本

 

題目為比較不同月份間的平均溫度是否有顯著差異。

 

首先得要先確認每個月分溫度的variance(變異數)是否相同及其是否呈現常態分布

 

先輸入dataset

air<-airquality

 

一、確認變異數是否均質

 

安裝”car”套件

install.packages("car")

 

使用levenTest檢定組間變異數是否具有顯著差異

leveneTest(airTemp,as.character(airMonth))
Levene's Test for Homogeneity of Variance (center = median)
       Df F value  Pr(>F)  
group   4  2.5849 0.03941 *
      148                  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Warning message:
In leveneTest.default(airTemp, as.character(airMonth)) :
  as.character(airMonth) coerced to factor.

 

結果顯示具有顯著差異。

 

二、接著看各組是否符合常態分佈,我們可以用qqnorm來以z-score校正後回歸線是否接近45度角

 

qqnorm畫出Q-Q plot 粗略判斷是否為常態分佈

qqnorm(airTemp[airMonth==5])
qqline(airTemp[airMonth==5])
qqnorm(airTemp[airMonth==6])
qqline(airTemp[airMonth==6])
qqnorm(airTemp[airMonth==7])
qqline(airTemp[airMonth==7])
qqnorm(airTemp[airMonth==8])
qqline(airTemp[airMonth==8])
qqnorm(airTemp[airMonth==9])
qqline(airTemp[airMonth==9])

 

三、ANOVA檢測每個月分的平均溫度是否有顯著差異

 

1. ANOVA分析後的數據指定給anova.air

由於月份的數值特性是"numeric”,anova在計算時會直接做計算,所以需要把月分先當作字元(character)才不會直接被加減,而是當作factor

aov.air<-aov(airTempas.character(airMonth))

 

2. summary得知F-value

summary(aov.air)
                         Df Sum Sq Mean Sq F value Pr(>F)    
as.character(airMonth)   4   7061  1765.3   39.85 <2e-16 ***
Residuals               148   6557    44.3                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 

結果顯示不同月份的平均溫度具有極顯著差異

 

3. 比較兩組間差異

使用Tukey可以進行兩兩比較,其特色為可以消除Type I error

 

TukeyHSD(aov.air)
  Tukey multiple comparisons of means
    95% family-wise confidence level
 
Fit: aov(formula = airTemp as.character(airMonth))
 
`as.character(airMonth)`
           diff          lwr       upr     p adj
6-5 13.55161290   8.84386422 18.259362 0.0000000
7-5 18.35483871  13.68583759 23.023840 0.0000000
8-5 18.41935484  13.75035372 23.088356 0.0000000
9-5 11.35161290   6.64386422 16.059362 0.0000000
7-6  4.80322581   0.09547713  9.510974 0.0430674
8-6  4.86774194   0.15999325  9.575491 0.0388654
9-6 -2.20000000  -6.94617992  2.546180 0.7038121
8-7  0.06451613  -4.60448499  4.733517 0.9999995
9-7 -7.00322581 -11.71097449 -2.295477 0.0006215
9-8 -7.06774194 -11.77549062 -2.359993 0.0005376

 

結果顯示9-68-7月的平均溫度是沒有顯著差異。

 

最後附上Q-Q plot分布圖(由上至下

M5.png

M6.png

M7.png

M8.png

M9.png