빅데이터분석기사/작업형3

[작업형3] 대응(쌍체)표본 t-test (paired t-test)

seo0seok 2023. 6. 23. 02:36

// 퇴근후딴짓 님의 강의를 참고하였습니다. //

 

[배경]

  • 동일한 대상에게 "첫번째 관측 -> (개입) -> 두번째 관측"
  • 예1) 어떤 사람의 수학 점수가 "1타 강사" 수업을 들은 전후 비교
  • 예2) 오른쪽과 왼쪽 눈 크기 비교

 

문제1) 귀무가설과 대립가설1

  • 귀무가설(H0): μ = 0
  • 대립가설(H1): μ < 0
  • μ = (수업을 듣기 전 - 수업을 들은 후) 점수 평균
  • 유의수준: 0.05
import pandas as pd
from scipy import stats
# 정규분포를 따른 다는 가정
df = pd.DataFrame({
    "pre":[80,69,78,88,100,85,83,81,80,91,95,59,59,49,69,39,49,59,90,90,91,93,79,78,68,58,78,88,88],
    "post":[78,86,83,91,90,87,85,82,88,100,78,88,78,58,100,97,76,81,90,85,78,91,84,81,80,78,68,68,69]
})
df.head(3)

→ 임의적으로 수업 듣기 전.후 점수 평균 데이터프레임을 만들어준다. 

 

stats.ttest_rel(df['pre'],df['post'],alternative="less")

실행 결과 :
TtestResult(statistic=-2.001419278712032, pvalue=0.027561772708950674, df=28)

→ pvalue값이 0.02로 유의수준 0.05보다 낮아 귀무가설을 기각한다.

→ 즉, 대립가설이 채택되므로 수업 들은 후 점수가 높아진 것으로 효과가 있었다고 볼 수 있다.

 

 

문제2) 귀무가설과 대립가설2

  • 귀무가설(H0): μ = 0
  • 대립가설(H1): μ > 0
stats.ttest_rel(df['pre'],df['post'],alternative="greater")

실행 결과 :
TtestResult(statistic=-2.001419278712032, pvalue=0.9724382272910493, df=28)

→ pvalue값이 0.97로 유의수준 0.05보다 높아 귀무가설을 기각하지 못했다.

    (귀무가설을 채택했다고 잘 표현 안함)

→ 즉, 대립가설이 기각되므로 수업 듣기 전.후의 평균 점수가 같다고 볼 수 있다.

 

 

문제3) 귀무가설과 대립가설3

  • 귀무가설(H0): μ = 0
  • 대립가설(H1): μ  0
stats.ttest_rel(df['pre'],df['post'],alternative="two-sided")

실행 결과 :
TtestResult(statistic=-2.001419278712032, pvalue=0.05512354541790135, df=28)

→ pvalue값이 0.055으로 유의수준 0.05보다 높아 귀무가설을 기각하지 못했다.

    (귀무가설을 채택했다고 잘 표현 안함)

→ 즉, 대립가설이 기각되므로 수업 듣기 전.후의 평균 점수가 같다고 볼 수 있다.