pbj0812의 코딩 일기

[통계학] PYTHON 으로 t-test 구현하기 본문

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)

4. 참고

 - 분산과 표준편차 구하는 법

 - T-검정(t-test)

Comments