분산분석 계산기 (일원분산분석)
세 개 이상의 독립 집단 평균을 비교합니다. 원자료를 붙여 넣거나 집단별 n, 평균, 표준편차를 입력하면 분산분석표, F값, p값, η², 등분산이 아닐 때 쓰는 Welch 분산분석, Tukey HSD 사후검정, APA 7 결과 문장을 보여 줍니다. 모든 계산은 브라우저 안에서 이루어집니다.
| 통계량 | 값 |
|---|---|
| F | 30.52 |
| 자유도 | 2.00, 12.00 |
| P값 | 1.97e-5 |
| η² | .84 |
| ω² | .80 |
| Welch F | 32.40 (p < .001) |
APA 보고
F(2.00, 12.00) = 30.52, p < .001, η² = .84
Tukey HSD
- A − B: Δ = -8.00, p = 0.008
- A − C: Δ = 8.80, p = 0.004
- B − C: Δ = 16.80, p = 1.33e-5
데이터를 업로드하고 통계·그림·참고문헌이 포함된 논문 초안 생성—무료 미리보기.
논문 생성사용 방법
1. **입력 방식 선택** - *원자료*: 집단별로 한 열씩 붙여 넣거나, CSV를 불러와 열을 선택합니다(집단 열 + 값 열의 긴 형식도 지원). - *요약 통계량*: 집단별 표본 크기, 평균, 표준편차를 입력합니다. 논문의 표만 있을 때 유용합니다. 2. **두 집단 이상 입력**(분산분석은 보통 세 집단 이상에 쓰며, 두 집단이면 독립표본 t검정과 같습니다). 3. **분산분석표 확인**: 제곱합, 자유도, 평균제곱, F값, p값, 효과크기 η². 4. **집단 간 표준편차나 크기가 많이 다르면** Welch 분산분석 결과를 확인합니다. 5. **Tukey HSD 확인**: 어느 집단 쌍이 다른지 수정된 p값과 신뢰구간으로 봅니다. 6. **APA 7 결과 문장 복사**.
데이터는 기기에만 머물며, 계산은 모두 브라우저에서 실행됩니다.
일원분산분석이란
일원분산분석(one-way ANOVA)은 여러 독립 집단의 모평균이 모두 같은지를 검정합니다.
- H0: μ1 = μ2 = … = μk
- H1: 적어도 한 집단의 평균이 다르다
**집단 간** 변동과 **집단 내** 변동을 비교해, 집단 평균 사이의 차이가 집단 내 우연한 변동으로 설명하기 어려울 만큼 크면 F값이 커지고 p값이 작아집니다.
**하나의 범주형 요인**으로 나뉜 독립 집단(세 가지 교수법, 네 가지 비료, 대조군과 두 가지 용량군 등)과 **연속형 결과변수**가 있을 때 사용합니다. 모든 쌍마다 t검정을 하면 1종 오류 확률이 커지므로, 먼저 분산분석으로 전체를 검정하고 Tukey HSD 같은 사후검정으로 쌍별 차이를 확인합니다.
같은 참가자를 여러 조건에서 측정했다면 반복측정 분산분석, 요인이 둘 이상이면 이원(다원)분산분석이 필요하며 이 페이지에서는 다루지 않습니다.
가정
- **독립성**: 각 관측은 한 집단에만 속하고 서로 영향을 주지 않는다.
- **정규성**: 각 집단 안에서 결과변수가 대략 정규분포를 따른다. 집단 크기가 비슷하고 각각 15 정도 이상이면 약간의 이탈에는 강건합니다.
- **등분산성**: 집단들의 분산이 비슷하다. 가장 큰 SD가 가장 작은 SD의 약 2배를 넘지 않는지가 흔한 기준입니다. 이를 어기면, 특히 집단 크기가 다를 때는 등분산을 가정하지 않는 **Welch 분산분석**을 보고하세요.
결과변수가 서열 척도이거나 작은 표본에서 심하게 치우쳐 있다면, 비모수 대안으로 Kruskal–Wallis 검정을 흔히 사용합니다. 두 집단 비교는 [Mann–Whitney U 검정 계산기](/ko/tools/mann-whitney-u-test-calculator)를 이용하세요.
공식
집단 수 k, 집단 크기 n_i, 집단 평균 ȳ_i, 전체 평균 ȳ, 전체 표본 수 N일 때:
`SS_집단간 = Σ n_i (ȳ_i − ȳ)²`, df_집단간 = k − 1
`SS_집단내 = Σ Σ (y_ij − ȳ_i)² = Σ (n_i − 1) s_i²`, df_집단내 = N − k
`MS = SS / df`
`F = MS_집단간 / MS_집단내`, 자유도 (k − 1, N − k)의 F분포와 비교합니다.
효과크기: `η² = SS_집단간 / SS_전체`.
Tukey HSD는 각 쌍에 대해 `q = |ȳ_i − ȳ_j| / √[ (MS_집단내 / 2)(1/n_i + 1/n_j) ]`를 구해 스튜던트화 범위 분포와 비교합니다.
Welch 분산분석은 `w_i = n_i / s_i²`로 가중하고 분모 자유도를 조정하므로 분산이 달라도 타당한 결과를 줍니다.
계산 예시
세 가지 교수법에 따른 시험 점수를 비교했습니다(각 5명).
| 교수법 | 점수 | 평균 | 표준편차 | |---|---|---|---| | A (강의) | 78, 82, 75, 80, 85 | 80.0 | 3.81 | | B (능동 학습) | 85, 88, 90, 84, 93 | 88.0 | 3.67 | | C (자습) | 70, 72, 68, 75, 71 | 71.2 | 2.59 |
분산분석표(Python과 SciPy로 검증):
| 변동원 | SS | df | MS | F | p | |---|---|---|---|---|---| | 집단 간 | 706.13 | 2 | 353.07 | 30.52 | < .001 | | 집단 내 | 138.80 | 12 | 11.57 | | | | 전체 | 844.93 | 14 | | | |
- **F(2, 12) = 30.52, p < .001**(p = 0.00002)
- **η² = .84**: 점수 변동의 약 84%가 집단 차이로 설명됩니다.
- Welch 분산분석: F(2, 7.73) = 33.42, p < .001로 결론이 같습니다.
Tukey HSD 사후검정:
| 비교 | 평균 차이 | 95% CI | 수정된 p | |---|---|---|---| | B − A | 8.0 | [2.26, 13.74] | .008 | | A − C | 8.8 | [3.06, 14.54] | .004 | | B − C | 16.8 | [11.06, 22.54] | < .001 |
세 쌍 모두 차이가 있으며, 능동 학습이 가장 높고 자습이 가장 낮았습니다.
결과 해석
- **F가 유의하다**는 것은 모든 평균이 같지는 않다는 뜻일 뿐, 어느 집단이 다른지는 사후검정으로 확인해야 합니다.
- **η²(에타제곱)**는 전체 분산 중 집단 구분으로 설명되는 비율입니다. Cohen의 기준으로 .01은 작음, .06은 중간, .14는 큼이 자주 인용됩니다. 작은 표본에서는 과대추정되므로 ω²가 덜 편향된 대안입니다.
- **Welch와 기존 F**: 결과가 같으면 어느 쪽을 보고해도 됩니다(요즘은 Welch를 기본으로 권하는 학술지도 많습니다). 다르고 분산이 같지 않다면 Welch를 따르세요.
- **Tukey HSD**는 모든 쌍별 비교의 전체 1종 오류율을 통제하며 등분산을 가정합니다. 각 쌍의 수정된 p값과 신뢰구간을 확인하세요.
- **F가 유의하지 않다**고 평균이 같다는 증거는 아닙니다. 집단이 작을 때는 특히 그렇습니다.
특정 두 집단의 표준화된 차이가 필요하면 [효과크기 계산기](/ko/tools/effect-size-calculator)로 Cohen's d를 구할 수 있습니다.
APA 7 양식으로 보고하기
검정 이름, 두 자유도, F값, p값, 효과크기를 쓰고, 이어서 사후검정 결과와 집단별 평균·표준편차(흔히 표로 제시)를 보고합니다.
> 일원분산분석 결과, 교수법에 따라 시험 점수에 유의한 차이가 있었다, *F*(2, 12) = 30.52, *p* < .001, η² = .84. Tukey HSD 사후검정 결과, 능동 학습 집단(*M* = 88.0, *SD* = 3.67)은 강의 집단(*M* = 80.0, *SD* = 3.81; *p* = .008)과 자습 집단(*M* = 71.2, *SD* = 2.59; *p* < .001)보다 높았고, 강의 집단은 자습 집단보다 높았다(*p* = .004).
Welch 분산분석을 사용했다면 *F*(2, 7.73) = 33.42처럼 소수 자유도를 보고합니다.
여러 결과변수, 공변량, 인구통계 정보가 담긴 전체 데이터셋이 있다면, Data2Paper의 [논문 생성](/ko/generate-paper)으로 분석부터 논문 초안 작성까지 할 수 있으며 앞부분은 무료로 미리 볼 수 있습니다.
자주 하는 실수
- **분산분석 + 사후검정 대신 t검정을 여러 번 실시**해 1종 오류율을 부풀림.
- **F가 유의한 데서 멈춤**: 어느 집단이 다른지 밝히지 않음.
- **F가 유의하지 않은데 사후검정을 돌려** 유의한 쌍만 보고함.
- **반복측정 자료에 일원분산분석 사용**(같은 참가자가 모든 조건에 참여).
- **이분산 무시**: 특히 가장 작은 집단의 SD가 가장 클 때 위험합니다. Welch를 쓰세요.
- **p값만 보고**: 효과크기와 집단별 평균·SD를 함께 보고해야 합니다.
- **작은 표본에서 응답이 한쪽 끝에 몰린 리커트 문항을** 근거 없이 연속변수로 취급.