두 집간 간의 평균 차이를 검정하는 T검정에서 대응표본 T-검정을 복습해보자.
이 전엔 일표본 T-검정에 대해서 정리해보고 복습해 보았다.
일표본 T-검정
두 집간 간의 평균 차이를 검정하는 T검정에서 일표본 T-검정을 복습해보자. 기본가정 정규성 만족 (아닐 시 윌콕슨의 부호 순위 검정) 종속변수는 연속형, 독립변수 범주형 검증하고자 하는 기
py-moon.tistory.com
기본가정
- 정규성 만족 (아닐 시 윌콕슨의 부호 순위 검정)
- 종속변수는 연속형, 독립변수 1개 범주형
- 짝(개수) 만족
.
1
2
3
4
5
6
|
import pandas as pd
data = {'before':[7,3,4,5,2,1,6,6,5,4],
'after':[8,4,5,6,2,3,6,8,6,5]}
data = pd.DataFrame(data)
data.head()
|
cs |
> 수면제 복용 전과 후의 수면시간 차이를 검정하기 위한 데이터셋이다.
> 데이터를 임의로 개수를 맞춘 두 개의 변수를 만들어 DataFrame으로 만들어 준다.

> data.head를 통해 상위 5개의 데이터를 확인해본 결과 위와 같이 출력이 되었다.
> 기본 가정 중 정규성을 만족하는지 확인해보자.
1
2
3
4
5
6
|
import scipy.stats as stats
from scipy.stats import shapiro
# 정규성 검정
print("before변수에 대한 정규성 검정 결과 :", shapiro(data['before']))
print("after변수에 대한 정규성 검정 결과 :", shapiro(data['after']))
|
cs |
> 샤피로윌크 검정을 통해서 두 변수가 모두 정규분포를 따르는지 확인해보고자 한다.
귀무가설 : 해당 변수는 정규성을 만족한다.
대립가설 : 해당 변수는 정규성을 만족하지 않는다.
1
2
|
before변수에 대한 정규성 검정 결과 : ShapiroResult(statistic=0.9644594192504883, pvalue=0.8352694511413574)
after변수에 대한 정규성 검정 결과 : ShapiroResult(statistic=0.9456835985183716, pvalue=0.6177982091903687)
|
cs |
> before 변수는 유의확률(pvalue)이 약 0.83으로 유의수준(0.05)보다 크므로 귀무가설을 채택한다.
> 즉, before 변수는 정규성을 만족한다.
> after 변수는 유의확률(pvalue)이 약 0.61으로 유의수준(0.05)보다 크므로 귀무가설을 채택한다.
> 즉, after 변수도 정규성을 만족한다.
> 두 변수 모두 정규성을 만족하므로 before 와 after의 변화가 얼마나 대응 되는지를 검증한다.
> 검증 방법은 stats.ttest_rel(x,y)를 활용하고자 한다.
1
2
3
|
import scipy.stats as stats
stats.ttest_rel(data['after'], data['before'], alternative='greater')
|
cs |
> 기본 가정을 모두 충족시켰기 때문에 해당 가설검정을 대응표본 t검정으로 검정을 실시한다.
귀무가설 : 수면제 복용 전과 후의 수면시간 차이는 없다.
대립가설 : 수면제 복용 전과 후의 수면시간 차이가 있다.
1
|
Ttest_relResult(statistic=4.743416490252569, pvalue=0.0005269356285082764)
|
cs |
> 실시한 결과에서 유의확률(pvalue)이 유의수준(0.05)보다 작으므로 귀무가설을 기각하고 대립가설을 채택한다.
> 즉, 수면제 복용 전과 후의 수면시간에는 차이가 있다는 결과이다.
> 결과에 대한 직관적인 이해를 돕기 위해 데이터를 출력해봤다.
1
2
3
4
|
data.mean()
before 4.3
after 5.3
|
cs |
> 두 변수에 대해서 평균을 출력해본 결과,
> 수면제 복용 전의 수면시간 평균은 4.3시간이고 , 수면제 복용 후의 수면시간의 평균은 5.3시간이다.
> 데이터를 통해 가설검정의 결과를 직관적으로 이해할 수 있었다.
> 이론적으로 공부하고 손코딩으로 학습을 그쳤을 때보다 해당 과정을 정리하며 적어 내려가는 방법이 학습에 더 도움이 되는 것 같다.
> 이해하는데도 도움이 되고 중간중간 이해가 안되는 부분은 바로 찾아서 정리하니 더 오래 기억에 남을 것 같다.
'내가 하는 데이터분석 > 내가 하는 통계분석' 카테고리의 다른 글
[선형 회귀분석, Linear Regression] with Python (0) | 2023.01.08 |
---|---|
[이원배치 분산분석, Two-way ANOVA] with Python (0) | 2023.01.06 |
[일원배치 분산분석, One-way ANOVA] with Python (0) | 2023.01.02 |
[독립표본 T-검정, Independent Sample T-Test] with Python (0) | 2022.12.29 |
[일표본 T-검정, One Sample T-Test] with Python (0) | 2022.12.25 |