[통계] Python으로 하는 T 검정 (단일 표본 t-test, 독립 표본 t-test)
멋쟁이 사자처럼 17일차
: Special Lecture : 통계학 특강 정리✨
통계적 가설 검정 ( Statistical Hypothesis Testing )
- Karl Pearson, Ronald Fisher 등 통계학 초기 인물들이 개발한 검정 절차
- 증명된 바 없는 주장이나 가설을 표본 통계량에 입각하여 진위 여부를 판단하는 통계적 추론 방식
- 가설이 어느정도 신뢰할 수 있는지에 대한 어떤 측정값 제공
- 증명된 바 없는 주장이나 가설을 표본 통계량에 입각하여 진위 여부를 판단하는 통계적 추론 방식
- 반증주의 철학에 기반한 일반 과학적 가설 검정과는 상이한 방법
- 오랫동안 쓰여왔기 때문에 여전히 쓰이고 있는 검정법
가설 검정의 절차
1) 가설의 설정
귀무가설과 대립 가설을 설정한다.
귀무가설
- 기각하고자 하는 가설
- 차이가 없다 , 동일하다와 같은 형태
- 특별한 근거가 없으면 참으로 간주한다.
대립가설
- 주장하고자 하는 가설
- 차이가 있다, 다르다와 같은 형태
- 충분한 근거를 필요로 한다.
가설 검정은 귀무가설 H0가 맞다는 전제를 두고 진행되며 H0이 참일 경우 유의확률 P 값에 따라
대립가설을 채택할 것인지 보류할 것인지를 결정하는 검정 절차를 진행한다 .
2) 신뢰 수준과 유의 수준 설정
신뢰수준이란 ?
- 얼마만큼 보수적으로 가설 검정을 진행할 것인지를 결정
- 통계학에서의 신뢰수준은 모집단에서 표본을 반복 추출할 때 모집단의 모수를 포함하게 되는 구간의 비율을 표현한다.
- 즉, 100개의 표본을 추출했을 때 산출되는 신뢰 구간은 95%의 확률로 모수를 포함
- 기호는 1 - a 로 표현
유의수준이란 ?
- 귀무가설이 오류라고 인정하고 기각될 수 있도록 하는 어떤 정해진 수치(기준)
- a로 표현하며 a값이 커지면 대립가설이 채택될 가능성이 높아진다.
ex_ 95%의 신뢰수준으로 새로운 정책이 효과가 있었다 라는 검증한다는 것은 5%의 유의수준으로 검증한다는 말 !
-
- 95% 신뢰구간이 귀무가설 H0의 모수를 포함하지 않으면 유의수준 5%에서 귀무가설 H0는 기각된다.
3) 검정 통계량 산출
검정통계량이란 ?
- 어떤 특정 확률분포 (정규분포 , t분포 , 이항분포 등 )에서 검정을 위한 통계량을 산출
- 검정 통계량이 확률분포 어디에 위치하느냐에 따라 귀무가설이 기각 또는 채택된다.
- 신뢰구간에 위치할 경우 귀무가설을 채택하고 , 신뢰구간에서 벗어난 경우 대립가설이 채택된다.
- 검정 통계량이 확률분포 어디에 위치하느냐에 따라 귀무가설이 기각 또는 채택된다.
유의확률이란?
- 귀무가설이 참일 때, 관측된 검정통계량의 값보다 대립가설을 채택할 수 있는 검정통계량이 나올 확률을 유의확률 또는 p-값이라고 한다.
- 유의확률 p값이 유의수준 a보다 클 경우 귀무가설을 채택한다.
- 유의확률 p값이 유의수준 a보다 작을 경우 귀무가설을 기각한다.
유의확률이 작다는 것은 귀무가설이 참일 때 현재 표본통계량이 나올 확률이 적다는 것을 의미
p-value에 영향을 주는 요소들
- 데이터가 많을 수록 신뢰구간은 좁아지며 p값은 작아진다.
- 관찰된 통계량이 귀무가설에서 멀리 떨어져 있는 경우
- 표본이 큰 경우
Python Scipy를 활용한 t-검정
# 신뢰구간 구하기
# 라이브러리 설치 및 로드
# !pip install pingouin
import pandas as pd
import numpy as np
import pingouin as pg
from scipy import stats
# 데이터셋 로드
df = pd.read_excel('dataset/car.xlsx')
df.head()

1) 단일 표본 t -검정 수행 one sample t-test
- 1개 표본의 모평균을 검정
- 모집단의 구성 요소가 정규분포를 이룬다는 가정 하에 검정통계량 값 계산
가설 설정
귀무가설 : df['price']의 평균 값 == 900
대립가설 : df['price']의 평균 값 != 900
가설 검정
pg.ttest(df["price"], 900, confidence=0.95)

검정 통계량이 -2.306 이고 그에 대한 유의확률 p-값이 0.02 이므로 통계적으로 유의하다고 볼 수 있다.
유의수준 0.05에서 귀무가설을 기각하여 df['price'] 의 평균 값이 900은 아니라고 결론지을 수 있다.
df.price.mean()
853.6605839416059
2) 독립 표본 t -검정 수행 paired sample t-test
- 2개의 독립된 모집단 표본의 평균을 비교
- 두 모집단은 독립성과 정규성, 등분산성을 만족한다는 가정 하에 검정통계량 값 계산
가설 설정
귀무가설 : 아반떼 가격과 k3 가격의 평균은 차이가 없다.
대립가설 : 아반떼 가격과 k3 가격의 평균은 차이가 있다.
가설 검정
pg.ttest(df.price[df.model == 'Avante'], df.price[df.model == 'K3'], confidence=0.95)
검정통계량이 -2.21 이고 그에 대한 p-value가 0.03이므로 유의수준 0.05에서 귀무가설을 기각할 수 있다.
따라서 두 차종의 평균 가격에 차이가 있다.
# 실제 평균
df.price[df.model == 'Avante'].mean(), df.price[df.model == 'K3'].mean()
(833.4146341463414, 913.8115942028985)
Reference
파이썬으로하는 T 검정(T-test)
1. T - 검정¶ 1.1 일표본 t-검정 (one sample t-test)¶ 단일모집단에서 관심이 있는 연속형 변수의 평균값을 특정 기준값과 비교하고자할 때 일표본t검정에서는 모집단의 구성요소들이 정규분포를 이룬
jae-eun-ai.tistory.com
[Python 데이터 분석] 가설 검정 (Hypothesis Testing)
| 가설 검정( Hypothesis Testing ) 가설 검정은 증명된 바 없는 주장이나 가설을 표본 통계량에 입각하여 진위 여부를 판단하는 통계적 추론 방식입니다. 통계적 근거에 기반한 가설 검정은 우리가 세
engkimbs.tistory.com