Science/통계학
[통계학] PYTHON 으로 t-test 구현하기
pbj0812
2022. 7. 24. 11:44
0. 목표
- PYTHON 으로 t-test 구현하기
1. t-test
- 설명
T-검정 (T-test)
T-검정 (T-test) Start. BioinformaticsAndMe 1. T검정(T-test) ? 통계학자 윌리엄 고셋(가명 'Student')이 기네스 양조 공장에서 일하고 있었는데, 적은 샘플에 대한 통계적 추정치가 잘 맞지 않은 점을 착..
bioinformaticsandme.tistory.com
2. 구현하기
1) library 호출
import numpy as np
2) 데이터 생성
a = [1, 4, 3, 6, 4, 7, 8, 10, 5, 11]
b = [2, 5, 6, 3, 7, 4, 8, 3, 9, 19]
a_num = np.array(a)
b_num = np.array(b)
3) t-test 구현
# 평균
a_mean = np.mean(a_num)
b_mean = np.mean(b_num)
# 분산
def var(inp):
tmp = []
for i in range(len(inp)):
tmp.append((inp[i] - np.mean(inp))**2)
result = np.sum(tmp) / (len(inp) - 1)
return result
a_var = var(a_num)
b_var = var(b_num)
# 통합분산
var_a_b = ((len(a_num) - 1) * a_var + (len(b_num) - 1) * b_var) / ((len(a_num) - 1) + (len(b_num) - 1))
# 표준오차
se_a_b = np.sqrt(var_a_b * (1 / len(a_num) + 1 / len(b_num)))
# t-test 구현
t_test = (a_mean - b_mean) / se_a_b
print(t_test)
- 결과 : -0.37882446154538096
3. scipy 결과와 비교
- 결과 : Ttest_indResult(statistic=-0.37882446154538096, pvalue=0.7092495883757508)
- 구현 결과와 동일
from scipy import stats
stats.ttest_ind(a, b)