// 퇴근후딴짓 님의 강의를 참고하였습니다. //
시험환경 : https://dataq.goorm.io/exam/116674/체험하기/quiz/3
문제) 주어진 데이터(data/blood_pressure.csv)에는고혈압 환자 120명의 치료 전후의 혈압이 저장되어 있다. 해당 치료가 효과가 있는지 (즉, 치료 후의 혈압이 감소했는지) 쌍체표본 t-검정(paired t-test)를 통해 답하고자 한다. 가설은 아래와 같다.
![](https://blog.kakaocdn.net/dn/bZuqVk/btsk1ce8Huq/inbpiQmkmDuHdKRhuD7YX0/img.png)
- bp_before : 치료 전 혈압
- bp_after : 치료 후 혈압
- H0 : 귀무가설 (치료 효과가 없을 것이다.)
- H1 : 대립가설 (치료 효과가 있을 것이다.)
문제1)
- μd(치료 후 혈압 - 치료 전 혈압)의 표본평균을 입력하시오. (반올림하여 소수 둘째자리까지 계산)
import pandas as pd
df = pd.read_csv("data/blood_pressure.csv")
df['diff'] = df['bp_after'] - df['bp_before']
→ 먼저 μd를 'diff'라는 컬럼에 새로 만들어준다. 식은 '치료 후 혈압' - '치료 전 혈압'이다.
print(round(df['diff'].mean(),2))
실행 결과 : -5.09
→ 평균은 'diff'컬럼에 mean()을 사용해 구해준 후 round( ,2) 함수를 사용해 소수 둘째짜리까지 나타내준다.
→ 결과값이 마이너스가 나왔으므로 대립가설이 채택되어 치료 효과가 있는 것으로 볼 수 있다.
문제2)
- 위의 가설을 검정하기 위한 검정통계량을 입력하시오. (반올림하여 소수 넷째짜리까지 계산)
from scipy import stats
result = stats.ttest_rel(df['bp_after'], df['bp_before'], alternative="less")
print(result)
print(round(result.statistic,2))
실행 결과 :
Ttest_relResult(statistic=-3.3371870510833657, pvalue=0.000564895732240411)
-3.34
→ 쌍체표본 t-검정(paired t-test)으로 검정통계량을 구하기 위해서는 먼저 scipy 라이브러리의 stats를 import 해준다.
→ stats.ttest_rel 함수안에 μd를 구한식 순서대로 넣어줘야한다.
(df['bp_after'], df['bp_before'] 순서)
→ alternative 옵션은 greater / less / two-sided 3가지가 있다. (대립가설 기준으로 선택)
→ greater : df['bp_after'] > df['bp_before']
→ less : df['bp_after'] < df['bp_before']
→ two-sided : df['bp_after'] != df['bp_before']
→ 대립가설이 μd < 0 이므로 less 옵션을 선택해준다.
st, pv = stats.ttest_rel(df['bp_after'], df['bp_before'], alternative="less")
print(round(st,2))
실행 결과 :
-3.34
→ stats.ttest_rel 결과값을 2개의 변수로 직접 받는 방법도 있다.
문제3)
- 위의 통계량에 대한 p-값을 구하여 입력하시오. (반올림하여 소수 넷째자리까지 계산)
from scipy import stats
result = stats.ttest_rel(df['bp_after'], df['bp_before'], alternative="less")
print(result)
print(round(result.pvalue,4))
실행 결과 :
Ttest_relResult(statistic=-3.3371870510833657, pvalue=0.000564895732240411)
0.0006
st, pv = stats.ttest_rel(df['bp_after'], df['bp_before'], alternative="less")
print(round(pv,4))
실행 결과 :
0.0006
→ 2번 문제에서 구한값에서 result.pvalue값을 가져오던가, 변수로 직접 받아오는 방법이 있다.
문제4)
- 유의수준 0.05 하에서 가설검정의 결과를 (채택/기각) 중 하나를 선택하여 입력하시오.
→ p-value(0.0006) < 유의수준(0.05) 이므로 귀무가설을 기각한다.(대립가설을 채택한다.)
→ 답변 제출은 귀무가설 기준으로 해야한다. [정답 : 기각]
'빅데이터분석기사 > 작업형3' 카테고리의 다른 글
[작업형3] 독립성 검정(카이제곱) (0) | 2023.06.23 |
---|---|
[작업형3] 대응(쌍체)표본 t-test (paired t-test) (0) | 2023.06.23 |
[작업형3] 독립표본 t-test (two-sample/independent t-test) (0) | 2023.06.23 |
[작업형3] 단일표본 t-test (one-sample t-test) (0) | 2023.06.23 |
[작업형3] 가설검정 과정 (0) | 2023.06.23 |