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

[작업형3] 단일표본 t-test (one-sample t-test)

seo0seok 2023. 6. 23. 02:09

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

 

[배경] 하루에 커피 몇 잔 마시는지 가설검정

 

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

  • 귀무가설(H0): 하루 평균 두 잔 (μ = 2)
  • 대립가설(H1): 하루 평균 두 잔 보다 더 많이 마신다 (μ > 2)
  • 유의수준: 0.05
import pandas as pd
from scipy import stats
df = pd.DataFrame({
    "하루 커피 몇 잔":[3,2,1,3,2,3,4,1,1,1,2,3,4,4,3,3,3,2,2,2]
})
df.head(3)

→ 임의적으로 커피 몇 잔 마셨는지 데이터프레임을 만들어준다. 

 

result = stats.ttest_1samp(df["하루 커피 몇 잔"], 2, alternative="greater")
result

실행 결과 :
TtestResult(statistic=2.0151143927408035, pvalue=0.02913177370632008, df=19)
print(result.statistic)
print(result.pvalue)

실행 결과 : 
2.0151143927408035
0.02913177370632008

→ alternative = "greater" 옵션은 대립가설 기준으로 두 잔보다 더 마실때이기 때문에 설정해준다.

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

→ 즉, 대립가설이 채택되므로 하루 평균 두 잔 이상 마신다고 볼 수 있다.

 

 

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

  • 귀무가설(H0): 하루 평균 두 잔 (μ = 2)
  • 대립가설(H1): 하루 평균 두 잔 보다 더 작게 마신다 (μ < 2)
stats.ttest_1samp(df["하루 커피 몇 잔"], 2, alternative="less")

실행 결과 :
TtestResult(statistic=2.0151143927408035, pvalue=0.9708682262936799, df=19)

→ alternative = "less" 옵션은 대립가설 기준으로 두 잔보다 더 적게 마실때이기 때문에 설정해준다.

→ pvalue값이 0.97로 유의수준 0.05보다 높아 귀무가설을 채택한다.

→ 즉, 대립가설이 기각되므로 하루 평균 두 잔이라 볼 수 있다. (두 잔 보다 많다)

 

 

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

  • 귀무가설(H0): 하루 평균 두 잔 (μ = 2)
  • 대립가설(H1): 하루 평균 두 잔이 아니다 (μ  2)
stats.ttest_1samp(df["하루 커피 몇 잔"], 2, alternative="two-sided")

실행 결과 :
TtestResult(statistic=2.0151143927408035, pvalue=0.05826354741264016, df=19)

→ alternative = "two-sided" 옵션은 대립가설 기준으로 두 잔이 아니기 때문에 설정해준다.

→ pvalue값이 0.058로 유의수준 0.05보다 높아 귀무가설을 채택한다.

→ 즉, 대립가설이 기각되므로 하루 평균 두 잔이 아니다라고 볼 수 있다.

 

stats.ttest_1samp(df["하루 커피 몇 잔"], 2)

실행 결과 : 
TtestResult(statistic=2.0151143927408035, pvalue=0.05826354741264016, df=19)

→ ttest_1samp의 디폴트 값이 alternative = "two-sided"이기 때문에 생략하여도 결과는 동일하다.