ADP/통계분석

[통계분석] 예제로 풀어보는 분산분석(ANOVA) - 이원배치 분산분석

rtw0202 2024. 10. 11. 13:55
728x90

이원배치 분산분석

두 개의 요인(성별, 종교, 부서)에 따른 세 개 이상의 집단 평균 비교

두 독립변수 A, B 사이에 상관관계가 있는지를 살펴보는 교호작용(두 독립변수의 조합으로 인해 반응변수에 미치는 특별한 영향)에 대한 검증이 반드시 진행되어야 함

 

변속기 종류(am)와 실린더 개수(cyl)에 따라 주행거리(mpg) 평균에 차이가 있는지 통계적 검정을 수행하여라 (정규성, 등분산성을 만족한다는 가정, 유의수준 = 0.05) 

mtcars = mtcars[['mpg', 'am', 'cyl']] # mpg : 주행거리, am : 변속기 종류, cyl : 실린더 개수

 

1. 가설설정

1. 교호작용 검정

    귀무가설 : 변속기 종류와 실린더 개수 간에는 상호작용 효과가 없다.
    
    대립가설 : 변속기 종류와 실린더 개수 간에는 상호작용 효과가 있다.

2. 주효과 검정1

    귀무가설 : 실린더 개수에 따른 주행거리의 차이는 존재하지 않는다.
    
    대립가설 : 실린더 개수에 따른 주행거리의 차이는 존재한다.

3. 주효과 검정2

    귀무가설 : 변속기 종류에 따른 주행거리의 차이는 존재하지 않는다.
    
    대립가설 : 변속기 종류에 따른 주행거리의 차이는 존재한다.

 

2. 유의수준 설정 (0.05) 

문제에서 제시된 0.05 사용

 

3. 정규성 검정

문제에서 정규성을 만족한다고 했으므로 생략

 

4.  등분산성 검정

문제에서 등분산성을 만족한다고 했으므로 생략

 

5. 검정통계량 값 및 p-value(유의확률) 계산

from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm

formula = 'mpg ~ C(cyl) + C(am) + C(cyl):C(am)' # C로 감싸면 그 변수를 범주형 변수로 간주하고, 자동으로 더미 변수로 변환
model = ols(formula, mtcars).fit()
aov_table = anova_lm(model, typ=2)
aov_table

=> cyl 변수와 am 변수 간의 상호작용 효과에 대한 검정 결과, p-value가 0.05보다 크기 때문에 변속기 종류와 실린더 개수 간에는 상호작용 효과가 없다.'라는 귀무가설 채택 (교호작용이 존재하지 않을 때 주효과 검정이 의미를 가짐)

=> cyl 변수에 대한 주효과 검정 결과, p-value가 0.05보다 작기 때문에 '실린더 개수에 따른 주행거리의 차이는 존재한다'라는 대립가설 채택

=> am 변수에 대한 주효과 검정 결과, p-value가 0.05보다 크기 때문에 '변속기 종류에 따른 주행거리의 차이는 존재하지 않는다'라는 귀무가설 채택

728x90