생각 작업실 The atelier of thinking

94. 반복이 없는 이원배치 분산분석 I 본문

통계학 이야기

94. 반복이 없는 이원배치 분산분석 I

knowledge-seeker 2024. 7. 10. 15:26

Chapter 94. 반복이 없는 이원배치 분산분석 I

 

1. 고정효과모형

 

요인이 두 개 이고 각 처리에 하나의 관측값이 있는 경우, 각 요인의 처리효과를 확인하기 위해 고정효과 모형하에서의 통계적 추론을 알아보고자 합니다.

고정효과모형에서는 두 요인 모두 실험자가 결정하는 것을 말합니다.

 

(1) 고정효과 모형식

 

일원배치 분산분석의 고정효과 모형식은 아래와 같습니다.

 

$$Y_{ij} = \mu + (\mu_i - \mu ) + \epsilon_{ij}$$

$$ = \mu + \alpha_i + \epsilon_{ij}$$


이원배치 분산분석의 고정효과 모형은 일원배치 모형을 확장하는 개념이라 할 수 있습니다.

 

$$ Y_{ij}= \mu + \alpha_i +\beta_j+ \epsilon_{ij}$$

 

각 항은 아래와 같습니다.

 

$\mu :$ 전체평균, $\epsilon \sim N(0,\sigma^2)$

$\alpha_i : $ 요인 A의 i 번째 처리효과, $\sum \alpha_i = 0$

$\beta_i : $ 요인 B의 j 번째 처리효과, $\sum \beta_i = 0$


처리효과를 아래와 같이 나타낼 수 있습니다.

 

$$Y_{ij} = \mu + (\mu_{i+} - \mu ) +(\mu_{+j} - \mu)+ \epsilon_{ij}$$

 

$\mu_{i+} : $ 요인 A의 i 번째 수준평균

$\mu_{+j} : $ 요인 B의 j 번째 수준평균

 


 

 

2. 변동분해

 

실험자료에 대한 분석에 대한 과정을 직관적인 표현하자면,
"모형식을 변동분해하여 분산분산표를 만들고 가설을 분산분석표를 근거로 검정하여 실험 결과의 처리효과 여부를 파악한다" 라고 할 수 있을 듯 합니다.

변동분해는 종속변수의 총 변동을 처리 간 변동과 처리 내 변동으로 나누는 과정입니다.

위 모형식은 아래와 같이 변동분해할 수 있습니다.

 

$$Y_{ij} = \mu + (\mu_{i+} - \mu ) +(\mu_{+j} - \mu)+ \epsilon_{ij}$$

 

이 모형식을 추정량으로 대입하여 정리하면 아래와 같습니다.

 

$$Y_{ij} - \bar{Y} = (\bar{Y_{i+}} - \bar{Y}) +(\bar{Y_{+j}} - \bar{Y})+ (Y_{ij} - \bar{Y_{i+}} - \bar{Y_{+j}}+\bar{Y}) $$


위 식을 제곱합으로 각 항을 분리해보면 아래와 같습니다.

 

$ TSS : \sum_{i=1}^p \sum_{j=1}^q (Y_{ij}+\bar{Y})^2$, 자유도는 $N-1$

$ SSA : \sum_{i=1}^p q(Y_{i+} - \bar{Y})^2$, 자유도는 $p-1$

$ SSB : \sum_{j=1}^q p(Y_{+j} - \bar{Y})^2$, 자유도는 $q-1$

$ SSE : \sum_{i=1}^p \sum_{j=1}^q (Y_{ij} - \bar{Y_{i+}} - \bar{Y_{j+}} +\bar{Y})^2$, 자유도는 $(p-1)(q-1)$

 

 

2024.07.02 - [통계학 이야기] - 87. 분산분석 - 변동분해

 

87. 분산분석 - 변동분해

Chapter 87. 분산분석 - 변동분해 1. 변동분해(Decomposition of Variance) 분산분석(ANOVA)의 변동분해는 전체 변동을 다양한 요인 또는 처리로 분해하는 과정을 의미합니다. 이러한 변동분해를 통해 각 요

thinking-atelier.tistory.com

 

 

앞서 일원배치 분산분석의 변동분해에서,

 

 

총변동(TSS)는 처리제곱합과 잔차 제곱합의 합으로 나타낼 수 있었습니다. 이원배치 분산분석에서는 처리제곱합을 요인 A의 처리 제곱합(SSA)과 요인 B의 처리 제곱합(SSB)의 합으로 나타낼 수 있습니다.

따라서, 이원배치 분산분석의 변동분해는 아래와 같이 나타낼 수 있습니다.

 

TSS = SSA + SSB +SSE

 

3. 분산분석표

 

위 변동분해를 분산분석표로 나타내면 아래와 같습니다.

 

변동요인 자유도 제곱합 평균제곱 F-통계량
처리 A p-1 SSA MSA MSA/MSE
처리 B q-1 SSB MSB MSB/MSE
오차 (p-1)(q-1) SSE MSE  
전체 N-1 TSS    

 

F 검정값을 확인하여 각각의 처리효과 유무를 판단하게 됩니다.
이 때, 유의하지 않는 요인의 처리효과가 있다면, 오차에 흡수시켜 다시 분석하게 됩니다.

 


 

4. 가설 검정

 

가설 설정을 할 때에 귀무가설은 처리 A와 처리 B에 대해 각각 설정하고 각각의 검정통계량으로 검정을 실시합니다.

요인 A의 처리효과 유무를 확인하기 위한 귀무가설

 

$$H_{A0} : \alpha_1 = \alpha_2 = ... =\alpha_p = 0$$


요인 B의 처리효과 유무를 확인하기 위한 귀무가설

 

$$H_{B0} : \beta_1 = \beta_2 = ... =\beta_q = 0$$



◈ 예제 : 원료와 반응온도에 따른 제품의 생산량 비교

원료와 반응온도에 따라 제품의 생산량에 차이가 있는 지를 확인하기 위한 자료가 아래와 같습니다.

비교대상 원료는 미국 M사, 일본 Q사, 한국 P사가 대상이고, 반응온도는 180, 190, 200, 210 도가 대상으로 확인해보고자 합니다. 결과값이 아래와 같이 나왔습니다.

 

요인 A 요인 B
180 190 200 210
M 97.6 98.6 99.0 98.0
Q 97.3 98.2 98.0 97.7
P 96.7 96.9 97.9 96.5

 

원료를 요인 A로 보면, 수준 p는 3이므로 자유도는 2 가 됩니다.
반응온도를 요인 B로 보면, 수준 q는 4 이므로 자유도는 3이 됩니다.

위 자료에 대한 이원배치 분산분석표를 R을 통하여 구해보겠습니다.

 

(1) 데이터 전처리

 

amount <- scan()
97.6 98.6 99 98
97.3 98.2 98 97.7
96.7 96.9 97.9 96.5

company <- rep(c("M","Q","P"),each=4)
temp <- rep(c(180,190,200,210),3)

company <- as.factor(company)
temp <- as.factor(temp)

test <- data.frame(amount,company,temp)

 

   amount company temp
1    97.6       M  180
2    98.6       M  190
3    99.0       M  200
4    98.0       M  210
5    97.3       Q  180
6    98.2       Q  190
7    98.0       Q  200
8    97.7       Q  210
9    96.7       P  180
10   96.9       P  190
11   97.9       P  200
12   96.5       P  210


원료와 반응온도에 따른 제품의 생산량을 데이터프레임 형태로 만들었습니다.

 

(2) 시각화

 

원료와 반응온도에 대한 상자그림을 각각 그려보겠습니다.

par(mfrow=c(1,2))
boxplot(amount~company,data=test,main="원료에 따른 생산량비교",col="skyblue")
boxplot(amount~temp,data=test, main="반응온도에 따른 생산량비교",col="orange")

 

 

(3) 분산분석표

 

▶ aov( ) 함수

"amount~company+temp" 형태로 독립변수 2 개를 나타냅니다.

 

aov(amount~company+temp,data=test)


Call:
   aov(formula = amount ~ company + temp, data = test)

Terms:
                company temp Residuals
Sum of Squares     3.44 2.22      0.56
Deg. of Freedom       2    3         6

Residual standard error: 0.305505
Estimated effects may be unbalanced



result.aov <- aov(amount~company+temp,data=test)
summary(result.aov)

 

            Df Sum Sq Mean Sq F value  Pr(>F)   
company      2   3.44  1.7200  18.429 0.00274 **
temp         3   2.22  0.7400   7.929 0.01647 * 
Residuals    6   0.56  0.0933                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 


원료별 P-value 가 0.00274 이므로 "모든 원료에 따른 생산량이 같다"는 귀무가설은 기각할 수 있습니다. 따라서, 원료에 따른 생산량은 의미있는 차이가 있다고 할 수 있습니다.

또한, 반응온도 P-value가 0.01647로 유의수준 5%에서 귀무가설은 기각됩니다. 따라서, 반응온도에 따른 생산량은 의미있는 차이가 있다고 할 수 있습니다.

▶ lm( ) 함수 활용

 

result.lm <- lm(amount~company+temp,data=test)
anova(result.lm)

 

Analysis of Variance Table

Response: amount
          Df Sum Sq Mean Sq F value   Pr(>F)   
company    2   3.44 1.72000 18.4286 0.002744 **
temp       3   2.22 0.74000  7.9286 0.016470 * 
Residuals  6   0.56 0.09333                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 


위 분산분석표와 같은 결과가 나옵니다.

summary(result.lm)

 

Call:
lm(formula = amount ~ company + temp, data = test)

Residuals:
   Min     1Q Median     3Q    Max 
 -0.40  -0.20   0.05   0.20   0.30 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  97.8000     0.2160 452.726 7.84e-15 ***
companyP     -1.3000     0.2160  -6.018  0.00095 ***
companyQ     -0.5000     0.2160  -2.315  0.05989 .  
temp190       0.7000     0.2494   2.806  0.03091 *  
temp200       1.1000     0.2494   4.410  0.00452 ** 
temp210       0.2000     0.2494   0.802  0.45325    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3055 on 6 degrees of freedom
Multiple R-squared:   0.91, Adjusted R-squared:  0.8349 
F-statistic: 12.13 on 5 and 6 DF,  p-value: 0.004313