close

ANOVA可分析多組間的差異

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

 

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

 

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

 

先輸入dataset

air<-airquality

 

一、確認變異數是否均質

 

安裝”car”套件

install.packages("car")

 

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

leveneTest(air$Temp,as.character(air$Month))
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(air$Temp, as.character(air$Month)) :
  as.character(air$Month) coerced to factor.

 

結果顯示具有顯著差異。

 

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

 

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

qqnorm(air$Temp[air$Month==5])
qqline(air$Temp[air$Month==5])
qqnorm(air$Temp[air$Month==6])
qqline(air$Temp[air$Month==6])
qqnorm(air$Temp[air$Month==7])
qqline(air$Temp[air$Month==7])
qqnorm(air$Temp[air$Month==8])
qqline(air$Temp[air$Month==8])
qqnorm(air$Temp[air$Month==9])
qqline(air$Temp[air$Month==9])

 

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

 

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

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

aov.air<-aov(air$Temp~as.character(air$Month))

 

2. summary得知F-value

summary(aov.air)
                         Df Sum Sq Mean Sq F value Pr(>F)    
as.character(air$Month)   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 = air$Temp ~ as.character(air$Month))
 
$`as.character(air$Month)`
           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

arrow
arrow
    文章標籤
    R ANOVA 生物統計 統計
    全站熱搜

    猛犬 發表在 痞客邦 留言(0) 人氣()