생각 작업실 The atelier of thinking

100. R을 이용한 이원배치 분산분석 본문

통계학 이야기

100. R을 이용한 이원배치 분산분석

knowledge-seeker 2024. 7. 24. 13:35

Chapter 100. R을 이용한 이원배치 분산분석

 

이번회차에는 R을 이용하여 반복이 있는 이원배치 분산분석을 정리해보고자 합니다.

 

1. 데이터 소개

 

◈ 예제 : 배터리의 전압 차이

배터리의 최대 전압이 양극의 물질과 설치장소의 온도에 따라 차이가 있는지 알아보고자 합니다.

 

battery.csv
0.00MB

 

battery <- read.csv("battery.csv")
battery
Voltage Material Temperature
1      130        1          50
2      155        1          50
3       74        1          50
4      180        1          50
5       34        1          65
6       40        1          65
7       80        1          65
8       75        1          65
9       20        1          80
10      70        1          80
11      82        1          80
12      58        1          80
13     150        2          50
14     188        2          50
15     159        2          50
16     126        2          50
17     136        2          65
18     122        2          65
19     106        2          65
20     115        2          65
21      25        2          80
22      70        2          80
23      58        2          80
24      45        2          80
25     138        3          50
26     110        3          50
27     168        3          50
28     160        3          50
29     174        3          65
30     120        3          65
31     150        3          65
32     139        3          65
33      96        3          80
34     104        3          80
35      82        3          80
36      60        3          80

 

표로 정리하면, 아래와 같습니다.

 

물질(A) 온도(B)
50 65 80
1 130  155  74  180 34  40  80  75 20  70  82  58
2 150  188  159  126  136  122  106  115  25  70  58  45
3 138  110  168  160 174  120  150  139  96  104  82  60

 

물질과 온도를 범주화하는 코드입니다.

battery$Temperature <- as.factor(battery$Temperature)
battery$Material <- as.factor(battery$Material)

 


2. 상호작용효과

 

interaction.plot( ) 함수는 상호 작용 효과를 시각화하는 데 사용됩니다. 일반적으로 두 요인 간의 상호 작용을 검사하는 데 유용합니다.

 

interaction.plot(factor1, factor2, response, ...)

factor1: 첫 번째 요인
factor2: 두 번째 요인
response: 반응 변수(응답)
...: 다른 그래픽 매개변수를 지정하는 추가 매개변수

 

이 함수는 요인 간의 상호 작용을 시각화하기 위해 그래프를 생성합니다. 요인 간의 상호 작용이 존재하는 경우, 한 요인의 수준에 따른 반응의 변화가 다른 요인의 수준에 따라 달라집니다.

위 온도와 물질에 대한 상호작용 그래프는 아래와 같이 나타낼 수 있습니다.

 

with(battery,interaction.plot(Temperature,Material,Voltage,
                              type = "l",lwd=3, col = c('blue','red','green')))

 

상호작용효과가 있음을 알 수 있습니다.


3. 고정효과모형에서의 분산분석표

 

aov( ) 함수를 사용하여 구할 수 있습니다.

 

aov(Voltage~Material+Temperature+Material:Temperature,data=battery)
Call:
   aov(formula = Voltage ~ Material + Temperature + Material:Temperature, 
    data = battery)

Terms:
                Material Temperature Material:Temperature Residuals
Sum of Squares  10683.72    39118.72              9613.78  18230.75
Deg. of Freedom        2           2                    4        27

Residual standard error: 25.98486
Estimated effects may be unbalanced

 

Material : 재료에 따른 전압의 변화를 나타냅니다.
Temperature : 온도에 따른 전압의 변화를 나타냅니다.
Material : Temperature : 재료와 온도의 상호작용 효과를 나타냅니다.

분산분석표로 나타내면,

 

result.feR <- aov(Voltage~Material+Temperature+Material:Temperature,data=battery)
summary(result.feR)

 

                     Df Sum Sq Mean Sq F value   Pr(>F)    
Material              2  10684    5342   7.911  0.00198 ** 
Temperature           2  39119   19559  28.968 1.91e-07 ***
Material:Temperature  4   9614    2403   3.560  0.01861 *  
Residuals            27  18231     675                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 

Material : 이 효과의 분산분석 결과는 재료 유형에 따라 전압이 유의하게 다르다는 것을 나타냅니다. 분산분석 결과인 F-value가 7.911이고 p-value가 0.00198로 유의수준 0.05보다 작으므로, 재료 유형이 전압에 유의미한 영향을 미칩니다.


Temperature : 이 효과의 분산분석 결과는 온도가 전압에 유의하게 영향을 미친다는 것을 나타냅니다. F-value가 28.968이고 p-value가 1.91e-07로 유의수준 0.05보다 매우 작으므로, 온도가 전압에 매우 유의한 영향을 미칩니다.


Material : Temperature : 이 효과의 분산분석 결과는 재료와 온도의 상호작용이 전압에 유의한 영향을 미친다는 것을 나타냅니다. F-value가 3.560이고 p-value가 0.01861로 유의수준 0.05보다 작으므로, 재료와 온도의 상호작용이 전압에 유의미한 영향을 미칩니다.


Residuals : 모델로 설명하지 못한 나머지 변동을 나타냅니다.

 


 

4. 변량효과모형

 

변량 효과 모형을 구하기 위해서는 "lme4" 패키지를 사용합니다.
우선 아래의 코드로 패키지를 설치합니다.

 

install.packages("lme4")
library(lme4)
result.reR <- lmer(Voltage~1+(1|Material)+(1|Temperature)
                   +(1|Material:Temperature),battery)
summary(result.reR)

 

Linear mixed model fit by REML ['lmerMod']
Formula: Voltage ~ 1 + (1 | Material) + (1 | Temperature) + (1 | Material:Temperature)
   Data: battery

REML criterion at convergence: 346.9

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.26171 -0.48165  0.06811  0.54667  1.81758 

Random effects:
 Groups               Name        Variance Std.Dev.
 Material:Temperature (Intercept)  432.1   20.79   
 Temperature          (Intercept) 1429.7   37.81   
 Material             (Intercept)  244.9   15.65   
 Residual                          675.2   25.98   
Number of obs: 36, groups:  Material:Temperature, 9; Temperature, 3; Material, 3

Fixed effects:
            Estimate Std. Error t value
(Intercept)    105.5       25.0   4.221

 

이 결과는 재료(Material)와 온도(Temperature)의 조합에 따른 랜덤 효과를 포함한 선형 혼합 효과 모델을 보여줍니다. 각각의 그룹에 대해 재료와 온도의 효과를 고려하고, 랜덤 효과를 반영하여 전압(Voltage)을 설명하는 모델입니다.

랜덤 효과(Random effects)
Material:Temperature : 재료와 온도의 조합에 따른 랜덤 효과입니다. 각 조합에서 발생하는 변동성을 나타냅니다.
Temperature : 온도에 대한 랜덤 효과입니다. 각 온도 값에서 발생하는 변동성을 나타냅니다.
Material : 재료에 대한 랜덤 효과입니다. 각 재료에서 발생하는 변동성을 나타냅니다.
Residual : 잔차에 대한 표준 편차를 보여줍니다.

고정 효과(Fixed effects)
(Intercept) : 전압의 기본값을 나타냅니다. 추정된 모든 그룹의 전압에 대한 평균값입니다.

이 모델의 결과를 해석하면 다음과 같습니다:
(Intercept) 의 추정값은 105.5이며, 이는 전압의 기본값으로 해석됩니다. 이는 모든 그룹에 대한 평균 전압을 나타냅니다.
Std. Error 는 추정값의 표준 오차를 나타내며, `t value`는 해당 추정값이 0에서 얼마나 떨어져 있는지를 나타내는 t 통계량입니다. 여기서 `t value`가 4.221로 나타났으므로 해당 추정값이 통계적으로 유의미한 것으로 나타납니다.

 


 

5. 혼합효과모형

 

result.meR <- lmer(Voltage~Material+(1|Temperature)
                   +(1|Material:Temperature),battery)
anova(result.meR)
summary(result.meR)

 

Analysis of Variance Table
         npar Sum Sq Mean Sq F value
Material    2 3001.4  1500.7  2.2226
Linear mixed model fit by REML ['lmerMod']
Formula: Voltage ~ Material + (1 | Temperature) + (1 | Material:Temperature)
   Data: battery

REML criterion at convergence: 327.9

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.1529 -0.5157  0.1086  0.5808  1.9264 

Random effects:
 Groups               Name        Variance Std.Dev.
 Material:Temperature (Intercept)  432.1   20.79   
 Temperature          (Intercept) 1429.7   37.81   
 Residual                          675.2   25.98   
Number of obs: 36, groups:  Material:Temperature, 9; Temperature, 3

Fixed effects:
            Estimate Std. Error t value
(Intercept)    83.17      26.02   3.197
Material2      25.17      20.01   1.257
Material3      41.92      20.01   2.094

Correlation of Fixed Effects:
          (Intr) Matrl2
Material2 -0.385       
Material3 -0.385  0.500

 

이 결과는 재료(Material)와 온도(Temperature)의 조합에 따른 랜덤 효과를 고려한 선형 혼합 효과 모델을 보여줍니다.

랜덤 효과(Random effects)
Material:Temperature : 재료와 온도의 조합에 따른 랜덤 효과입니다. 각 조합에서 발생하는 변동성을 나타냅니다.
Temperature : 온도에 대한 랜덤 효과입니다. 각 온도 값에서 발생하는 변동성을 나타냅니다.
Residual : 잔차에 대한 표준 편차를 보여줍니다.

고정 효과(Fixed effects)
(Intercept) : Intercept는 Material이 1일 때의 Voltage를 의미합니다.
Material2, Material3 : 각각 Material2와 Material3에 대한 효과를 나타냅니다.

이 모델의 결과를 해석하면 다음과 같습니다:
(Intercept)의 추정값은 83.17입니다. 이는 Material이 1일 때의 Voltage의 평균값을 나타냅니다.
Material2와 Material3 는 각각 Material2와 Material3에 대한 추가적인 효과를 나타냅니다.
Std. Error는 추정값의 표준 오차를 나타내며, t value는 해당 추정값이 0에서 얼마나 떨어져 있는지를 나타내는 t 통계량입니다. 여기서 t value가 1.257와 2.094로 나타났으므로 해당 추정값들이 통계적으로 유의미한 것으로 나타납니다.