- 집단 간 차이 분석
- 평균 또는 비율 차이를 분석
- 목적
- 모집단에서 추출한 표본집단을 이용하여 모집단의 특성을 파악 및 추론할 수 있다.
- t-Test
- 두 집단 이하의 변수에 대한 평균차이를 검정할 경우, t-value를 추출해 가설검정을 수행
- ANOVA
- 세 집단 이상의 변수에 대한 평균차이를 검정할 경우, f-value를 추출해 가설검정을 수행
- t-검정
- 독립변수 : 범주형
- 종속변수 : 연속형
- 단일표본 t-검정이란?
- 하나의 집단에 대한 표본평균이, 예측된 평균과 차이가 있는지 검증
- 분석 대상
여아 신생아 몸무게의 평균 검정 수행 babyboom.csv
- 1. 가설 수립
- 귀무가설 : 여아 신생아의 몸무게는 평균 2800이다.
- 대립가설 : 여아 신생아의 몸무게는 평균 2800이 아니다.
- 2. 라이브러리 Import
import numpy as np import scipy.stats as stats import matplotlib.pyplot as plt import seaborn as sns import pandas as pd
- 3. 데이터 준비
df = pd.read_csv("../testdata/babyboom.csv") print(df.head()) # time gender weight minutes # 0 5 1 3837 5 # 1 104 1 3334 64 # 2 118 2 3554 78 # 3 155 2 3838 115 # 4 257 2 3625 177
- 4. 여아 신생아만 추출
w_df = df[df['gender']==1] # 여아 : 1, 남아 : 2 print(w_df['weight'].mean()) # 3132.4444444444443
- 5. 정규분포 확인
sns.displot(w_df.iloc[:, 2], kde=True) plt.show()
- 6. 정규성 확인
print('정규성 : ', stats.shapiro(w_df['weight'])) # 정규성 : ShapiroResult(statistic=0.8702830076217651, pvalue=0.017984798178076744) # 정규성 결과 # 0.01(p-value) < 0.05(유의수준) # -> 정규성 확인에서 p-value가 유의수준보다 낮기 때문에 정규성이 성립되지 않는다.
- 7. t-검정 수행
result4 = stats.ttest_1samp(w_df['weight'], popmean=2800) print(f'result4 : statistic(t-value):{result4[0]}, p-value:{result4[1]}') # result4 : statistic(t-value):2.233187669387536, p-value:0.03926844173060218 # 검정통계량 분석 결과 # 0.039(p-value) < 0.05(유의수준) # -> 대립가설[2800이 아니다.]에서 p-value 값이 유의수준보다 작으므로 유의미한 결과를 도출할 수 있다고 판단 # -> 대립가설 채택 # -> 귀무가설 기각