모수 검정(Parametric Test)
모수 검정(Parametric Test)은 모집단이 특정한 확률 분포(주로 정규 분포)를 따른다고 가정하고 수행하는 통계적 검정 방법이다. 이러한 검정은 모집단의 평균, 분산 등과 같은 모수(parameter) 를 추정하고 비교하는 데 초점을 맞춘다.
1. 모수 검정의 특징
- 확률 분포 가정
- 모집단이 특정한 분포(주로 정규 분포)를 따른다고 가정한다.
- 데이터 크기
- 일반적으로 표본 크기가 크거나(보통 30개 이상), 모집단이 정규성을 만족해야 한다.
- 모수 사용
- 모집단의 평균(μ), 분산(σ²) 등의 모수를 추정하고 비교한다.
- 강력한 검정력
- 주어진 가정이 충족될 경우, 비모수 검정보다 더 강력한 검정력을 가진다.
2. 대표적인 모수 검정 종류
검정 종류 / 사용 목적 / 예시
t-검정 (t-test) | 두 집단의 평균 비교 | 독립표본 t-검정, 대응표본 t-검정 |
분산 분석 (ANOVA, Analysis of Variance) | 세 개 이상의 그룹 평균 비교 | 일원 분산 분석(One-way ANOVA), 이원 분산 분석(Two-way ANOVA) |
회귀 분석 (Regression Analysis) | 변수 간 관계 분석 | 선형 회귀 분석, 다중 회귀 분석 |
z-검정 (z-test) | 모집단의 평균 비교 (표본 수가 클 때) | 단일표본 z-검정, 두 집단 z-검정 |
독립표본 t-검정 vs 대응표본 t-검정 비교
비교 항목 / 독립표본 t-검정 / 대응표본 t-검정
비교 대상 | 서로 독립적인 두 집단 | 같은 집단의 전후 비교 |
예제 | A/B반 성적 비교, 남녀 키 비교 | 다이어트 전후 체중 비교 |
표본 수 | 두 개의 독립된 표본 필요 | 같은 표본에서 두 번 측정 |
오차 감소 | 없음 | 개인별 차이를 통제하여 분석 오차 감소 |
통계적 검정 | t=X1ˉ−X2ˉ표준오차t = \frac{\bar{X_1} - \bar{X_2}}{\text{표준오차}} | t=DˉsDnt = \frac{\bar{D}}{\frac{s_D}{\sqrt{n}}} |
결론
두 집단 평균 비교 시 독립표본 t-검정과 대응표본 t-검정이 맞다.
독립표본 t-검정: 서로 독립된 두 집단(예: A/B 테스트, 남녀 비교)
대응표본 t-검정: 같은 집단에서 전/후 비교(예: 다이어트 전후 비교)
3. 모수 검정을 사용할 때 주의할 점
- 정규성 검토 필요
- 모집단이 정규 분포를 따른다는 가정을 충족해야 한다.
- Shapiro-Wilk Test, Kolmogorov-Smirnov Test 등을 이용하여 정규성을 검토할 수 있다.
- 등분산성(Variance Homogeneity) 확인
- 두 집단 이상의 분산이 동일하다는 가정이 필요하다.
- Levene’s Test, Bartlett’s Test 등을 이용하여 검토 가능하다.
- 표본 크기 고려
- 표본 크기가 작을 경우, 정규성 가정이 위배될 가능성이 있다.
- 이럴 경우 비모수 검정(Non-parametric test)을 고려해야 한다.
4. 모수 검정 vs 비모수 검정
구분 모수 검정 (Parametric Test) 비모수 검정 (Non-parametric Test)
가정 | 정규 분포 가정 필요 | 정규 분포 가정 없음 |
데이터 유형 | 연속형 데이터 (Interval, Ratio) | 순위 데이터, 범주형 데이터 가능 (Ordinal, Nominal) |
검정력 | 높은 검정력 (가정 충족 시) | 상대적으로 낮음 |
예시 | t-검정, ANOVA, 회귀 분석 | Wilcoxon 검정, Mann-Whitney U 검정, Kruskal-Wallis 검정 |
5. 언제 모수 검정을 사용할까?
- 데이터가 정규 분포를 따르는지 확인한 후, 정규성이 만족되면 모수 검정을 사용한다.
- 표본 수가 충분히 클 경우(보통 30개 이상), 중심극한정리에 의해 정규성을 가정할 수 있으므로 모수 검정을 고려할 수 있다.
- 모집단의 평균, 분산 등의 모수를 비교하는 것이 목표라면 모수 검정을 사용하는 것이 적절하다.
6. 실제 적용 예제 (Python 코드)
python
복사편집
import scipy.stats as stats
# 두 집단의 샘플 데이터
group1 = [23, 25, 28, 21, 22, 27, 24, 26, 29, 30]
group2 = [31, 33, 30, 35, 32, 34, 29, 28, 36, 37]
# 독립표본 t-검정 (두 집단 평균 비교)
t_stat, p_value = stats.ttest_ind(group1, group2)
print(f"t-통계량: {t_stat:.3f}, p-값: {p_value:.3f}")
# p-value < 0.05 이면 유의미한 차이가 있다고 판단
7. 정리
- 모수 검정은 모집단이 특정 분포(주로 정규 분포)를 따른다고 가정하는 검정 방법이다.
- 대표적인 모수 검정에는 t-검정, ANOVA, 회귀 분석, z-검정 등이 있다.
- 정규성 및 등분산성 가정이 충족되는지 확인한 후 사용해야 한다.
- 표본 크기가 작거나 정규성 가정을 만족하지 못할 경우 비모수 검정을 고려해야 한다.
비모수 검정(Non-Parametric Test)
비모수 검정(Non-Parametric Test)은 모집단이 특정한 확률 분포(예: 정규 분포)를 따른다고 가정하지 않고 수행하는 통계적 검정 방법이다. 즉, 데이터의 분포에 대한 가정이 없거나 최소한의 가정만을 필요로 한다.
1. 비모수 검정의 특징
- 분포에 대한 가정 없음
- 모집단이 정규 분포를 따를 필요가 없음.
- 데이터가 왜곡되었거나, 이상치가 많을 때 유용함.
- 순위(rank) 기반 검정
- 대부분의 비모수 검정은 데이터의 크기 순서를 기반으로 하여 분석을 수행.
- 즉, 개별 수치보다 데이터 간 순위 차이를 활용함.
- 적용 범위가 넓음
- 연속형뿐만 아니라 서열형(ordinal) 데이터에도 적용 가능.
- 표본 크기가 작을 때도 사용할 수 있음.
- 검정력(Statistical Power)이 낮음
- 모수 검정보다 일반적으로 검정력이 낮아, 차이를 검출하는 능력이 떨어질 수 있음.
2. 대표적인 비모수 검정 종류
검정 종류 사용 목적 대응되는 모수 검정
Mann-Whitney U 검정 | 두 독립 집단의 중앙값 비교 | 독립표본 t-검정 |
Wilcoxon 부호 순위 검정 | 두 대응 표본의 중앙값 비교 | 대응표본 t-검정 |
Kruskal-Wallis 검정 | 세 개 이상의 독립 집단 비교 | 일원분산분석(ANOVA) |
Friedman 검정 | 세 개 이상의 반복 측정된 데이터 비교 | 반복측정 분산분석(Repeated Measures ANOVA) |
카이제곱 검정 (Chi-Square Test) | 범주형 데이터의 독립성/적합도 검정 | 없음 (비모수 검정) |
Kolmogorov-Smirnov 검정 | 한 집단의 분포가 특정 분포(정규 분포 등)와 일치하는지 검정 | 정규성 검정 |
3. 언제 비모수 검정을 사용할까?
- 데이터가 정규 분포를 따르지 않을 때
- 예: 모집단이 치우친 분포를 가지거나 이상치가 많을 경우.
- 데이터의 크기가 작을 때 (n < 30)
- 작은 표본에서는 정규성을 만족하지 않을 가능성이 높음.
- 순위 데이터(Ordinal Data)를 사용할 때
- 예: "매우 좋음, 좋음, 보통, 나쁨, 매우 나쁨"과 같은 서열 척도 데이터.
- 이상치(Outlier)의 영향을 줄이고 싶을 때
- 평균보다는 중앙값을 비교하는 것이 더 적절할 경우.
4. 대표적인 비모수 검정 방법과 예제 (Python 코드 포함)
① Mann-Whitney U 검정 (독립된 두 집단 비교)
- 독립된 두 집단의 중앙값 차이를 비교.
- 독립표본 t-검정(t-test)와 대응됨.
python
복사편집
import scipy.stats as stats
# 두 집단의 샘플 데이터 (정규성을 따르지 않는 경우)
group1 = [23, 25, 28, 21, 22, 27, 24, 26, 29, 30]
group2 = [31, 33, 30, 35, 32, 34, 29, 28, 36, 37]
# Mann-Whitney U 검정 수행
u_stat, p_value = stats.mannwhitneyu(group1, group2, alternative='two-sided')
print(f"U-통계량: {u_stat}, p-값: {p_value}")
- p-value < 0.05이면 두 집단의 중앙값 차이가 유의미하다고 해석.
② Wilcoxon 부호 순위 검정 (대응 표본 비교)
- 같은 집단에서 측정 전후 비교(예: 전후 테스트 점수 비교).
- 대응표본 t-검정과 유사.
python
복사편집
# Wilcoxon 부호 순위 검정
pre_test = [88, 75, 92, 85, 79]
post_test = [90, 78, 95, 83, 80]
stat, p_value = stats.wilcoxon(pre_test, post_test)
print(f"Wilcoxon 검정 통계량: {stat}, p-값: {p_value}")
- p-value < 0.05이면 두 시점의 차이가 유의미하다고 해석.
③ Kruskal-Wallis 검정 (세 개 이상의 독립 집단 비교)
- 독립적인 세 집단 이상의 중앙값 차이를 검정.
- 일원분산분석(ANOVA)과 유사.
python
복사편집
# 세 개의 그룹 데이터
group1 = [23, 25, 28, 21, 22, 27]
group2 = [31, 33, 30, 35, 32, 34]
group3 = [41, 45, 42, 43, 46, 40]
# Kruskal-Wallis 검정
stat, p_value = stats.kruskal(group1, group2, group3)
print(f"Kruskal-Wallis 검정 통계량: {stat}, p-값: {p_value}")
- p-value < 0.05이면 적어도 한 그룹의 중앙값이 다름.
④ 카이제곱 검정 (범주형 데이터 분석)
- 두 범주형 변수 간 독립성을 검정.
python
복사편집
import numpy as np
# 관측된 데이터 (행렬 형태)
observed = np.array([[10, 20], [30, 40]])
# 카이제곱 검정 실행
chi2, p_value, dof, expected = stats.chi2_contingency(observed)
print(f"카이제곱 통계량: {chi2}, p-값: {p_value}")
- p-value < 0.05이면 두 변수 간 연관성이 있다고 해석.
5. 모수 검정 vs 비모수 검정 비교
기준 모수 검정 (Parametric Test) 비모수 검정 (Non-Parametric Test)
가정 | 정규 분포 가정 필요 | 분포 가정 없음 |
데이터 유형 | 연속형 (Interval, Ratio) | 순위형(Ordinal), 범주형(Nominal) 데이터도 가능 |
검정력 | 더 높음 (정규성 가정 충족 시) | 낮음 (모수 검정보다 덜 민감) |
이상치에 대한 민감도 | 이상치에 민감 | 이상치에 덜 민감 |
적용 예 | t-검정, ANOVA, 회귀 분석 | Mann-Whitney U, Kruskal-Wallis, Wilcoxon 검정 |
6. 정리
- 비모수 검정은 데이터가 특정 분포(정규 분포)를 따른다고 가정하지 않는 검정 방법이다.
- 순위 기반 검정을 사용하므로 이상치 영향을 덜 받으며, 표본 크기가 작아도 사용할 수 있다.
- 대표적인 비모수 검정으로 Mann-Whitney U, Wilcoxon, Kruskal-Wallis, 카이제곱 검정 등이 있다.
- 정규성을 만족하지 않는다면 모수 검정보다 비모수 검정을 고려하는 것이 좋다.
검정 통계량(Test Statistic) 개념 정리
검정 통계량(Test Statistic)은 가설 검정을 수행할 때 표본 데이터로부터 계산된 값으로, 귀무가설(𝐻₀)과 대립가설(𝐻₁) 중 어느 것이 더 적절한지를 판단하는 기준이 되는 값이다.
이 값은 표본 데이터의 특성을 반영하며, 특정 확률 분포(정규 분포, t-분포, 카이제곱 분포 등)를 따른다.
1. 검정 통계량의 특징
- 가설 검정에서 중심적인 역할을 수행
- 귀무가설이 참이라는 가정 하에서, 표본 데이터가 얼마나 극단적인지를 측정하는 값이다.
- 특정한 분포를 따름
- 어떤 검정을 수행하느냐에 따라 t-분포, z-분포, 카이제곱 분포, F-분포 등을 따르게 된다.
- p-값 계산의 기초가 됨
- 검정 통계량을 통해 p-value를 계산하고, 이를 기준으로 가설 기각 여부를 결정한다.
- 표본 크기 및 변동성에 따라 값이 변함
- 표본의 크기가 크거나 변동성이 낮을수록 검정 통계량의 신뢰성이 높아진다.
2. 주요 검정 통계량 종류 및 공식
검정 방법에 따라 다양한 검정 통계량이 존재하며, 대표적인 검정 통계량은 다음과 같다.
① z-통계량 (Z-score, 표준 정규 분포)
- 모집단의 분산(σ²)을 알고 있을 때, 모집단 평균 μ와 표본 평균 𝑋̄를 비교하는 데 사용.
- 일반적으로 표본 크기가 30개 이상일 때 사용.Z=nσXˉ−μZ=Xˉ−μσnZ = \frac{\bar{X} - \mu}{\frac{\sigma}{\sqrt{n}}}
- Xˉ\bar{X}Xˉ : 표본 평균
- μ\muμ : 모집단 평균
- σ\sigmaσ : 모집단 표준편차
- nnn : 표본 크기
- import scipy.stats as stats # z-검정 실행 (예: 표본 평균이 100, 모집단 평균이 95, 모집단 표준편차가 10, 표본 크기 30)
z_score = (100 - 95) / (10 / (30 ** 0.5)) p_value = 1 - stats.norm.cdf(z_score) print(f"Z-통계량: {z_score:.3f}, p-값: {p_value:.3f}") - 공식:
② t-통계량 (t-score, t-분포)
- 모집단의 분산(σ²)을 모를 때, 표본의 표준편차(s)로 대체하여 사용.
- 표본 크기가 작을 때(n<30n < 30n<30) 주로 사용.t=nsXˉ−μt=Xˉ−μsnt = \frac{\bar{X} - \mu}{\frac{s}{\sqrt{n}}}
- sss : 표본 표준편차
- import numpy as np
from scipy import stats sample = [88, 92, 85, 95, 91] t_stat, p_value = stats.ttest_1samp(sample, 90) # 모집단 평균 90과 비교
print(f"t-통계량: {t_stat:.3f}, p-값: {p_value:.3f}") - 공식:
③ 카이제곱(χ²) 통계량 (Chi-Square)
- 범주형 데이터에서 기대값과 실제 관찰값의 차이를 비교할 때 사용.
- 독립성 검정, 적합도 검정 등에 사용됨.χ2=∑E(O−E)2χ2=∑(O−E)2E\chi^2 = \sum \frac{(O - E)^2}{E}
- OOO : 관측값(Observed Value)
- EEE : 기대값(Expected Value)
- import numpy as np observed = np.array([[50, 30], [20, 40]]) # 관측된 데이터chi2,p_value, dof,
expected = stats.chi2_contingency(observed)
print(f"Chi-Square 통계량: {chi2:.3f}, p-값: {p_value:.3f}") - 공식:
④ F-통계량 (F-statistic, F-분포)
- 세 개 이상의 그룹 간 평균 비교 (ANOVA 검정) 시 사용.
- 분산 분석(ANOVA)에서 두 개 이상의 집단의 평균이 동일한지 여부를 판단.F=그룹 내 분산(Within Group Variance)그룹 간 분산(Between Group Variance)F=그룹 간 분산(Between Group Variance)그룹 내 분산(Within Group Variance)F = \frac{\text{그룹 간 분산(Between Group Variance)}}{\text{그룹 내 분산(Within Group Variance)}}
python 복사편집 group1 = [23, 25, 28, 21, 22] group2 = [31, 33, 30, 35, 32] group3 = [41, 45, 42, 43, 46] f_stat, p_value = stats.f_oneway(group1, group2, group3) print(f"F-통계량: {f_stat:.3f}, p-값: {p_value:.3f}")
- 예제 (Python)
- 공식:
3. 검정 통계량과 p-값의 관계
- 검정 통계량이 클수록 귀무가설을 기각할 가능성이 높아짐.
- p-값(p-value) 은 검정 통계량을 기반으로 계산되며, p-값이 0.05(α)보다 작으면 귀무가설을 기각함.
검정 통계량 의미
작음 | 귀무가설 채택 가능성이 높음 |
큼 | 귀무가설 기각 가능성이 높음 |
4. 요약 정리
검정 통계량 적용 상황 대응되는 검정
Z-통계량 (Z-score) | 모집단 분산(σ²)을 알고 있을 때, 표본 평균 비교 | Z-검정 |
T-통계량 (T-score) | 모집단 분산을 모를 때, 소표본 비교 | T-검정 (t-test) |
χ² (Chi-Square) | 범주형 데이터 분석, 독립성 검정 | 카이제곱 검정 |
F-통계량 (F-statistic) | 세 개 이상의 그룹 평균 비교 | ANOVA 검정 |
5. 결론
- 검정 통계량(Test Statistic)은 표본에서 계산된 값으로, 가설 검정에서 중요한 역할을 한다.
- 검정 통계량은 특정 확률 분포(Z-분포, t-분포, χ²-분포, F-분포 등)를 따르며, 가설 검정의 기준이 된다.
- p-값과 함께 사용하여 귀무가설을 기각할지 여부를 결정한다.
- 검정 방법에 따라 적절한 검정 통계량을 선택해야 한다.
신뢰구간(Confidence Interval, CI) 개념 정리
1. 신뢰구간(Confidence Interval, CI)이란?
- 모집단의 평균(𝜇)이나 비율(𝑝) 등의 모수를 추정할 때, 표본을 이용하여 계산한 값이 일정 확률(신뢰수준) 내에서 포함될 것으로 예상되는 범위를 의미한다.
- 예를 들어, "95% 신뢰구간이 (45, 55)"라는 것은 모집단의 평균이 45에서 55 사이에 있을 확률이 95%라는 의미이다.
2. 신뢰구간의 특징
- 신뢰수준(Confidence Level, CL)에 따라 범위가 달라짐
- 일반적으로 90%, 95%, 99%를 많이 사용하며, 신뢰수준이 높을수록 신뢰구간도 넓어진다.
- 예: 95% 신뢰구간 > 90% 신뢰구간
- 표본의 크기(n)가 클수록 신뢰구간이 좁아짐
- 표본이 많아질수록 모집단을 더 정확히 추정할 수 있기 때문.
- 표준편차(𝜎)가 클수록 신뢰구간이 넓어짐
- 데이터가 많이 분산되어 있을수록 불확실성이 증가하기 때문.
3. 신뢰구간 계산 공식
신뢰구간은 일반적으로 다음 공식으로 계산된다.
① 모집단의 표준편차(𝜎)를 아는 경우 (Z-분포 사용)
Xˉ±Zα/2×σn\bar{X} \pm Z_{\alpha/2} \times \frac{\sigma}{\sqrt{n}}
Xˉ±Zα/2×n
σ
- Xˉ\bar{X}Xˉ : 표본 평균
- Zα/2Z_{\alpha/2}Zα/2 : Z-분포의 신뢰수준에 해당하는 값 (예: 95% 신뢰구간 → Z=1.96)
- σ\sigmaσ : 모집단의 표준편차
- nnn : 표본 크기
② 모집단의 표준편차(𝜎)를 모르는 경우 (T-분포 사용)
Xˉ±tα/2,df×sn\bar{X} \pm t_{\alpha/2, df} \times \frac{s}{\sqrt{n}}
Xˉ±tα/2,df×n
s
- tα/2,dft_{\alpha/2, df}tα/2,df : 자유도(df = n-1)를 고려한 t-값
- sss : 표본 표준편차
③ 비율(𝑝)에 대한 신뢰구간 (예: 여론조사)
p^±Zα/2×p^(1−p^)n\hat{p} \pm Z_{\alpha/2} \times \sqrt{\frac{\hat{p} (1-\hat{p})}{n}}
p^±Zα/2×np^(1−p^)
- p^\hat{p}p^ : 표본 비율
- nnn : 표본 크기
4. 신뢰구간 예제 (Python 코드)
① 평균 신뢰구간 (모집단 표준편차 모를 때, t-분포 사용)
python
복사편집
import numpy as np
import scipy.stats as stats
# 샘플 데이터
data = [23, 25, 28, 21, 22, 27, 24, 26, 29, 30]
n = len(data) # 표본 크기
mean = np.mean(data) # 표본 평균
std_err = stats.sem(data) # 표준 오차
# 95% 신뢰구간 계산 (t-분포 사용)
confidence = 0.95
t_value = stats.t.ppf((1 + confidence) / 2, df=n-1)
margin_of_error = t_value * std_err
ci_lower = mean - margin_of_error
ci_upper = mean + margin_of_error
print(f"95% 신뢰구간: ({ci_lower:.2f}, {ci_upper:.2f})")
② 비율에 대한 신뢰구간 (예: 여론조사)
python
복사편집
# 가정: 표본 중 60%가 특정 후보를 지지하고, 표본 크기는 1000명
p_hat = 0.6 # 표본 비율
n = 1000 # 표본 크기
confidence = 0.95 # 95% 신뢰구간
# Z 값 설정 (95% 신뢰구간 → Z=1.96)
z_value = stats.norm.ppf((1 + confidence) / 2)
# 표준 오차 계산
std_error = np.sqrt((p_hat * (1 - p_hat)) / n)
# 신뢰구간 계산
ci_lower = p_hat - z_value * std_error
ci_upper = p_hat + z_value * std_error
print(f"95% 신뢰구간: ({ci_lower:.3f}, {ci_upper:.3f})")
5. 신뢰구간과 유의수준(α)의 관계
- 신뢰구간과 유의수준(α)는 상호 보완적인 개념이다.
- 신뢰수준(Confidence Level, CL) = 1 - 유의수준(α)예: 95% 신뢰구간이면 유의수준 α = 0.05 (즉, 5%의 확률로 틀릴 가능성이 있음)
신뢰수준 유의수준(α) Z-값
90% | 0.10 | 1.645 |
95% | 0.05 | 1.960 |
99% | 0.01 | 2.576 |
6. 신뢰구간 해석
- "95% 신뢰구간이 (45, 55)"란?
- "모집단 평균이 45에서 55 사이에 있을 확률이 95%다."
- "같은 방법으로 여러 번 표본을 추출하면, 95%의 경우 신뢰구간이 모집단 평균을 포함할 것이다."
- 신뢰수준이 높을수록 신뢰구간은 넓어진다.
- 90% 신뢰구간 < 95% 신뢰구간 < 99% 신뢰구간
- 신뢰성을 높이면 불확실성을 줄이기 위해 범위를 넓혀야 하기 때문.
- 표본 크기가 커질수록 신뢰구간은 좁아진다.
- 큰 표본을 사용할수록 모집단에 대한 추정이 더 정확해지므로, 신뢰구간이 좁아진다.
7. 신뢰구간 vs 가설검정
구분 신뢰구간 (CI) 가설검정 (Hypothesis Testing)
목적 | 모집단 모수(평균, 비율 등)의 범위 추정 | 특정한 가설(𝐻₀)을 검정 |
결과 | 특정 범위 (예: 45~55) | p-값 (예: p = 0.03) |
해석 | "평균이 이 범위 내에 있을 것이다" | "귀무가설을 기각/채택할 것이다" |
- 신뢰구간에 기각값이 포함되지 않으면 귀무가설을 기각할 수 있음예: 평균이 100인지 검정하는데 95% 신뢰구간이 (90, 98)라면, 100을 포함하지 않으므로 유의미한 차이가 있다고 판단.
8. 요약
- 신뢰구간(Confidence Interval, CI)은 모집단의 모수를 추정하는 데 사용되는 범위이다.
- 주어진 신뢰수준(예: 95%)에서, 해당 범위가 모집단 값을 포함할 확률을 의미한다.
- 표본 크기가 커지면 신뢰구간이 좁아지고, 신뢰수준이 높아지면 신뢰구간이 넓어진다.
- Z-분포, t-분포, 카이제곱 분포 등을 이용해 계산할 수 있으며, 평균과 비율에 대한 신뢰구간을 구할 수 있다.
- 가설검정과 신뢰구간은 밀접한 관계가 있으며, 신뢰구간을 통해 가설검정의 결과를 유추할 수 있다.
귀무가설(Null Hypothesis, H0H_0H0) & 대립가설(Alternative Hypothesis, H1H_1H1)
1. 가설검정이란?
- 가설검정(Hypothesis Testing) 은 표본 데이터를 이용하여 모집단에 대한 가설을 검증하는 통계적 방법이다.
- 검정할 가설은 두 가지로 나뉜다:
- 귀무가설(Null Hypothesis, H0H_0H0)
- "차이가 없다" 또는 "효과가 없다"는 기본 가설
- 예: "새로운 약이 기존 약과 효과 차이가 없다."
- 대립가설(Alternative Hypothesis, H1H_1H1)
- 귀무가설이 틀렸을 가능성을 의미하는 가설
- 예: "새로운 약이 기존 약보다 효과가 있다."
- 귀무가설(Null Hypothesis, H0H_0H0)
2. 귀무가설(H0H_0H0)
- "차이가 없다" 또는 "특별한 효과가 없다"는 기본 가정
- 보통 평균이 같다, 변화가 없다, 연관성이 없다는 형태로 표현됨
- 예시:
- "두 집단의 평균이 같다" → H0:μ1=μ2
- H0:μ1=μ2H_0: \mu_1 = \mu_2
- "새로운 마케팅 전략이 매출에 영향을 미치지 않는다" → H0:변화 없음
- H0:변화 없음H_0: \text{변화 없음}
3. 대립가설(H1H_1H1)
- 귀무가설이 틀렸다고 주장하는 가설
- "차이가 있다", "효과가 있다", "변화가 있다"는 식으로 표현됨
- 예시:
- "두 집단의 평균이 다르다" → H1:μ1=μ2
- H1:μ1≠μ2H_1: \mu_1 \neq \mu_2
- "새로운 마케팅 전략이 매출을 증가시킨다" → H1:매출 증가
- H1:매출 증가H_1: \text{매출 증가}
4. 가설검정의 예시
① 평균 비교 예시 (A/B 테스트) : 리소스가 많이 든다.
- 가정: 신제품의 평균 만족도(μ)가 기존 제품과 동일한지 검정
가설 설명
귀무가설 H0H_0H0 | 신제품과 기존 제품의 평균 만족도 차이가 없음 → H0:μ신제품=μ기존 제품H_0: \mu_{\text{신제품}} = \mu_{\text{기존 제품}}H0:μ신제품=μ기존 제품 |
대립가설 H1H_1H1 | 신제품의 평균 만족도가 기존 제품보다 다름 → H1:μ신제품≠μ기존 제품H_1: \mu_{\text{신제품}} \neq \mu_{\text{기존 제품}}H1:μ신제품=μ기존 제품 |
② 신약 효과 검정 예시
가설 설명
귀무가설 H0H_0H0 | 신약과 기존 약의 효과 차이가 없음 → H0:μ신약=μ기존 약H_0: \mu_{\text{신약}} = \mu_{\text{기존 약}}H0:μ신약=μ기존 약 |
대립가설 H1H_1H1 | 신약의 효과가 기존 약보다 큼 → H1:μ신약>μ기존 약H_1: \mu_{\text{신약}} > \mu_{\text{기존 약}}H1:μ신약>μ기존 약 |
5. 양측검정 vs 단측검정
가설검정은 검정 방향에 따라 양측검정과 단측검정으로 나뉜다.
구분 귀무가설 H0H_0H0 대립가설 H1H_1H1 예시
양측검정 | μ1=μ2\mu_1 = \mu_2μ1=μ2 | μ1≠μ2\mu_1 \neq \mu_2μ1=μ2 | 신약 효과가 기존 약보다 크거나 작을 수 있음 |
단측검정 (우측) | μ1=μ2\mu_1 = \mu_2μ1=μ2 | μ1>μ2\mu_1 > \mu_2μ1>μ2 | 신약 효과가 기존 약보다 클 것이라고 예상 |
단측검정 (좌측) | μ1=μ2\mu_1 = \mu_2μ1=μ2 | μ1<μ2\mu_1 < \mu_2μ1<μ2 | 신약 효과가 기존 약보다 작을 것이라고 예상 |
양측검정 (Two-tailed Test)
- 차이가 있는지만 검정 (방향 없음)
- 예: "새로운 교육 방식이 기존 교육보다 다를까?" (H1:=)
- H1:≠H_1: \neq
단측검정 (One-tailed Test)
- 특정 방향으로 차이가 있는지를 검정
- 예: "새로운 교육 방식이 기존 교육보다 더 효과적일까?" (H1:>)
- H1:>H_1: >
6. 가설검정 과정
- 귀무가설 (H0H_0H0)과 대립가설 (H1H_1H1) 설정
- 유의수준 (α\alphaα, 보통 0.05) 설정
- 검정통계량 (z-값, t-값 등) 계산
- p-값과 유의수준 비교
- p<0.05p < 0.05p<0.05 → 귀무가설 기각 (통계적으로 유의미함)
- p≥0.05p \geq 0.05p≥0.05 → 귀무가설 채택 (유의미한 차이 없음)
7. Python 예제 (t-검정을 이용한 평균 비교)
python
복사편집
import numpy as np
import scipy.stats as stats
# 두 그룹 데이터
group1 = [88, 75, 92, 85, 79]
group2 = [90, 78, 95, 83, 80]
# 독립표본 t-검정
t_stat, p_value = stats.ttest_ind(group1, group2)
print(f"t-통계량: {t_stat:.3f}, p-값: {p_value:.3f}")
# 결과 해석
if p_value < 0.05:
print("귀무가설 기각: 두 그룹의 평균 차이가 유의미함")
else:
print("귀무가설 채택: 두 그룹의 평균 차이가 유의미하지 않음")
8. 귀무가설 기각과 오류
오류 유형 설명
제1종 오류(Type I Error, α) | 실제로는 참인 귀무가설(H0H_0H0)을 잘못 기각함 |
제2종 오류(Type II Error, β) | 실제로는 거짓인 귀무가설(H0H_0H0)을 기각하지 못함 |
- 유의수준(α): 제1종 오류를 허용하는 확률 (보통 0.05)
- 검정력(1 - β): 제2종 오류를 피할 확률 (높을수록 좋음)
9. 요약 정리
- 귀무가설 (H0H_0H0): "차이가 없다" 또는 "효과가 없다"는 기본 가설.
- 대립가설 (H1H_1H1): "차이가 있다" 또는 "효과가 있다"는 가설.
- 양측검정: 방향이 없는 차이를 검정 (H1:=)
- H1:≠H_1: \neq
- 단측검정: 특정 방향의 차이를 검정 (H1:> 또는 H1:<)H1:<H_1: <
- H1:>H_1: >
- p-값이 0.05 미만이면 귀무가설 기각, 0.05 이상이면 채택
- 제1종 오류(α): 잘못된 기각, 제2종 오류(β): 잘못된 채택
가설을 어떻게 세웠는지 예측 엔진은 어떤걸 썼는지?
전처리 잘해야되고, 가설, 예측, 인사이트, 코드는 노션보다는 결과값이 있는 깃허브에 정리추천
표본크기는 동일해야 비교가됨.
P-value (0.05 회사마다 다르다)했을때 해석
t-검정 (t-test) 개념 정리
1. t-검정이란?
- 두 집단의 평균을 비교하여 차이가 통계적으로 유의미한지 검정하는 방법.
- 모집단의 표준편차(𝜎)를 모를 때 사용.
- 표본 크기가 30개 미만일 때 주로 사용되며, 정규성을 가정.
2. t-검정의 종류
유형비교 대상귀무가설 (H0H_0 )예시
단일표본 t-검정 | 표본 평균 vs 모집단 평균 | μ=μ0\mu = \mu_0 | 학생들의 평균 점수가 80점과 같은가? |
독립표본 t-검정 | 두 독립 집단의 평균 비교 | μ1=μ2\mu_1 = \mu_2 | A반과 B반의 평균 점수가 같은가? |
대응표본 t-검정 | 같은 집단의 전/후 변화 비교 | μ전=μ후\mu_{\text{전}} = \mu_{\text{후}} | 다이어트 전후 체중 비교 |
3. t-검정 공식
① 단일표본 t-검정 (One Sample t-test)t=Xˉ−μ0snt = \frac{\bar{X} - \mu_0}{\frac{s}{\sqrt{n}}}
- Xˉ\bar{X} : 표본 평균
- μ0\mu_0 : 모집단 평균
- ss : 표본 표준편차
- nn : 표본 크기
② 독립표본 t-검정 (Independent t-test)t=X1ˉ−X2ˉsp2(1n1+1n2)t = \frac{\bar{X_1} - \bar{X_2}}{\sqrt{s_p^2 \left( \frac{1}{n_1} + \frac{1}{n_2} \right)}}
- sp2s_p^2 (공통 표준편차)
sp2=(n1−1)s12+(n2−1)s22n1+n2−2s_p^2 = \frac{(n_1 - 1)s_1^2 + (n_2 - 1)s_2^2}{n_1 + n_2 - 2}③ 대응표본 t-검정 (Paired t-test)t=DˉsDnt = \frac{\bar{D}}{\frac{s_D}{\sqrt{n}}}
- Dˉ\bar{D} : 두 측정값의 차이 평균
- sDs_D : 차이의 표준편차
- nn : 표본 크기
4. t-검정의 가정
- 정규성(Normality): 표본이 정규분포를 따라야 함 (표본이 작을 경우 중요).
- 독립성(Independence): 독립표본 t-검정에서는 두 집단이 서로 독립적이어야 함.
- 등분산성(Homoscedasticity): 독립표본 t-검정에서는 두 집단의 분산이 같아야 함 (Levene’s Test로 확인 가능).
5. Python 코드 예제
① 단일표본 t-검정
import scipy.stats as stats
# 데이터 (학생 성적)
data = [78, 82, 85, 80, 79, 88, 91, 76, 84, 83]
# 단일표본 t-검정 (모집단 평균 80점과 비교)
t_stat, p_value = stats.ttest_1samp(data, 80)
print(f"t-통계량: {t_stat:.3f}, p-값: {p_value:.3f}")
# 해석
if p_value < 0.05:
print("귀무가설 기각: 평균이 80과 다름")
else:
print("귀무가설 채택: 평균이 80과 유의미한 차이 없음")
② 독립표본 t-검정
group1 = [88, 75, 92, 85, 79]
group2 = [90, 78, 95, 83, 80]
# 독립표본 t-검정 (equal_var=False: 등분산 가정 안함)
t_stat, p_value = stats.ttest_ind(group1, group2, equal_var=False)
print(f"t-통계량: {t_stat:.3f}, p-값: {p_value:.3f}")
# 해석
if p_value < 0.05:
print("귀무가설 기각: 두 그룹 평균 차이가 유의미함")
else:
print("귀무가설 채택: 두 그룹 평균 차이가 없음")
③ 대응표본 t-검정 (전후 비교)
before = [70, 72, 68, 75, 73]
after = [68, 69, 66, 73, 70]
# 대응표본 t-검정
t_stat, p_value = stats.ttest_rel(before, after)
print(f"t-통계량: {t_stat:.3f}, p-값: {p_value:.3f}")
# 해석
if p_value < 0.05:
print("귀무가설 기각: 다이어트 전후 체중 차이가 유의미함")
else:
print("귀무가설 채택: 다이어트 효과가 유의미하지 않음")
6. p-값 해석
- p < 0.05 → 귀무가설 기각 (통계적으로 유의미한 차이가 있음)
- p ≥ 0.05 → 귀무가설 채택 (유의미한 차이 없음)
7. t-검정 vs Z-검정 비교
구분 / t-검정 / Z-검정
표본 크기 | n<30n < 30 | n≥30n \geq 30 |
모집단 표준편차(𝜎) | 모를 때 | 알 때 |
사용 분포 | t-분포 | 정규분포(Z-분포) |
적용 예 | 소규모 실험, A/B 테스트 | 대규모 여론조사 |
8. 요약
- t-검정은 모집단의 표준편차를 모를 때, 표본을 이용해 평균 비교를 수행하는 방법.
- 세 가지 유형이 있음
- 단일표본 t-검정: 모집단 평균과 비교
- 독립표본 t-검정: 두 개의 독립적인 그룹 비교
- 대응표본 t-검정: 같은 집단의 전후 비교
- t-값과 p-값을 이용하여 귀무가설 기각 여부를 판단 (p < 0.05이면 기각)
- 정규성, 독립성, 등분산성 가정이 중요하며, 필요하면 사전 검토 수행.
분산분석(ANOVA, Analysis of Variance) 개념 정리
1. 분산분석(ANOVA)이란?
- 세 개 이상의 그룹 간 평균 차이를 비교하는 통계 기법
- t-검정은 두 그룹의 평균 비교에 사용되지만, ANOVA는 3개 이상 그룹의 평균 비교에 사용됨.
- 종속변수(연속형)와 독립변수(범주형) 간의 관계를 분석할 때 사용.
2. 분산분석의 원리
- 그룹 간 평균 차이를 검정하는 방법으로, 그룹 간 분산(Between-group variance)과 그룹 내 분산(Within-group variance)의 비율을 비교하여 유의미한 차이가 있는지 판단.
- 검정통계량으로 F-통계량을 사용하며, p-값을 보고 귀무가설을 기각할지 결정.
ANOVA의 기본 가정
- 정규성(Normality): 각 그룹의 데이터가 정규분포를 따라야 함.
- 등분산성(Homogeneity of Variance): 모든 그룹의 분산이 같아야 함 (Levene's Test로 확인 가능).
- 독립성(Independence): 각 그룹의 샘플이 서로 독립적이어야 함.
3. 분산분석의 종류
종류 설명 예제
일원분산분석 (One-way ANOVA) | 한 개의 독립변수(집단)에 따른 평균 차이 분석 | 다이어트 방법(A, B, C)에 따른 체중 감소량 비교 |
이원분산분석 (Two-way ANOVA) | 두 개의 독립변수(요인)에 따른 평균 차이 분석 | 운동 종류(요가, 헬스)와 식단(고단백, 저탄수)에 따른 체중 감소 비교 |
반복측정 분산분석 (Repeated Measures ANOVA) | 같은 집단에서 여러 번 측정된 값의 평균 비교 | 같은 사람의 다이어트 전후 3시점(1개월, 2개월, 3개월) 체중 비교 |
4. 분산분석(ANOVA) 공식
① 분산분석 기본 개념
- 총제곱합(TSS, Total Sum of Squares): 전체 데이터의 변동성
TSS=∑i=1n(Xi−Xˉ)2TSS = \sum_{i=1}^{n} (X_i - \bar{X})^2
TSS=i=1∑n(Xi−Xˉ)2
- 그룹 간 제곱합(SSB, Sum of Squares Between Groups): 그룹 간 평균 차이
SSB=∑j=1knj(Xˉj−Xˉ)2SSB = \sum_{j=1}^{k} n_j (\bar{X}_j - \bar{X})^2
SSB=j=1∑knj(Xˉj−Xˉ)2
- 그룹 내 제곱합(SSW, Sum of Squares Within Groups): 그룹 내부의 변동성
SSW=∑j=1k∑i=1nj(Xij−Xˉj)2SSW = \sum_{j=1}^{k} \sum_{i=1}^{n_j} (X_{ij} - \bar{X}_j)^2
SSW=j=1∑ki=1∑nj(Xij−Xˉj)2
- F-통계량(F-statistic) 공식
F=그룹 간 분산 (MSB)그룹 내 분산 (MSW)F = \frac{\text{그룹 간 분산 (MSB)}}{\text{그룹 내 분산 (MSW)}}
F=그룹 내 분산 (MSW)그룹 간 분산 (MSB)
- MSB (Mean Square Between) = SSB / (k-1)
- MSW (Mean Square Within) = SSW / (N-k)
- k = 그룹 수, N = 전체 샘플 수
5. Python 예제 (One-way ANOVA)
python
복사편집
import numpy as np
import scipy.stats as stats
# 세 그룹의 데이터 (체중 감소량)
group_A = [2.5, 3.0, 2.8, 3.5, 3.2]
group_B = [3.8, 3.9, 4.0, 4.1, 3.7]
group_C = [5.0, 5.2, 4.8, 5.1, 5.3]
# 일원분산분석 수행
f_stat, p_value = stats.f_oneway(group_A, group_B, group_C)
print(f"F-통계량: {f_stat:.3f}, p-값: {p_value:.3f}")
# 결과 해석
if p_value < 0.05:
print("귀무가설 기각: 세 그룹 간 평균 차이가 유의미함")
else:
print("귀무가설 채택: 세 그룹 간 평균 차이가 없음")
6. 이원분산분석(Two-way ANOVA)
- 두 개의 독립변수가 있는 경우 사용.
- 예: 운동 종류(요가, 헬스)와 식단(고단백, 저탄수화물)에 따른 체중 감소 차이 분석
python
복사편집
import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import ols
# 데이터 생성
df = pd.DataFrame({
'운동': ['요가', '요가', '요가', '헬스', '헬스', '헬스'],
'식단': ['고단백', '고단백', '저탄수', '고단백', '저탄수', '저탄수'],
'체중감소': [2.5, 3.0, 3.2, 4.0, 3.8, 4.5]
})
# 이원분산분석 수행
model = ols('체중감소 ~ C(운동) + C(식단) + C(운동):C(식단)', data=df).fit()
anova_table = sm.stats.anova_lm(model, typ=2)
print(anova_table)
7. 분산분석 결과 해석
- F-통계량이 클수록 그룹 간 차이가 크다는 의미.
- p-값이 0.05 미만이면 귀무가설 기각 → 그룹 간 평균 차이가 있음.
- p-값이 0.05 이상이면 귀무가설 채택 → 그룹 간 평균 차이가 없음.
8. 분산분석과 t-검정 비교
구분 t-검정 분산분석(ANOVA)
비교 대상 | 2개의 그룹 평균 비교 | 3개 이상의 그룹 평균 비교 |
통계량 | t-통계량 | F-통계량 |
p-값 해석 | p < 0.05 → 차이 있음 | p < 0.05 → 그룹 간 차이 있음 |
등분산 가정 | 필요 (독립표본 t-검정) | 필요 |
9. 사후분석(Post-hoc Test)
- ANOVA에서 p-값이 유의미할 경우, 어떤 그룹이 차이를 보이는지 추가 분석 필요.
- Tukey HSD (Honest Significant Difference) 검정이 대표적.
python
복사편집
from statsmodels.stats.multicomp import pairwise_tukeyhsd
# Tukey 사후분석
posthoc = pairwise_tukeyhsd(
endog=np.concatenate([group_A, group_B, group_C]), # 데이터 합치기
groups=['A']*5 + ['B']*5 + ['C']*5, # 그룹명
alpha=0.05)
print(posthoc)
10. 요약
- ANOVA(분산분석)는 세 개 이상의 그룹 평균 비교에 사용됨.
- 일원분산분석(One-way ANOVA): 한 개의 독립변수에 대한 평균 비교.
- 이원분산분석(Two-way ANOVA): 두 개의 독립변수에 대한 평균 비교.
- F-통계량을 사용하며, p-값이 0.05 미만이면 그룹 간 차이가 유의미함.
- 차이가 있을 경우 Tukey HSD 등의 사후분석을 수행해야 함.
- 등분산성, 정규성 등의 가정을 만족해야 신뢰할 수 있음.
카이제곱 검정(Chi-Square Test) 개념 정리
1. 카이제곱 검정(Chi-Square Test)이란?
- 범주형(명목형, 범주형) 데이터 간의 관계를 검정하는 통계 방법.
- 데이터가 특정한 기대값과 유의미한 차이가 있는지 확인하는 데 사용됨.
- 대표적으로 독립성 검정과 적합도 검정이 있음.
2. 카이제곱 검정의 종류
검정 유형 목적 예제
적합도 검정 (Goodness of Fit Test) | 샘플 분포가 기대 분포와 일치하는지 확인 | 한 도시의 인구 분포가 예상 비율과 같은가? |
독립성 검정 (Test for Independence) | 두 범주형 변수 간 연관성이 있는지 검정 | 흡연 여부와 폐암 발생 간의 관계가 있는가? |
동질성 검정 (Test for Homogeneity) | 서로 다른 모집단에서 동일한 분포를 따르는지 검정 | 지역별 선호 브랜드가 동일한가? |
3. 카이제곱 검정 공식
① 카이제곱(χ²) 통계량 계산 공식
χ2=∑(O−E)2E\chi^2 = \sum \frac{(O - E)^2}{E}
χ2=∑E(O−E)2
- OOO : 관측값(Observed Value)
- EEE : 기대값(Expected Value)
해석
- χ² 값이 클수록 실제 데이터와 기대값 간 차이가 크다는 의미 → 귀무가설 기각 가능성 증가
- p-값이 0.05 미만이면 귀무가설 기각 (즉, 유의미한 차이 존재)
4. 카이제곱 검정 예제 (Python 코드 포함)
① 적합도 검정(Goodness of Fit)
- 한 도시의 인구 분포가 예상 비율과 일치하는지 검정.
python
복사편집
import numpy as np
import scipy.stats as stats
# 관측값(Observed)
observed = np.array([50, 30, 20]) # 실제 조사된 인구 분포
# 기대값(Expected, 예: 예상 비율이 [40%, 35%, 25%] 일 때)
expected = np.array([40, 35, 25]) * sum(observed) / 100 # 전체 인구 수 기준으로 변환
# 카이제곱 적합도 검정 수행
chi2_stat, p_value = stats.chisquare(observed, expected)
print(f"Chi-Square 통계량: {chi2_stat:.3f}, p-값: {p_value:.3f}")
if p_value < 0.05:
print("귀무가설 기각: 인구 분포가 예상과 다름")
else:
print("귀무가설 채택: 인구 분포가 예상과 유사")
② 독립성 검정(Test for Independence)
- 흡연 여부와 폐암 발생 간 관계 검정 (2x2 교차표 사용)
python
복사편집
import numpy as np
import scipy.stats as stats
# 2x2 교차표 (흡연 여부 vs 폐암 발생)
# 폐암 발생 | 폐암 없음
# ---------------------------------
# 흡연자 30 | 70
# 비흡연자 10 | 90
observed = np.array([[30, 70], [10, 90]])
# 카이제곱 독립성 검정 수행
chi2_stat, p_value, dof, expected = stats.chi2_contingency(observed)
print(f"Chi-Square 통계량: {chi2_stat:.3f}, p-값: {p_value:.3f}")
if p_value < 0.05:
print("귀무가설 기각: 흡연 여부와 폐암 발생 간 유의미한 관계 있음")
else:
print("귀무가설 채택: 흡연 여부와 폐암 발생 간 관계 없음")
5. 귀무가설과 대립가설 설정
① 적합도 검정
가설 설명
귀무가설 (H0H_0H0) | 샘플 데이터가 기대 분포와 일치함 |
대립가설 (H1H_1H1) | 샘플 데이터가 기대 분포와 다름 |
② 독립성 검정
가설 설명
귀무가설 (H0H_0H0) | 두 범주형 변수 간 연관성이 없음 (독립적) |
대립가설 (H1H_1H1) | 두 범주형 변수 간 연관성이 있음 (상관 관계 존재) |
6. 카이제곱 검정의 가정
- 샘플 크기가 충분히 커야 함
- 모든 기대 빈도(E)가 5 이상이어야 함 (5 미만이면 Fisher’s Exact Test 사용).
- 데이터는 독립적이어야 함
- 같은 사람이 여러 번 포함되면 안 됨.
7. 카이제곱 검정 vs t-검정 vs ANOVA
비교 항목 카이제곱 검정 t-검정 ANOVA
사용 데이터 유형 | 범주형(명목형) | 연속형(수치형) | 연속형(수치형) |
비교 대상 | 두 변수 간 관계 | 두 그룹 평균 비교 | 세 개 이상 그룹 평균 비교 |
검정통계량 | χ² | t | F |
귀무가설 기각 의미 | 변수 간 연관 있음 | 평균 차이 있음 | 평균 차이 있음 |
8. 카이제곱 검정 결과 해석
- p-값 < 0.05 → 귀무가설 기각 → 그룹 간 차이가 유의미함 → 변수가 서로 관련 있음.
- p-값 ≥ 0.05 → 귀무가설 채택 → 유의미한 차이 없음 → 변수가 독립적.
9. 정리
- 카이제곱 검정(χ² test)은 범주형 변수 간의 관계를 검정하는 방법.
- 적합도 검정(Goodness of Fit): 샘플 분포가 예상과 같은지 확인.
- 독립성 검정(Test for Independence): 두 범주형 변수가 연관성이 있는지 확인.
- 귀무가설 기각 시, 변수 간 유의미한 차이가 있다고 판단.
- Fisher’s Exact Test: 기대 빈도가 5 미만일 경우 사용.
- t-검정과 ANOVA는 연속형 데이터, 카이제곱 검정은 범주형 데이터에 사용됨.
인과추론 보다는 A/B테스트를 잘하면 될때가 많다. (분석시간이 없다면)
구매 는 t 테스트
전환율, 리텐션은 카이제곱검정으로
기대빈도(Expected Frequency) vs 관측빈도(Observed Frequency) 개념 정리
1. 기대빈도(Expected Frequency)란?
- 기대빈도는 귀무가설(H0H_0H0)이 참이라고 가정할 때, 우리가 기대하는 데이터의 빈도를 의미.
- 실제 데이터가 아닌, 수학적 모델(확률 이론)에 기반하여 계산된 값.
- 카이제곱 검정(Chi-Square Test)에서 기대빈도를 사용하여 관측된 데이터와 비교함.
기대빈도 공식 (독립성 검정 시):
Eij=행 합×열 합전체 합E_{ij} = \frac{\text{행 합} \times \text{열 합}}{\text{전체 합}}
Eij=전체 합행 합×열 합
- EijE_{ij}Eij : 기대빈도 (해당 셀에서 예상되는 빈도)
- 행 합: 해당 행의 총합
- 열 합: 해당 열의 총합
- 전체 합: 전체 데이터의 총합
2. 관측빈도(Observed Frequency)란?
- 관측빈도는 실제 조사나 실험을 통해 수집된 데이터의 빈도.
- 기대빈도와 비교하여, 데이터가 귀무가설을 따르는지 여부를 판단.
3. 기대빈도 vs 관측빈도 비교
구분 의미 계산 방식 예시
기대빈도 | 귀무가설이 참일 때 기대되는 빈도 | 행 합×열 합전체 합\frac{\text{행 합} \times \text{열 합}}{\text{전체 합}}전체 합행 합×열 합 | 특정 브랜드를 선택할 확률이 50%라면, 100명 중 50명이 선택할 것으로 예상 |
관측빈도 | 실제 조사된 데이터의 빈도 | 실험 또는 조사 데이터 | 실제로는 100명 중 60명이 선택한 경우 |
4. 기대빈도와 관측빈도를 이용한 카이제곱 검정
예제: 고객의 브랜드 선호도
- 한 상점에서 고객들이 A, B, C 브랜드를 선호하는 비율이 동일(1:1:1)하다고 가정(귀무가설).
- 실제 조사 데이터를 통해 기대빈도와 관측빈도를 비교하여 유의미한 차이가 있는지 검정.
브랜드 A B C 총합
관측빈도 (Observed, OOO) | 50 | 30 | 20 | 100 |
기대빈도 (Expected, EEE) | 33.3 | 33.3 | 33.3 | 100 |
카이제곱 검정 통계량 계산:
χ2=∑(O−E)2E\chi^2 = \sum \frac{(O - E)^2}{E}
χ2=∑E(O−E)2
=(50−33.3)233.3+(30−33.3)233.3+(20−33.3)233.3= \frac{(50-33.3)^2}{33.3} + \frac{(30-33.3)^2}{33.3} + \frac{(20-33.3)^2}{33.3}
=33.3(50−33.3)2+33.3(30−33.3)2+33.3(20−33.3)2
Python 코드로 계산
python
복사편집
import numpy as np
import scipy.stats as stats
# 관측빈도
observed = np.array([50, 30, 20])
# 기대빈도 (균등한 분포 가정)
expected = np.array([33.3, 33.3, 33.3])
# 카이제곱 검정 수행
chi2_stat, p_value = stats.chisquare(observed, expected)
print(f"Chi-Square 통계량: {chi2_stat:.3f}, p-값: {p_value:.3f}")
if p_value < 0.05:
print("귀무가설 기각: 브랜드 선호도가 동일하지 않음")
else:
print("귀무가설 채택: 브랜드 선호도가 동일함")
5. 기대빈도 vs 관측빈도를 활용한 독립성 검정 예제
예제: 흡연 여부와 질병 발생 간의 관계
질병 여부 질병 발생 질병 없음 총합
흡연자 (O) | 30 | 70 | 100 |
비흡연자 (O) | 10 | 90 | 100 |
총합 | 40 | 160 | 200 |
기대빈도 계산
- 질병 발생 기대빈도(흡연자) = 200(100×40)=20
- (100×40)200=20\frac{(100 \times 40)}{200} = 20
- 질병 발생 기대빈도(비흡연자) = 200(100×40)=20
- (100×40)200=20\frac{(100 \times 40)}{200} = 20
질병 여부 질병 발생 (E) 질병 없음 (E) 총합
흡연자 (E) | 20 | 80 | 100 |
비흡연자 (E) | 20 | 80 | 100 |
카이제곱 검정 통계량 계산
χ2=∑(O−E)2E\chi^2 = \sum \frac{(O - E)^2}{E}
χ2=∑E(O−E)2
Python 코드로 독립성 검정 수행
python
복사편집
# 2x2 교차표 (흡연 여부 vs 질병 발생)
observed = np.array([[30, 70], [10, 90]])
# 카이제곱 독립성 검정 수행
chi2_stat, p_value, dof, expected = stats.chi2_contingency(observed)
print(f"Chi-Square 통계량: {chi2_stat:.3f}, p-값: {p_value:.3f}")
if p_value < 0.05:
print("귀무가설 기각: 흡연 여부와 질병 발생 간 유의미한 관계 있음")
else:
print("귀무가설 채택: 흡연 여부와 질병 발생 간 관계 없음")
6. 기대빈도와 관측빈도를 비교하는 이유
- 데이터가 귀무가설을 따르는지 확인
- 관측된 빈도가 기대빈도와 유사하면 귀무가설 채택.
- 차이가 크면 귀무가설 기각.
- 변수 간 연관성 분석 가능
- 두 범주형 변수(예: 흡연 여부와 질병)가 독립적인지 확인.
- 카이제곱 검정에서 핵심적인 역할 수행
- χ2=∑(O−E)2E\chi^2 = \sum \frac{(O - E)^2}{E}χ2=∑E(O−E)2를 통해 검정 통계량 계산.
7. 정리
- 기대빈도(Expected Frequency): 귀무가설이 참일 경우 예상되는 데이터 빈도.
- 관측빈도(Observed Frequency): 실제 조사나 실험을 통해 얻은 빈도.
- 카이제곱 검정(Chi-Square Test): 기대빈도와 관측빈도의 차이를 분석하여 가설 검정 수행.
- p-값 < 0.05이면 귀무가설 기각 → 기대빈도와 실제 데이터가 유의미한 차이가 있음.
- 독립성 검정(Test for Independence): 두 범주형 변수 간 연관성 검정.
- 적합도 검정(Goodness of Fit): 관측 데이터가 특정 분포를 따르는지 검정.
데이터로 가치를 만드는 Steven, Follow on LinkedIn
'데이터 분석가:Applied Data Analytics' 카테고리의 다른 글
구글 코렙 한글적용(Google Colab 한글) (0) | 2025.03.06 |
---|---|
데이터 기반 의사결정을 위한 확률 및 분포 4-2] (0) | 2025.03.05 |
데이터 분석 용어 및 정의 (영문) (1) | 2025.03.05 |
올라운드 프로패셔널에 대하여 (3) | 2025.03.05 |
확률과 분포 이해하기 3] (1) | 2025.03.04 |