Must Learning With Statistics

분산분석(R Code) 본문

통계 이론

분산분석(R Code)

Doublek Park 2020. 3. 23. 01:19
7. 분산분석(R Code)

분산분석을 R에서 실행하는 방법은 다음과 같습니다. 분석하고자 하는 것은 *satisfaction_level(직무 만족도)의 평균이 salary(연봉 수준, low, medium, high) 집단에 따라 차이가 있는지 통계적으로 검정하고자 합니다. *

귀무가설은 다음과 같습니다.
$$
H_0:salary(연봉)\  수준별로\ satisfaction\ level(직무만족도)의\ 평균이\ 같을\ 것이다.
$$
$$
H_1:not;H_0
$$

ANOVA = aov(satisfaction_level ~ salary, data = HR)
summary(ANOVA)
               Df Sum Sq Mean Sq F value   Pr(>F)    
salary          2    2.3  1.1693   18.96 5.97e-09 ***
Residuals   14996  924.8  0.0617                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

분석결과를 보시면 분산분석표가 나옵니다. Df는 자유도, Sum sq는 제곱합을 Mean Sq는 평균제곱합을 의미합니다. 위에서 언급했던 분산분석표를 그대로 가져와서 값을 채워넣으면 다음과 같습니다.

정해진 순서대로 제곱합과 자유도를 구한 후 평균제곱을 계산한뒤 검정통계량인 F value를 구했습니다. 마지막으로 유의확률 p-value를 확인할 수 있습니다. p-value는 0과 매우 가까운 값이기 때문에 당연히 유의 수준 0.05보다 작습니다. 그러므로 귀무가설 $H_0$를 기각할 수 있습니다. 즉 연봉 수준별로 직무만족도의 평균은 동일하지 않습니다.

하지만 이 상태로는 위에서 말했듯이 '평균이 같지 않다.'만을 알 수 있지, 정확히 어떻게 다른지 알 수가 없기 때문에 사후검정을 진행해야됩니다.

TUKEY = TukeyHSD(ANOVA)
TUKEY
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = satisfaction_level ~ salary, data = HR)

$salary
                   diff         lwr          upr     p adj
low-high    -0.03671654 -0.05461098 -0.018822102 0.0000046
medium-high -0.01565305 -0.03372130  0.002415191 0.1049520
medium-low   0.02106349  0.01111999  0.031006988 0.0000021
plot(TUKEY)

사후검정은 여러 방법이 있습니다. 지금 사용한 방법은 Tukey 사후검정입니다. 해석을 하는 방법은 다음과 같습니다. 3개의 집단을 2개씩 따로 분석을 한 것이며, 비교하는 두 집단 간의 차이가 같은지 다른지 다시 한번 검정하는 것입니다. plot은 사후검정 결과를 나타낸 것이며 보는 법은 간단합니다. 각 신뢰구간 안에 0이 포함되는지 아닌지만 보시면 됩니다.

  • low - high : low 집단의 satisfaction_level의 평균과 high 집단의 satisfaction_level의 평균차이를 비교하니 신뢰구간이 $[-0.054(lwr),-0.018(upr)]$사이에 있는 것을 알 수 있습니다. 해당 구간 안에 0이 포함되어있지 않으며, 0보다 작기 때문에 low집단의 satisfaction_level 평균은 high 집단의 satisfaction_level에 비해 작다는 것을 의미합니다.
  • medium - high : medium 집단과 high 집단의 satisfaction_level의 비교를 진행한 결과 신뢰구간이 $[-0.033,0.0024]$입니다. 0을 포함하기 때문에 medium집단과 high집단의 satisfaction_level의 평균은 같다고 볼 수 있습니다.
  • medium - low : 신뢰구간이 0을 포함하지 않고 0보다 크기 때문에 medium이 low집단보다 satisfaction_level의 평균이 높다고 볼 수 있습니다.

정리를 하면 satisfaction_level의 평균은 $low < medium = high$ 순서인 것을 알 수 있습니다. 즉 low집단의 평균이 낮기 때문에 귀무가설을 기각하게 된 것입니다.

지금까지 진행한 이론과 분석을 정확히는 일원배치 분산분석(One way Anova)이라고 합니다. 만약 평균을 비교할 때 하나의 요인만 사용하지 않고 여러개의 요인을 사용하여 분석을 하고 싶을 때가 있습니다. 만약 2개의 요인을 통해 평균을 비교하고자 하면 이원배치 분산분석(Two way Anova)이라고 합니다.

T_ANOVA  = aov(satisfaction_level ~ salary + left +
               salary:left, data = HR)
summary(T_ANOVA)
               Df Sum Sq Mean Sq  F value   Pr(>F)    
salary          2    2.3    1.17   22.276 2.19e-10 ***
left            1  137.8  137.79 2624.960  < 2e-16 ***
salary:left     2    0.0    0.01    0.155    0.856    
Residuals   14993  787.0    0.05                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

요인을 하나 더 넣어주면 바로 이원배치 분산분석을 진행할 수 있습니다. 다만 신경써야할 부분은 요인을 두개를 사용할 경우, 각 요인 간의 교호작용이 있는지 확인을 해야됩니다. 위 분석 결과에서는 단일 효과(salary, left)는 유의한 것을 알 수 있지만 교호작용효과(salary:left)는 유의하지 않다는 것을 알 수 있습니다. 이런 경우 교호작용항을 제거하고 모형을 다시 분석하면 됩니다.

'통계 이론' 카테고리의 다른 글

상관분석 (R code)  (0) 2020.03.23
상관분석  (0) 2020.03.23
분산분석 (ANOVA)  (0) 2020.03.23
t검정(R Code)  (1) 2020.03.23
t검정  (0) 2020.03.22
Comments