본 post는 국가생명연구자원정보센터(KOBIC) 주관 인사이트마이닝 이부일 CEO의 Paired t-test with python을 정리한 내용입니다.
Intro
Python을 이용하여 Paired t-test with python 수행과정을 알아봅니다.
언제 사용하는가?
Paired t-test with python은 동일한 모집단의 사전자료(수치형 자료)와 사후자료(수치형 자료) 간에 통계적으로 의미 있는 차이가 있는지를 분석할 때 사용하는 방법입니다. 사전자료, 사후자료의 값이 정규분포를 따를 때 사용할 수 있습니다.
가설 세우기
- 귀무가설 (Null Hypothesis, H0)
- 우울증 치료제는 우울증에 효과가 없습니다.
- 대립가설 (Alternative Hypothesis, H1 or HA)
- 우울증 치료제는 우울증에 효과가 있습니다.
- 우울증 치료제는 우울증에 효과가 있습니다.
Paired t-test
- 1단계: 정규성 검정(Normality Test)
- 귀무가설: (사전-사후) 값이 정규분포를 따릅니다.
- 대립가설: (사전-사후) 값이 정규분포를 따르지 않습니다.
- n < 5,000: Shapiro-Wilk Normality Test
- n >= 5,000: Anderson-Darling Normality Test
- 2단계: Paired t-test
- Paired t-test를 수행합니다.
- Paired t-test를 수행합니다.
실습
- 가설 설정
- 귀무가설: 우울증 치료제는 우울증에 효과가 없습니다.
- 대립가설: 우울증 치료제는 우울증에 효과가 있습니다.
데이터 로딩
https://www.edwith.org/python-data-analysis-2023/lecture/1475047
- 분석 1단계: 정규성 검정(Normality Test)
- 귀무가설: 정규분포를 따릅니다.
- 대립가설: 정규분포를 따르지 않습니다.
- n < 5,000 : Shapito-Wilk Normality Test (shapiro(data.variable))
- n >= 5,000 : Anderson-Darling Normality Test (anderson(data.variable))
- shapiro normality test 결과 difference의 유의확률(p-value)가 0.828로 정규성 가정을 만족합니다.
정규성 검정
https://www.edwith.org/python-data-analysis-2023/lecture/1475047
- 분석 2단계: Paired t-test
- 귀무가설: 우울증 치료제는 우울증에 효과가 없습니다.
- 대립가설: 우울증 치료제는 우울증에 효과가 있습니다.
- 유의확률(p-value) 0.000으로 유의수준(0.05)보다 작으므로 귀무가설을 기각합니다. 즉, 우울증 치료제는 우울증에 통계적으로 유의한 효과가 있습니다.
Paired t-test
https://www.edwith.org/python-data-analysis-2023/lecture/1475047
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import pandas as pd
import scipy.stats as stats
depression = pd.read_excel(
io = '05depression.xlsx',
sheet_name = 0
)
print(depression)
# Analysis I: Normality Test
# n < 5,000 -> Shapiro-Wilk Normality Test
depression['difference'] = depression.pre - depression.post
stats.shapiro(depression.difference)
# Analysis II: Paired t-test
stats.ttest_rel(
depression.pre,
depression.post,
alternative = 'greater'
)
Take Home Message
Paired t-test 이론을 학습하고 Google colab에서 실습해 보았습니다.