220613_TIL

비트크랙·2022년 6월 13일

ANOVA (ANalysis Of VAriance; 분산 분석)은 여러 그룹간의 평균의 차이가 통계적으로 유의미 한지를 판단하기 위한 분석법이다.

파이썬 라이브러리를 활용하여 세 개 이상의 그룹에 대해 가설검정을 하는 방법으로 오늘 두 가지를 배웠다. (oneway Anova)

  • scipy.stats의 f_oneway
  • statsmodel의 ols, anova_lm

scipy.stats의 경우에는 모듈을 사용해서 F statistic과 P value를 무난히 구할 수 있었는데, statsmodel의 모듈을 사용해서는 오류가 발생했다.

알고보니, scipy.stats의 f_oneway 모듈은 wide format을 파라미터로 활용하지만 statsmodel의 모듈의 경우에는 tidy format을 파라미터로 설정해야 한다는 것이였다. 이를 통해, 독립변수를 범주형 변수형태로, 종속변수를 수치형 변수로 만드는 것이다.

ANOVA는 옴니버스 검정통계량으로 분류된다. 즉, ANOVA는 최소 두개의 그룹이 통계적으로 유의미하게 차이를 보인다는 사실은 알려주지만 어떤 그룹들이 달랐는 지는 알려주지 않는다.

ANOVA 분석법은 다음을 가정한다.

  • 각 추출된 표본은 정규분포를 띈다.
  • 각 추출된 표본은 s^2의 공통된 분산을 가진다.

Anova의 경우에는 F-statistic을 알려주는데 이는 다음과 같은 공식을 가지고 있다.

  • F-value = Mean Squares Treatment / Mean Squares Error

F-value가 클수록 p-value가 작아지는 관계성을 가지고 있다.
t-statistic, z-statistic과 마찬가지로 p-value를 구하는데 의미를 갖는 통계값이기 때문에 크게 신경쓰지 않고, p-value만 보고 가설에 대한 통계적 유의성을 결정하면 될 것 같다.

하지만, 가설검증을 통해 유의미한 결과를 도출해내기 위해서는 p-value를 통한 통계적 유의성만을 봐서는 안된다. 효과크기, 적절한 표본의 크기, 이상치를 포함해 버리지는 않았는지, 어떠한 방식으로 데이터를 수집했는지 등을 모두 고려해서 분석하고 결론을 내려야 하는 것이다.
현재는 skill적인 부분에 집중을 하고 있다면, 곧 관심분야에 관련된 project에 돌입해서 종합적인 데이터 분석에 도전해 보아야겠다.

profile
Get Shit Done!

0개의 댓글