집단분석
[1단계] 데이터 불러오기
# 데이터셋 불러오기
import pandas as pd
dp = pd.read_excel('c:\\data\\depression.xlsx')
dp.head()
dp.head() | dp.info() | |
y : 치료효과 |
[2단계] 집단의 등분산성 비교하기
levene 검정
· 귀무가설 : 분산이 같다.
import pingouin as pg
pg.homoscedasticity(dv='y', group='TRT', data=dp)
> 결과 : pval가 0.000416 으로 0.05 보다 작다.
분산이 같다는 귀무가설을 기각하고, 등분산성을 만족하지 않는 것으로 보고 진행한다.
집단 분석에서 등분산성을 만족하지 않을 때 > welch_anova
[3단계] 분산분석
· 귀무가설 : 모든 집단의 평균이 같다.
pg.welch_anova(dv='y', between='TRT', data=dp)
> 결과 : p-unc*가 0.006106 로 0.05보다 작다.
모든 집단의 평균이 같다는 귀무가설을 기각, 전체 중 하나 이상의 집단은 평균이 다를 수 있다.
np2 = 0.171857
> 치료효과(y)의 분산의 17%를 치료 방법이 설명한다.
어떤 사람은 치료 효과가 좋고 어떤 사람은 나쁘고 이런 경우가 있는데
그 차이 중에 17% 정도는 치료 방법에 따른 것 ( 점수의 17% 가 아니다)
* 참고 : pingouin 0.5.2 documentation
https://pingouin-stats.org/generated/pingouin.anova.html
Returns aov : pandas.DataFrame
ANOVA summary:
- 'Source': Factor names
- 'SS': Sums of squares
- 'DF': Degrees of freedom
- 'MS': Mean squares
- 'F': F-values
- 'p-unc': uncorrected p-values
- 'np2': Partial eta-square effect sizes
dp.groupby('TRT')['y'].std()
> 집단 간 분산이 같지 않음.
[4단계] 사후검정
3단계 집단간 분석에서 모든 집단의 평균이 같다는 귀무가설이 기각되고 일부 집단 간 통계적으로 유의미한 차이가 있을 수 있다는 것에 대한 확인이 필요해졌다.
pg.pairwise_gameshowell(dv='y', between='TRT',data=dp)
> 결과 :
0번 (A와 B) | 1번 (A와 C) | 2번 (B와 C) |
|
|
|
|
|
|
사후검정은 두 집단 간의 ttest를 여러번 하는 것.
그래서 여러번 하는 도중에 틀릴 수가 있다 이 부분을 보정하는 것.
· 집단분석을 사용할 수 있는 곳
- 평균을 비교할 때
- 서비스 제품을 만드는데 고객만족도의 평균을 비교하고 싶을 때
두 집단 간 한번 비교 | 여러 집단 간 비교 | |
등분산 O | pg.ttest | pg.pairwise_tukey |
등분산 X | pg.ttest | pg.pairwise_gameshowel |
'기초통계' 카테고리의 다른 글
회귀분석 : 다중회귀분석 (0) | 2022.09.05 |
---|---|
상관과 회귀 : 회귀분석 (0) | 2022.09.05 |
[기초통계] 상관과 회귀 : 상관분석, 상관계수, 상관과 인과 (0) | 2022.08.20 |
[기초통계] 집단 비교 : 분산분석 - 다중비교, 사후검정, 카이제곱검정 (0) | 2022.08.19 |
[기초통계] 집단 비교 : 독립표본 t검정, 검정력, 효과크기, 분산분석, 분할표 (0) | 2022.08.18 |