728x90
검정해야할 컬럼들이 많을 때, 아래와 같이 for문으로 작성하면 훨씬 편하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
from scipy import stats
col_list=['col1', 'col2', 'col3']
t_list=[]
p_list=[]
lp_list=[]
up_list=[]
for i in col_list:
t, p = stats.ttest_ind(df[(df['target']==1)][i],df[(df['target']==0)][i])
lt, lp = stats.levene(df[(df['target']==1)][i],df[(df['target']==0)][i])
# 비모수검정 mann whitney u 검정
u, up = stats.mannwhitneyu(df[(df['target']==1)][i],df[(df['target']==0)][i])
t_list.append(t)
p_list.append(p)
lp_list.append(lp)
u_list.append(up)
|
cs |
위에 리스트로 만들어줬던 검정결과를 DataFrame으로 변형해서 결과 보여주기
1
2
3
4
|
frames={'t':t_list, 'p':p_list, 'lp':l_list, 'up':u_list}
df_ttest=pd.DataFrame(frames, index=col_list)
df_ttest
|
cs |
그러면 아래와 같이 col3이 통계적으로 유의차가 있는것으로 간단히 확인 할 수 있음.
만약 등분산성을 띄지 않아서 welch's test를 수행해야된다면
아래와 같이 equal_var에 False만 넣어주면 됩니다.
1
|
stats.ttest_ind(df['petal_length'], df['petal_length'], equal_var = False)
|
cs |
참고)
Wilcoxon Matched Pairs Signed Rank Test은 실험군이나 대조군 중 하나의 집단에서 사전-사후를 비교할때 쓰는 t-검증의 다른버전
Wilcoxon과 MH U검정이 아래에 설명이 잘 나와있으니 꼭 한번씩은 읽어보세요.
728x90
'IT > 파이썬' 카테고리의 다른 글
GridSearchCV 그리드서치 1탄 (0) | 2020.12.21 |
---|---|
의사결정나무(Decision Tree) 그래프 그리기 (0) | 2020.12.10 |
Imbalanced Dataset에서의 over sampling과 cross validation (0) | 2020.12.09 |
ANOVA분석 & POST-HOC (사후검정) (0) | 2020.12.04 |
Chi-square test, Fisher's exact 검정 & post-hoc (0) | 2020.12.04 |