t-검정 수행

Python으로 배우는 가설 검정

James Chapman

Curriculum Manager, DataCamp

두 표본 문제

  • 변수의 집단별 표본 통계를 비교합니다
  • converted_comp는 수치형 변수입니다
  • age_first_code_cut는 범주형 변수이며 수준은 ("child", "adult")입니다
  • 어린 시절 코딩을 시작한 사용자가 성인이 되어 시작한 사용자보다 보상이 더 높습니까?
Python으로 배우는 가설 검정

가설

$H_{0}$: 아동기에 처음 코딩한 집단과 성인기에 처음 코딩한 집단의 평균 보상(USD)이 동일합니다.

$H_{0}$: $\mu_{child} = \mu_{adult}$

$H_{0}$: $\mu_{child} - \mu_{adult} = 0$

$H_{A}$: 아동기에 처음 코딩한 집단의 평균 보상(USD)이 성인기에 처음 코딩한 집단보다 큽니다.

$H_{A}$: $\mu_{child} > \mu_{adult}$

$H_{A}$: $\mu_{child} - \mu_{adult} > 0$

Python으로 배우는 가설 검정

집단별 요약 통계 계산

stack_overflow.groupby('age_first_code_cut')['converted_comp'].mean()
age_first_code_cut
adult    111313.311047
child    132419.570621
Name: converted_comp, dtype: float64
Python으로 배우는 가설 검정

검정통계량

  • 표본평균은 모집단평균을 추정합니다
  • $\bar{x}$: 표본평균
  • $\bar{x}_{child}$: 아동기 시작 집단의 보상 표본평균
  • $\bar{x}_{adult}$: 성인기 시작 집단의 보상 표본평균
  • $\bar{x}_{child} - \bar{x}_{adult}$: 검정통계량
  • z-점수: (표준화된) 검정통계량
Python으로 배우는 가설 검정

검정통계량의 표준화

$z = \dfrac{\text{sample stat} - \text{population parameter}}{\text{standard error}}$

$t = \dfrac{\text{difference in sample stats} - \text{difference in population parameters}}{\text{standard error}}$

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) - (\mu_{\text{child}} - \mu_{\text{adult}})}{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

Python으로 배우는 가설 검정

표준 오차

$SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) \approx \sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}$

$s$는 변수의 표준편차입니다

$n$는 표본크기(표본의 관측치/행 수)입니다

Python으로 배우는 가설 검정

귀무가설이 참이라고 가정

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) - (\mu_{\text{child}} - \mu_{\text{adult}})}{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

$H_{0}$: $\mu_{\text{child}} - \mu_{\text{adult}} = 0$    $\rightarrow$     $t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) }{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}{\sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}}$

Python으로 배우는 가설 검정

귀무가설 하 계산

xbar = stack_overflow.groupby('age_first_code_cut')['converted_comp'].mean()
adult    111313.311047
child    132419.570621
Name: converted_comp, dtype: float64 age_first_code_cut
s = stack_overflow.groupby('age_first_code_cut')['converted_comp'].std()
adult    271546.521729
child    255585.240115
Name: converted_comp, dtype: float64 age_first_code_cut
n = stack_overflow.groupby('age_first_code_cut')['converted_comp'].count()
adult    1376
child     885
Name: converted_comp, dtype: int64
Python으로 배우는 가설 검정

검정통계량 계산

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}{\sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}}$

import numpy as np
numerator = xbar_child - xbar_adult
denominator = np.sqrt(s_child ** 2 / n_child + s_adult ** 2 / n_adult)
t_stat = numerator / denominator
1.8699313316221844
Python으로 배우는 가설 검정

Ayo berlatih!

Python으로 배우는 가설 검정

Preparing Video For Download...