본문 바로가기
Data Visualization/Python Lib

[Scipy] 분산분석(ANOVA, Analysis of Variance) 개념과 파이썬 활용 예제 알아보기

by jangThang 2025. 6. 17.
반응형

 Scipy.stats 통계 패키지의 f_oneway를 이용해서 분산분석하는 예제를 살펴보고, ANOVA의 개념도 알아봅니다.

 

[ Contents ]

     

     

    1. 분산분석 (ANOVA, Analysis of Variance)

    3개 이상의 집단의 평균이 서로 같은지 검정

     

     분산분석은 3개 이상의 집단 평균이 서로 같은지를 판별하는 검정입니다. 두 집단의 평균이 같은지는 T검정을 통해서 판별하며, 분산분석은 3개 이상의 집단을 대상으로 합니다.

     

    2025.06.17 - [Data Visualization/Python Lib] - [Scipy] T-검정 개념 및 파이썬 활용 예시 알아보기 (ttest-1samp, ttest_ind, ttest_rel)

     

    [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))

     실제로 세 집단의 표본 평균도 상당히 차이가 나는 걸 확인할 수 있죠.

     이상, 분산분석 개념 및 활용예제를 살펴봤습니다.

     

    반응형

    댓글