T- κ²μ μ λͺ¨μ§λ¨μ λΆμ°μ΄λ νμ€νΈμ°¨λ₯Ό μμ§ λͺ»ν λ, νλ³ΈμΌλ‘λΆν° μΆμ λ λΆμ°μ΄λ νμ€νΈμ°¨λ₯Ό μ΄μ©νμ¬ λ λͺ¨μ§λ¨μ νκ· μ μ°¨μ΄λ₯Ό μμ보λ κ²μ λ°©λ²μ΄λ€.
μ§λ¨μ μλ μ΅λ 2κ°κΉμ§ λΉκ΅ κ°λ₯νλ©° 3κ° μ΄μμΈ κ²½μ° λΆμ°λΆμ(ANOVA)λ₯Ό μ¬μ©νλ€.
λͺ¨μ§λ¨μμ μΆμΆν νλ³Έμ 보λ₯Ό μ΄μ©νμ¬ λͺ¨μ§λ¨μ λ€μν νΉμ±μ κ³Όνμ μΌλ‘ μΆλ‘ ν μ μλ€.
- λ 립λ³μ : λ²μ£Όν, μ’ μλ³μ : μ°μν
- tλΆν¬ μ¬μ© : νλ³Ένκ· μ μ΄μ©νμ¬ μ κ·λΆν¬μ νκ· μ ν΄μν λ λ§μ΄ μ¬μ©.
- λ κ° μ΄νμ μ§λ¨ λΉκ΅λ₯Ό μν νκ· κ³Ό νμ€νΈμ°¨μ λΉμ¨μ μ°¨μ΄λ₯Ό ꡬνκ³ κ·Έ μ°¨μ΄κ° μ°μ°μ΄λ μλλλ₯Ό νλ¨νλ κ²μ λ°©λ²
λ¨μΌ λͺ¨μ§λ¨μ νκ· μ λν κ°μ€κ²μ (one samples t-test)
μ΄λ λ¨μ± μ§λ¨μ νκ· ν€ κ²μ
νλμ μ§λ¨μ λν νλ³Έ νκ· μ΄ μμΈ‘λ νκ· κ³Ό κ°μμ§ μ¬λΆλ₯Ό νμΈ
- πκ·λ¬΄(H0) : μ§λ¨μ νκ· ν€κ° 177μ΄λ€.
H0 : νλ³Έμ νκ· = λͺ¨μ§λ¨νκ· (ΞΌ), νλ³Έμ νκ· - λͺ¨μ§λ¨μ νκ· = 0- πλ립(H1) : μ§λ¨μ νκ· ν€κ° 177μ΄ μλλ€.
H1 : νλ³Έμ νκ· β λͺ¨μ§λ¨νκ· (ΞΌ), (νλ³Έμ νκ· - λͺ¨μ§λ¨μ νκ· > 0) λλ (νλ³Έμ νκ· - λͺ¨μ§λ¨μ νκ· < 0)
import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# νλμ μ§λ¨μ λν ν€ νλ³Έ
one_sample = [167.0, 162.9, 169.2, 176.7, 187.5]
print(np.mean(one_sample))
>> 172.66
'''
# stats.ttest_1samp() : νλμ μ μ κ·Έλ£Ήμ νκ· μ λν T-κ²μ μ κ³μ°ν©λλ€.
- popmean : κΈ°λκ°
'''
result = stats.ttest_1samp(one_sample, popmean=177)
print('statistic:%.3f, pvalue:%.3f' %result)
>> statistic:-1.001, pvalue:0.373
ν΄μ : pvalue:0.373 > 0.05 μ΄λ―λ‘ κ·λ¬΄ μ±ν
μ§λ¨μ νκ· ν€κ° 177μ΄λ€.
λ§μ½ p-value κ° 0.05 λ³΄λ€ μ»Έλ€λ©΄ κ·λ¬΄κ°μ€ κΈ°κ°νκ³ λ립κ°μ€μ μ±ννλ€.
λ 립νλ³Έ t κ²μ (independent two sample t-test)
- μ ν 쑰건 : λ μ§λ¨μ μ κ·λΆν¬λ₯Ό λ°λΌμΌ νλ€. λ μ§λ¨μ λΆμ°μ΄ λμΌνλ€λ κ°μ μ΄ νμ
μλ‘ λ λ¦½μΈ λ μ§λ¨μ νκ· μ°¨μ΄ κ²μ (independent samples t-test)
- λ¨λ μ μ±μ , Aλ°κ³Ό Bλ°μ ν€, κ²½κΈ°λμ μΆ©μ²λμ μλ λ°μμ μλ‘ λ λ¦½μΈ λ μ§λ¨μμ μ»μ νλ³Έμ λ 립νλ³Έ(two sample)μ΄λΌκ³ νλ€.
import numpy as np
import pandas as pd
from scipy import stats
male = [75, 85, 100, 72.5, 86.5]
female = [63.2, 76, 52, 100, 70]
print(np.mean(male), np.mean(female))
>> 83.8 72.24 # λ μ§λ¨ νκ· , νκ· μ°¨μ΄λ 11.56
βλ¨λ λ μ§λ¨ κ° νμ΄μ¬ μνμ νκ· μ μ°¨μ΄κ° μ½ 11μ μ λ λλλ° μ°μ°ν λ°μν νλ₯ μ μΌλ§μΈκ°??
λ§μ½μ μ°μ°ν λ°μνλ€λ©΄ νκ· μ κ°μ κ²μ΄κ³ , μ°μ°ν μλλ©΄ λ€λ₯Έ κ²μ΄λ€.
- κ·λ¬΄ : λ¨λ λ μ§λ¨ κ° νμ΄μ¬ μνμ νκ· μ μ°¨μ΄κ° μλ€.
- λ립 : λ¨λ λ μ§λ¨ κ° νμ΄μ¬ μνμ νκ· μ μ°¨μ΄κ° μλ€.
'''
scipy.stats.ttest_ind(a, b, axis=0, equal_var=True, nan_policy='propagate', \
permutations=None, random_state=None, alternative='two-sided', trim=0)
>μ΄κ²μ 2κ°μ λ
립μ μΈ νλ³Έμ΄ λμΌν νκ· (μμ) κ°μ κ°λλ€λ κ·λ¬΄ κ°μ€μ λν κ²μ μ
λλ€.
μ΄ ν
μ€νΈλ κΈ°λ³Έμ μΌλ‘ λͺ¨μ§λ¨μ λΆμ°μ΄ λμΌνλ€κ³ κ°μ ν©λλ€.
νλΌλ―Έν° aμ bμ κ²½μ° λ°°μ΄μ μΆ (κΈ°λ³Έμ μΌλ‘ 첫 λ²μ§Έ) μ ν΄λΉνλ μ°¨μμ μ μΈνκ³
λͺ¨μμ΄ λμΌν΄μΌ ν©λλ€.(λ°°μ΄κ³Ό κ°μ λͺ¨μμ΄μ¬μΌνλ€.
* equal_var = (True or False)
True(κΈ°λ³Έκ°)μΈ κ²½μ° λͺ¨μ§λ¨ λΆμ°μ΄ λμΌνλ€κ³ κ°μ νλ νμ€ λ
립 2νλ³Έ κ²μ μ μνν©λλ€.
FalseμΈ κ²½μ° λͺ¨μ§λ¨ λΆμ°μ΄ λμΌνλ€κ³ κ°μ νμ§ μλ Welchμ t-κ²μ μ μνν©λλ€.
'''
# two_sample = stats.ttest_ind(male, female)
two_sample = stats.ttest_ind(male, female, equal_var=True)
# equl_var=True : λ±λΆμ°μ±μ΄ κ°λ€κ³ κ°μ
print(two_sample)
>> Ttest_indResult(statistic=1.233193127514512, pvalue=0.2525076844853278)
# statisticκ° t-value μ΄λ€.
κ²°λ‘ : p-value(0.2525) > Ξ±(0.05) μ΄λ―λ‘ κ·λ¬΄ μ±ν
λ¨λ λ μ§λ¨ κ° νμ΄μ¬ μνμ νκ· μ μ°¨μ΄κ° μλ€. λ€μ λ§ν΄ μ°μ°ν λ°μν μλ£λΌκ³ ν μ μλ€.