Scipy.stats 통계 패키지의 f_oneway를 이용해서 분산분석하는 예제를 살펴보고, ANOVA의 개념도 알아봅니다.
[ Contents ]
1. 분산분석 (ANOVA, Analysis of Variance)
3개 이상의 집단의 평균이 서로 같은지 검정
분산분석은 3개 이상의 집단 평균이 서로 같은지를 판별하는 검정입니다. 두 집단의 평균이 같은지는 T검정을 통해서 판별하며, 분산분석은 3개 이상의 집단을 대상으로 합니다.
[Scipy] T-검정 개념 및 파이썬 활용 예시 알아보기 (ttest-1samp, ttest_ind, ttest_rel)
평균값 검정에 쓰이는 T 검정의 개념에 대해 알아보고, 이를 파이썬 Scipy.stats 라이브러리를 이용해서 시연해봅니다. [ Contents ] 1. T검정(T-test)두 집단(또는 한 집단과 기준값) 간의 평균 차이가 통
star7sss.tistory.com
귀무가설(H0): 세 집단의 모든 평균은 같다.
대립가설(H1): 적어도 1개의 집단 평균은 다르다.
귀무가설은 세 집단의 모든 평균이 같은지를 가정하며, 하나라도 평균이 다르면 기각됩니다.
2. f_oneway()
from scipy.stats import f_oneway
f_stat, p_value = f_oneway(group1, group2, group3)
분산분석에는 f_oneway를 이용합니다. 인자로 2개 이상의 데이터를 넣습니다. 분산분석은 주로 3개 이상의 데이터 집단의 평균 비교에 쓰이지만, 이론상 두 집단의 평균 비교도 가능하기 때문입니다.
두 집단의 평균 비교를 할 때, T검정의 t-통계량과 F검정의 f-통계량은 서로 같습니다.
그렇기에 분산분석으로 2개 집단 평균 비교를 해도 되지만, 일반적으로 t검정을 이용합니다.
3. 활용 예제
from scipy.stats import f_oneway
# 예: 세 집단의 시험 점수
group1 = [85, 90, 88, 92, 80] # A 학원
group2 = [78, 75, 80, 82, 78] # B 학원
group3 = [91, 94, 89, 95, 90] # C 학원
f_stat, p = f_oneway(group1, group2, group3)
print(f"F 통계량: {f_stat:.3f}, p-value: {p:.4f}")
세 집단의 시험점수 평균이 같은지를 확인하는 분산분석 예제입니다.
p-value가 0.0002로 상당히 낮으며, 이는 귀무가설을 기각하여 세 집단의 평균은 다르다고 할 수 있습니다.
import numpy as np
print(np.mean(group1), np.mean(group2), np.mean(group3))
실제로 세 집단의 표본 평균도 상당히 차이가 나는 걸 확인할 수 있죠.
이상, 분산분석 개념 및 활용예제를 살펴봤습니다.
'Data Visualization > Python Lib' 카테고리의 다른 글
[Scipy] chisquare 카이제곱 적합도 검정, 범주형 변수 기대 분포 일치 여부 검정하기 (0) | 2025.06.17 |
---|---|
[Scipy] 카이제곱 독립성 검정 개념 및 chi2_contingency 사용 예제 (0) | 2025.06.17 |
[Scipy] 등분산 검정 Levene Test, 파이썬 통계 패키지 이용해서 검정하는 방법 (0) | 2025.06.17 |
[Scipy] 정규성 검정 개념 및 shapiro를 통한 파이썬 사용 예시 알아보기 (0) | 2025.06.17 |
[Scipy] T-검정 개념 및 파이썬 활용 예시 알아보기 (ttest-1samp, ttest_ind, ttest_rel) (0) | 2025.06.17 |
댓글