brunch

You can make anything
by writing

C.S.Lewis

by 도안 Jun 28. 2023

파이썬 일원분산분석 예

일원분산분석, ANOVA, 사후검정, tukey

일원분산분석 (ANOVA)

문제-> A 회사 영업부는 영업사원들을 위한 4가지 교육 프로그램을 개발하고 그 효과에 차이가 있는지 실험하였다. 신입사원 28명을 무작위로 A, B, C, D 네 집단으로 나누어 교육을 실시하였다. 일주일의 교육을 마친 후 판매실적은 다음 표와 같다.

4개 집단으로 나눈 후 판매실적(점수)

이 자료를 토대로 교육프로그램에 따라 판매실적이 다르다고 할 수 있는가?


답:- 일원분산분석(ANOVA)으로 차이검정을 실시할 수 있다. 

가설 설정

H0: mu1 = mu2 = mu3  =mu4 (모든 집단의 평균은 동일하다.)

H1: 모든 mu가 동일하지는 않다. (최소한 두 집단 간의 평균에는 차이가 있다.)


파이썬을 이용하여 일원분산분석을 한다. 

데이터 준비 후 shapiro 정규성 검정과 levene등분산성 검정을 한다. 


정규성이 없으면 kruskal 비모수 검정을 하고, 정규성이 있으면 f_oneway 모수 검정을 한다. 

결론

유의 수준 a = 0.05에서 p-value는 0.026으로 귀무가설을 기각한다. 

따라서 최소한 두 개 집단 간에는 평균의 차이가 있다고 할 수 있다.


참고로, 정규성이 있다고 가정하면 모수 검정을 할 수 있다. 모수 검정도 결과는 똑같이 기각된다 이다. 모수검정의 검정력이 더 높기 때문에 정규성 가정이 충족될 때는 모수검정을 한다. 


일원분산분석에서 집단 간 평균 차이가 있있기 때문에 사후검정을 한다. tukey의 방법으로 어느 집단간 차이가 있는지 알 수 있다.  

A, B, C, D 네 개 집단을 분석한 결과 A, B, C 간에는 평균의 차이가 없다. 그러나 C와 D의 평균의 차이가 있는 것으로 나타났다. tukey의 사후검정 방법은 각 집단 간 t검정을 실시한 것과 동일하다.

추가적으로 시각화도 pairwise_tukeyhsd를 이용하여 시각화를 할 수 있다. 




매거진의 이전글 미디어 이용현황 한눈에 보기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari