집단간 평균 비교
두 집단간 평균 비교.(종속변수가 연속형 변수일 때.)
두 집단의 평균이 동일한지를 확인하려고 한다.
일반적으로는 t-검정을 사용하겠으나. t-검정을 위해서는 전제조건이 필요하다.
독립성 : 각 집단은 서로 독립
정규성 : 각 모집단은 정규분포를 이루어야 한다.
등분산성 : 각 집단별 분산 정도가 비슷해야 한다.
세가지가 모두 만족될 경우 t-test를 시행하면 된다. 하지만 그것이 아니라면?
* 정규성을 만족하지 않을 경우 : Mann-Whitney U test
정규성을 만족하지 않지만 집단간 평균을 비교해야 하는 경우가 존재한다. 나머지를 만족하는데, 정규성만 만족하지 않을 경우에는 t-test 대신에 Mann-Whitney U test를 해야 한다.
Mann-Whitney U test의 기본 원리는 순위에 기반하는 방식이다. 두 집단의 관측치를 통합 후, 크기 순서로 순위를 부여한다. 순위 합계를 바탕으로 검증을 하는 방식이 된다. 순위에 기반하기 때문에 중위수를 고려한다.
# 그룹별 분포가 정규분포가 아니므로 Mann-Whitney U-test를 사용
from scipy.stats import mannwhitneyu
v1 = df.loc[df.group == 'group_1'].val
v2 = df.loc[df.group == 'group_2'].val
print(mannwhitneyu(v1, v2))
가설은 t-test와 동일하게 세워지며 p-value를 통해 귀무가설의 기각 여부를 판단한다.
세 집단간 평균 비교(종속 변수가 연속형일 때)
세 집단인 경우에도 동일하게 독립성, 정규성, 등분산성을 만족하냐 그렇지 않느냐를 따져야 한다.
모두 만족할 경우 일원배치 분산분석을 사용하나, 그렇지 않을 경우에는?
* 정규성을 만족하지 않을 경우 : Kruskal-Wallis H 검정
이 또한 중위수를 고려하는 방식이다.
from scipy.stats import kruskal
g1 = df.loc[df.group == 'group_1'].val
g2 = df.loc[df.group == 'group_2'].val
g3 = df.loc[df.group == 'group_3'].val
print(kruskal(g1, g2, g3))
'Archive > 수학 & 통계학 관련' 카테고리의 다른 글
[Stat] 표본평균 및 표본분산의 분포. (0) | 2022.01.21 |
---|---|
[Stat] 범주형 변수에 대한 검정 (0) | 2021.11.17 |
[Data] 선형회귀에서의 변수 선택(AIC, VIF) (0) | 2021.08.07 |
[Prob] 베이즈 추정법이란? (0) | 2021.06.08 |
[Prob] 베타분포와 디리클레분포 (0) | 2021.06.07 |