Anova test

키키·2021년 9월 16일
0
post-thumbnail

📎ANOVA using Python (with examples) 여기 읽고 정리한 내용

📎파이썬으로 분산분석(ANOVA)

ANOVA란(ANalysis Of Variance)?

  • 2개 이상의 그룹의 평균을 비교하는 것을 말한다.
    (*T-test는 1~2개 그룹의 평균 차이 비교)
  • ANOVA는 분산기반으로 평균의 동질성을 F테스트를 통해 확인 한다.

귀무가설(H0): 그룹 평균이 동일함
대립가설(H1): 적어도 하나의 그룹 평균이 다른 그룹과 다르다.

ANOVA 효과 모델, 표 및 공식

ANOVA 효과 모델, 표 및 공식

뭔 소린지 모르겠다..!

일단 예제를 통해 알아보자!

치료 방법 A, B, C, D 4가지가 있다.
치료 방법은 독립변수이다.
치료 요인도 4가지이다.

데이터 로드


일단 데이터 셋 불러오고
dataframe을 melt해주어여함!!!


데이터 시각화 이렇게 생겼구나

test 스타투


fvalue랑 pvalue에 f_oneway로 뭘 지정해주는데 아마도 앞서 언급했던 F테스트를 통해 그룹의 평균을 동일하게 맞춰주는 작업인듯


아노바 테이블을 만들었다~
R에서 ols 모델 모양으로 불러오겠다는 뜻
보기 편해서 이렇게 불러온듯
model = ols('value ~ C(treatments)', data=df_melt).fit() # ols model 생성해주고
anova_table = sm.stats.anova_lm(model, typ=2) # 아노바~


bioinforkit을 통해 불러왔는데 위에거랑 내용은 같다
단지 mean_sq가 추가되었다 Mean Square를 확인하고 싶을때 쓰자

결과 해석

p값이 0.000026으로 0.05보다 작다.(귀무가설 기각)
따라서, 평균들이 상당한 차이가 있다.

그런데 통계적으로 차이가 있는지는 알 수 있지만, 어떤 치료 방법끼리 유의미하게 다른지는 알 수 없다.
유의미하게 다른 쌍을 알아내려면 Turkey's HSD란 방법을 사용할 수 있다.

Turkey's HSD

ANOVA의 사후 검정용으로 사용된다.

공식은 넘어가자....


output 부분을 보면 p-value가 있는데, 이걸 통해 모든 쌍별로 통계적 차이를 나타낸다.
예제에서는 A-C 쌍 빼고는 대부분 유의미한 차이가 있다.
위에 시각화 자료를 보면 직관적으로 알 수 있으니 참고하자.

0개의 댓글