t-๊ฒ์ ์ ์ฝ๊ฒ ๋งํ๋ฉด ๋ ์ง๋จ์ ํ๊ท ์ฐจ์ด๊ฐ ํต๊ณ์ ์ผ๋ก ์ ์๋ฏธํ์ง๋ฅผ ํ๊ฐํ๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ ์ ์๋ค.
๋ชจ์ง๋จ์ ๋ถ์ฐ์ด๋ ํ์คํธ์ฐจ๋ฅผ ์์ง ๋ชปํ ๋ ๋ชจ์ง๋จ์ ๋ํํ๋ ํ๋ณธ์ผ๋ก๋ถํฐ ์ถ์ ๋ ๋ถ์ฐ์ด๋ ํ์คํธ์ฐจ๋ฅผ ๊ฐ์ง๊ณ ๊ฒ์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก
โ๋ ๋ชจ์ง๋จ์ ํ๊ท ๊ฐ์ ์ฐจ์ด๋ ์๋คโ๋ผ๋ ๊ท๋ฌด๊ฐ์ค๊ณผ โ๋ ๋ชจ์ง๋จ์ ํ๊ท ๊ฐ์ ์ฐจ์ด๊ฐ ์๋คโ๋ผ๋ ๋๋ฆฝ๊ฐ์ค ์ค์ ํ๋๋ฅผ ์ ํํ ์ ์๋๋ก ํ๋ ํต๊ณ์ ๊ฒ์ ๋ฐฉ๋ฒ์ด๋ค.
t-๊ฒ์ ์ ์ฃผ๋ก ๋ฒ์ฃผํ ๊ฐ์ 2๊ฐ๋ฅผ ๋
๋ฆฝ๋ณ์๋ก ์ฌ์ฉํ๋ค.
t-๊ฒ์ ์์ ์์ธก๊ฒ์ ๊ณผ ๋จ์ธก๊ฒ์ ์ ๊ฐ๋ ์ ์ค์ํ๋ค. ์์ธก๊ฒ์ ์ธ์ง, ๋จ์ธก๊ฒ์ ์ธ์ง์ ๋ฐ๋ผ ๊ฒ์ฆ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง ์ ์๋ค. ๋จ์ธก/์์ธก๊ฒ์ ์ ๊ท๋ฌด๊ฐ์ค ํ ์คํธ์ ์ฌ์ฉ๋๋ฉฐ, ์ถ์ ๊ฐ(t)์ด ์๊ณ์์ญ(๊ธฐ๊ฐ์ญ)์ ์๋ ๊ฒฝ์ฐ ๋๋ฆฝ๊ฐ์ค์ด ์ฑํ๋๋ค.
๋จ์ธก๊ฒ์ ์ ์์ธก๊ฒ์ ๋ณด๋ค ๋ ๊ฐ๋ ฅํ ๊ฒ์ ์ด ๋ ์ ์์ง๋ง, ๊ฐ์ค ์ค์ ๊ณผ ๊ฒ์ ๋ฐฉํฅ์ ๋ํ ์ฌ์ ์ ๋ณด๊ฐ ํ์ํ๋ค๋ ์ ์์ ์ฃผ์๊ฐ ํ์ํ๋ค. ์ ์ ํ ์ ํ์ ์ฐ๊ตฌ์์ ๋ชฉ์ ๊ณผ ์ฐ๊ตฌ์ ํน์ฑ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์๋ค.
t-๊ฒ์ ์ ์ฌ์ฉํ๋ฉด ์์ ํ๋ณธ ํฌ๊ธฐ์์๋ ํจ๊ณผ์ ์ผ๋ก ํ๊ท ์ฐจ์ด๋ฅผ ํ๊ฐํ ์ ์์ด์ ๋ง์ด ์ฌ์ฉ๋๋ค.
z-๊ฒ์ ์ ํ์ค ์ ๊ท๋ถํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ ์ง๋จ ๊ฐ์ ํ๊ท ์ฐจ์ด๊ฐ ํต๊ณ์ ์ผ๋ก ์ ์๋ฏธํ์ง๋ฅผ ํ๊ฐํ๋ ํต๊ณ์ ๋ฐฉ๋ฒ ์ค ํ๋๋ค. ์ฃผ๋ก ํฐ ํ๋ณธ ํฌ๊ธฐ์์ ์ฌ์ฉ๋ผ์, ๋ชจ์ง๋จ์ ๋ถํฌ๊ฐ ์ ๊ท๋ถํฌ๋ฅผ ๋ฐ๋ฅผ ๋ ํจ๊ณผ์ ์ผ๋ก ์ ์ฉ๋ ์ ์๋ค.
z-๊ฒ์ ์ ํต์ฌ ์์ด๋์ด๋ ํ๋ณธ ๋ฐ์ดํฐ๋ก๋ถํฐ ๊ณ์ฐ๋ ํ๊ท ์ฐจ์ด๊ฐ ์ฐ์ฐ์ ์ํ ๊ฒ์ธ์ง ์๋๋ฉด ๋ชจ์ง๋จ์์ ์ค์ ๋ก ์๋ฏธ ์๋ ์ฐจ์ด๊ฐ ์๋์ง๋ฅผ ๊ฒ์ ํ๋ ๊ฒ์ด๋ค. ๊ฒ์ ํต๊ณ๋(z-ํต๊ณ๋)์ ๊ณ์ฐํ๊ณ , ์ด ๊ฐ์ด ํน์ ์๊ณ๊ฐ์ ๋์ผ๋ฉด ํ๊ท ์ฐจ์ด๊ฐ ํต๊ณ์ ์ผ๋ก ์ ์๋ฏธํ๋ค๊ณ ํ๋จํ ์ ์๋ค.
z-๊ฒ์ ์ ๋ชจ์ง๋จ์ ๋ถํฌ๊ฐ ์ ๊ท๋ถํฌ๋ฅผ ๋ฐ๋ฅผ ๋ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ง๋ง, ๋ชจ์ง๋จ์ ๋ถํฌ๊ฐ ์๋ ค์ ธ ์์ด์ผ ํ๋ค๋ ํ๊ณ๊ฐ ์๋ค.
z- ๊ฒ์ ๊ณผ t-๊ฒ์ ์ ๋ ๋ค ํ๊ท ์ ์ด์ฉํ๋ค๋ ์ ์์ ๊ณตํต์ ์ด ์๋ค.
ํ์ง๋ง, z-๊ฒ์ ์ ๋ชจ์ง๋จ์ ๋ถํฌ๊ฐ ์ ๊ท๋ถํฌ๋ฅผ ๋ฐ๋ฅด๊ณ ํ๋ณธ์ ํฌ๊ธฐ๊ฐ ํด ๋ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๋ฐ๋ฉด, t-๊ฒ์ ์ ํ๋ณธ์ ํฌ๊ธฐ๊ฐ ํฐ ๋ฐ์ดํฐ๋ฟ๋ง ์๋๋ผ ํฌ๊ธฐ๊ฐ ์์ ๋ฐ์ดํฐ์์๋ ํ๊ท ์ฐจ์ด๋ฅผ ํ๊ฐํ ์ ์์ด ์ ์ฉํ๋ค๋ ์ฐจ์ด์ ์ด ์๋ค.
One Sample t-test๋ ๊ทธ๋ฃน์ด 1๊ฐ์ผ๋ ๋ชจ์ง๋จ์ ์์ ํ๊ท ์น๊ฐ ๋ง๋์ง ํ๋ณธ์ ํตํด ๋น๊ต ๊ฒ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ ๊ท๋ถํฌ์(๋ชจ์ง๋จ) ํ๋ณธ์ ๋ํด ๊ธฐ๋๊ฐ์ ์กฐ์ฌ(ํ๊ท ์ ์ฐจ์ด ์ฌ์ฉ)ํ๋ค.
์ฌ์ ์ ์์์ ๋ชธ๋ฌด๊ฒ๋ ํ๊ท 2800(g)์ผ๋ก ์๋ ค์ ธ ์์ผ๋ ์ด๋ณด๋ค ๋ ํฌ๋ค๋ ์ฃผ์ฅ์ด ๋์๋ค. ํ๋ณธ์ผ๋ก ์ฌ์ 18๋ช ์ ๋ฝ์ ์ฒด์ค์ ์ธก์ ํ์๋ค๊ณ ํ ๋ ์๋ก์ด ์ฃผ์ฅ์ด ๋ง๋์ง ๊ฒ์ ํด ๋ณด์. ๋ฐ์ดํฐ๋ babyboom.csv๋ฅผ ์ฌ์ฉํ๋ค.
๊ฐ์ค์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ท๋ฌด : ์ฌ์ ์ ์์์ ๋ชธ๋ฌด๊ฒ๋ ํ๊ท 2800(g)์ด๋ค.
๋๋ฆฝ : ์ฌ์ ์ ์์์ ๋ชธ๋ฌด๊ฒ๋ ํ๊ท 2800(g)๋ณด๋ค ํฌ๋ค.
import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
data2 = pd.read_csv('../testdata/babyboom.csv')
fdata = data2[data2['gender']==1]
print(fdata, len(fdata))
print(np.mean(fdata['weight']))
# ์ ๊ท์ฑ ํ์ธ
print(stats.shapiro(fdata.iloc[:2])) # pvalue=0.000176288565 < 0.05์ด๋ฏ๋ก ์ ๊ท์ฑ ๋ง์กฑ ๋ชปํจ
# ์ ๊ท์ฑ ํ์ธ ์๊ฐํ 1 : Q-Q plot
stats.probplot(fdata.iloc[:,2],plot=plt)
plt.show()
# ์ ๊ท์ฑ ํ์ธ ์๊ฐํ 2 : histogram
sns.displot(fdata.iloc[:,2], kde=True)
plt.show()
result3 = stats.ttest_1samp(fdata.weight, popmean=2800 )
print(result3)
print('statistic(t๊ฐ) : %.5f, pvalue:%.5f'%result3)
shapiro
ํจ์๋ฅผ ํตํด ์ ๊ท์ฑ์ ๊ฒ์ฌํ๋ค. Q-Q plot, histogram๋ฑ์ ํตํด ์ ๊ท์ฑ์ ํ์ธ์ ์๊ฐํํ ์ ์๋ค.
๋ค์์ผ๋ก ttest_1sampํจ์๋ฅผ ์ด์ฉํด p๊ฐ์ ์ป์ ์ ์๋ค.
์ด ๋ฌธ์ ์์ pvalue๊ฐ 0.03927์ผ๋ก 0.05๋ณด๋ค ์๊ธฐ๋๋ฌธ์ ๊ท๋ฌด๊ฐ์ค์ ๊ธฐ๊ฐํ๋ค. ๋ฐ๋ผ์, ์ฌ์ ์ ์์์ ๋ชธ๋ฌด๊ฒ๋ ํ๊ท 2800(g)๋ณด๋ค ํฌ๋ค.
Independent Sample t-test๋ ๋น๊ต ์ง๋จ์ด ๋๊ฐ์ธ ๊ฒฝ์ฐ์ ํ๊ท ์ด ๋จ์ํ ์ ์ํ ์ฐจ์ด๊ฐ ์๋์ง๋ฅผ ๊ฒ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ ๋ฆฝ์ ์ธ ๋ ๋ชจ์ง๋จ์ ํ๊ท ์ ์ ์๋ฏธํ ์ฐจ์ด๊ฐ ์๋์ง ๋น๊ตํ๊ธฐ์ํด ๊ฐ ํ๋ณธ๋ค์ ํ๊ท ์ ๋น๊ตํ๋ค.
๋ค์ ์ฝ๋๋ ๋จ๋
๋ ์ง๋จ ๊ฐ ํ์ด์ฌ ์ํ์ ํ๊ท ์ฐจ์ด ๊ฒ์ ํ๋ ๊ฒ์ด๋ค. ๋จ๋
์ ์ํ ํ๊ท ์ด ์ฐ์ฐํ ๊ฐ์ ํ๋ฅ ์ ์ผ๋ง์ธ์ง๋ฅผ ์์ ๋ณธ๋ค.
๊ฐ์ค์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ท๋ฌด : ๋ ์ง๋จ ๊ฐ ํ์ด์ฌ ์ํ์ ํ๊ท ์ ์ฐจ์ด๊ฐ ์๋ค.
๋๋ฆฝ : ๋ ์ง๋จ ๊ฐ ํ์ด์ฌ ์ํ์ ํ๊ท ์ ์ฐจ์ด๊ฐ ์๋ค.
male = [75,85, 100, 72.5, 86.5]
female = [63.2, 76, 52, 100, 70]
print(np.mean(male), np.mean(female)) # ๋จ๋
ํ๊ท
two_sample = stats.ttest_ind(male, female, equal_var=True, alternative='two-sided')
print(two_sample) # TtestResult(statistic=1.233193127514512, pvalue=0.2525076844853278, df=8.0)
# ์ฐธ๊ณ : Effect-size(ํจ๊ณผ ํฌ๊ธฐ) - ๋ ์ง๋จ ํ๊ท ์ฐจ์ด๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ธ๋ฑ๊ธ์ผ๋ก ๋ถ๋ฆฌ(๋ฌผ๋ฆฌ์ )ํด ํํ
# ํจ๊ณผ ํฌ๊ธฐ(Cohen's d) = ๋ ํ๋ณธ ์ง๋จ์ ํ๊ท ์ฐจ์ด / ์ถ์ ๋ ํ์คํธ์ฐจ
imsi = male + female
print(imsi)
print((np.mean(male) - np.mean(female)) / np.std(imsi)) # 0.799์ด๋ฏ๋ก ํจ๊ณผํฌ๊ธฐ๊ฐ ์ปค์ ๋ ๊ทธ๋ฃน์ ํ๊ท ์ ์ฐจ์ด๊ฐ ํฌ๋ค๊ณ ํ ์ ์๋ค.
ttest_indํจ์๋ฅผ ์ด์ฉํด p๊ฐ์ ์ป์ ์ ์๋ค.
์ด ๋ฌธ์ ์์๋ pvalue๊ฐ 0.252์ผ๋ก 0.05๋ณด๋ค ํฌ๊ธฐ ๋๋ฌธ์ ์ด๋ฏ๋ก ๊ท๋ฌด๊ฐ์ค์ ์ฑํํ๋ค. ๋ ๋ผ์, ๋ ์ง๋จ ๊ฐ ํ์ด์ฌ ์ํ์ ํ๊ท ์ ์ฐจ์ด๊ฐ ์๋ค.
effect-size๋ ์ฐธ๊ณ ์ฉ์ผ๋ก ์์ฑํ๋ค.
Paired Smple t-test ๋ฐ๋ณต ์ธก์ ๋ ์ํ์ ๋ณํ๋์ ์ ์๋ฏธํ ์ฐจ์ด๋ฅผ ์๋์ง ๊ฒ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๊ฐ์ ๊ทธ๋ฃน๋ด์ ๋ ๊ฐ์ง ๋ค๋ฅธ ์กฐ๊ฑด์์ ์์ง๋ ๋ฐ์ดํฐ ๊ฐ์ ์ฐจ์ด๋ฅผ ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ฃผ๋ก ์ ํ ๋ ์์ ์์ ์ธก์ ๋ ์์น ๋ฐ์ดํฐ์ ๋ํ ์ฐจ์ด๋ฅผ ๊ฒ์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
์ด ๊ฒ์ ์ ๋ ๊ด๋ จ๋ ๋ฐ์ดํฐ ์ธํธ ๊ฐ์ ํ๊ท ์ฐจ์ด๊ฐ ํต๊ณ์ ์ผ๋ก ์ ์๋ฏธํ์ง๋ฅผ ํ์ธํ๋ ๋ฐ ๋์์ด ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก "์ " ์กฐ๊ฑด๊ณผ "ํ" ์กฐ๊ฑด์ ๋ฐ์ดํฐ๊ฐ ์์ ์ด๋ฃจ๊ณ ์์ด์ผ ํ๋ค. ๋์์ธ ๋ ์ง๋จ์ ํ๊ท ๋น๊ต๋ ๋์ผํ ๊ด์ฐฐ ๋์์ผ๋ก๋ถํฐ ์ฒ๋ฆฌ ์ด์ ์ ๊ด์ฐฐ๊ณผ ์ดํ์ ๊ด์ฐฐ์ ๋น๊ตํ์ฌ ์ํฅ์ ๋ฏธ์น ์ ๋๋ฅผ ๋ฐํ๋๋ฐ ์ฃผ๋ก ์ฌ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋์ผํ ํผํ์๋ ๋์ผํ ์คํ ๋จ์์ ๋ํ ์ ํ ์กฐ๊ฑด์ ์ธก์ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ์ ์ด ๊ฒ์ ์ ์ฌ์ฉํ ์ ์๋ค.
๋ค์์ "6๊ฐ์๊ธฐ๊ฐ๋์ ์ด์ฝํ์ด๋ฅผ ๋จน๊ธฐ ์ ํ์ ๋ชธ๋ฌด๊ฒ๊ฐ ๊ฐ์๊ฐ?"์ ๋ํ ๊ฒ์ ์ ํ๋ ์ฝ๋์ด๋ค.
๊ฐ์ค์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ท๋ฌด : ๋ณต๋ถ ์์ ์ ๋ชธ๋ฌด๊ฒ์ ๋ณต๋ถ ์์ ํ ๋ชธ๋ฌด๊ฒ ๋ณํ ์ฐจ์ด๊ฐ ์๋ค.
๋๋ฆฝ : ๋ณต๋ถ ์์ ์ ๋ชธ๋ฌด๊ฒ์ ๋ณต๋ถ ์์ ํ ๋ชธ๋ฌด๊ฒ ๋ณํ ์ฐจ์ด๊ฐ ์๋ค.
from scipy import stats
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
baseline = [67.2, 67.4, 71.5, 77.6, 86.0, 89.1, 59.5, 81.9, 105.5]
follow_up = [62.4, 64.6, 70.4, 62.6, 80.1, 73.2, 58.2, 71.0, 101.0]
print(np.mean(baseline))
print(np.mean(follow_up))
plt.bar(np.arange(2), [np.mean(baseline), np.mean(follow_up)])
plt.show()
pair_sample = stats.ttest_rel(baseline, follow_up)
print('\nt-value : %.5f, p-value : %.5f'%pair_sample)
ttest_relํจ์๋ฅผ ์ด์ฉํด p๊ฐ์ ์ป์ ์ ์๋ค.
์ด ๋ฌธ์ ์์ ๊ตฌํ p-value๋ 0.0063์ผ๋ก 0.05 ์๊ธฐ ๋๋ฌธ์ ๊ท๋ฌด๊ฐ์ค ๊ธฐ๊ฐํ๋ค. ๋ฐ๋ผ์, ๋ณต๋ถ ์์ ์ ๋ชธ๋ฌด๊ฒ์ ๋ณต๋ถ ์์ ํ ๋ชธ๋ฌด๊ฒ ๋ณํ ์ฐจ์ด๊ฐ ์๋ค.
t-๊ฒ์ ์ ์ํํ ๋, ์ ๊ท์ฑ๊ณผ ๋ฑ๋ถ์ฐ์ฑ์ ๊ฐ์ ์ด ๋ง์กฑ๋์ง ์์ ๊ฒฝ์ฐ์๋ ๊ฒฐ๊ณผ์ ํด์์ด๋ ๊ฒ์ ์ ์ ๋ขฐ๋์ ์ํฅ์ ๋ฏธ์น ์ ์๋ค.
์ผ๋ฐ์ ์ผ๋ก t-๊ฒ์ ์ ์ ๊ท์ฑ๊ณผ ๋ฑ๋ถ์ฐ์ฑ์ ๋ง์กฑํ๋ ๊ฒ์ด ๊ธฐ๋ณธ ์ ์ ๋ก ๊ฐ์ฃผ๋๋ค. ์ด๋ t-๊ฒ์ ์ด ์ ๊ท ๋ถํฌ๋ฅผ ๊ฐ์ ํ๊ณ , ๋ ๊ทธ๋ฃน์ ๋ถ์ฐ์ด ๋์ผํ๋ค๊ณ ๊ฐ์ ํ๋ ๋ฑ๋ถ์ฐ์ฑ์ ๊ฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ด๋ค. t-๊ฒ์ ์ ํ๋ณธ ํฌ๊ธฐ๊ฐ ํฌ๋ฉด ์ค์ฌ ๊ทนํ ์ ๋ฆฌ์ ์ํด ์ ๊ท์ฑ ๊ฐ์ ์ด ์๋์ ์ผ๋ก ๋ ์ค์ํด์ง์ง๋ง, ์์ ํ๋ณธ ํฌ๊ธฐ์์๋ ์ ๊ท์ฑ๊ณผ ๋ฑ๋ถ์ฐ์ฑ์ ๊ฐ์ ์ด ์ค์ํ๊ฒ ์์ฉํ ์ ์๋ค.
์ ๊ท์ฑ๊ณผ ๋ฑ๋ถ์ฐ์ฑ์ด ์ค์ํ ์ด์ ๋ t-๊ฒ์ ์ด ์ด๋ฌํ ๊ฐ์ ์ ์ ์ ๋ก ํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ๊ฐ์ ์ด ๊นจ์ง ๊ฒฝ์ฐ, ๊ฒฐ๊ณผ์ ์ ๋ขฐ๋๊ฐ ์ ํ๋ ์ ์๋ค. ํ์ง๋ง, ํนํ ํ๋ณธ์ ํฌ๊ธฐ๊ฐ ํฌ๋ฉด ์ค์ฌ๊ทนํ์ ๋ฆฌ์ ์ํด ์ ๊ท์ฑ ๊ฐ์ ์ด ์๋์ ์ผ๋ก ๋ ์ค์ํด์ง ์ ์๋ค. ๋ฐ๋ผ์ ์ํฉ๊ณผ ๋ฐ์ดํฐ์ ๋ฐ๋ผ ์ ์ ํ ํต๊ณ์ ๋ฐฉ๋ฒ์ ์ ํํ๋ ๊ฒ์ด ์ค์ํ๋ค.
from scipy import stats
import pandas as pd
import numpy as np
import seaborn as sns
print('\n์ ๊ท์ฑ ํ์ธ')
print(stats.shapiro(score1).pvalue) # 0.36798644065856934 > 0.05์ด๋ฏ๋ก ์ ๊ท์ฑ ๋ง์กฑ
print(stats.shapiro(score2).pvalue) # 0.6714232563972473 > 0.05์ด๋ฏ๋ก ์ ๊ท์ฑ ๋ง์กฑ
print('\n๋ฑ๋ถ์ฐ์ฑ ํ์ธ')
print(stats.levene(score1, score2).pvalue) # ๋ชจ์ ๊ฒ์ ์ผ ๋ # 0.4568427112977609 > 0.05
print(stats.fligner(score1, score2).pvalue) # ๋ชจ์ # 0.44323735267062647 > 0.05
print(stats.bartlett(score1, score2).pvalue) # ๋น๋ชจ์ ๊ฒ์ ์ผ ๋ # 0.26789717886602216 > 0.05
# levene ๊ฐ์ฅ ๋ง์ด ์ ์ธ ๊ฐ ๋ค 0.05๋ณด๋ค ํฌ๋ฏ๋ก ๋ฑ๋ถ์์ฑ์ ๋ง์กฑํ๋ค.
result = stats.ttest_ind(score1, score2)
print('\nt-value : %.5f, p-value : %.5f'%result) # t-value : -0.19649, p-value : 0.84505
print(np.mean(score1), np.mean(score2)) # 5.199999999999999 5.246666666666667
# ํ์ : p-value -> 0.84505 > 0.05 ๊ท๋ฌด๊ฐ์ค ์ฑํ. ๋ฐ๋ผ์, ๋ ๊ฐ์ง ๊ต์ก๋ฐฉ๋ฒ์ ๋ฐ๋ฅธ ํ๊ท ์ํ ์ ์์ ์ฐจ์ด๊ฐ ์๋ค.
print('\n๋ฑ๋ถ์ฐ์ฑ์ ๋ง์กฑํ ๊ฒฝ์ฐ : ',stats.ttest_ind(score1, score2).pvalue)
print('๋ฑ๋ถ์ฐ์ฑ์ ๋ง์กฑํ ๊ฒฝ์ฐ : ',stats.ttest_ind(score1, score2, equal_var=True).pvalue)
print('๋ฑ๋ถ์ฐ์ฑ์ ๋ง์กฑํ์ง ๋ชปํ ๊ฒฝ์ฐ : ',stats.ttest_ind(score1, score2, equal_var=False).pvalue)
# ๋ฑ๋ถ์ฐ์ฑ์ ๋ง์กฑํ์ง ๋ชปํ ๊ฒฝ์ฐ welchi test ๊ฐ๋ฅ
print()
print('์ ๊ท์ฑ์ ๋ง์กฑํ ๊ฒฝ์ฐ : ',stats.ttest_ind(score1,score2).pvalue)
# print('์ ๊ท์ฑ์ ๋ง์กฑํ์ง ๋ชปํ ๊ฒฝ์ฐ : ',stats.wilcoxon(score1,score2).pvalue) # ๋ ์ง๋จ์ ํฌ๊ธฐ๊ฐ ๊ฐ์ ๊ฒฝ์ฐ
print('์ ๊ท์ฑ์ ๋ง์กฑํ์ง ๋ชปํ ๊ฒฝ์ฐ : ',stats.mannwhitneyu(score1,score2).pvalue) # ๋ ์ง๋จ์ ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ
์ ๊ท์ฑ ํ์ธ์ ํ ๋๋ shapiro()ํจ์๋ฅผ ์ฌ์ฉํ๋ค. ์ด ํจ์ ๋ง๊ณ ๋ ๋ค๋ฅธ ํจ์๋ค๋ ์์ง๋ง ์๋ตํ๊ฒ ๋ค.
๋ฑ๋ถ์์ฑ์ ํ์ธํ ๋ ๋ชจ์๊ฒ์ ์ด๋ผ๋ฉด levene()๊ณผ fligner()๋ฅผ ์ฌ์ฉํ๊ณ , ๋น๋ชจ์๊ฒ์ ์ผ๋๋ bartlett()์ ์ฌ์ฉํ๋ค.
๋ค์์ ์ ๊ท์ฑ๊ณผ ๋ฑ๋ถ์ฐ์ฑ์ ๋ง์กฑํ ๋์ ๋ถ๋ง์กฑํ ๋์ t-๊ฒ์ ์ ์ํํ๋ ํจ์๋ฅผ ์ ๋ฆฌํ ํ์ด๋ค.
๋ฑ๋ถ์ฐ์ฑ ๋ง์กฑ | ๋ฑ๋ถ์ฐ์ฑ ๋ง์กฑ x |
---|---|
ttest_ind(..,equal_var=True) | ttest_ind(..,equal_var=False) , welchi test |
equal_var๋ True๊ฐ default์ด๋ค.
์ ๊ท์ฑ ๋ง์กฑ | ์ ๊ท์ฑ ๋ง์กฑ x |
---|---|
ttest_ind | wilcoxon(๋ ์ง๋จ์ ํฌ๊ธฐ ๊ฐ์ ๊ฒฝ์ฐ) ,mannwhitneyu(๋ ์ง๋จ์ ํฌ๊ธฐ ๋ค๋ฅธ ๊ฒฝ์ฐ) |
t ๊ฒ์ ์ ์ : (๊ต์กํ๊ฐ์ฉ์ด์ฌ์ , 2004, ํ์ง์ฌ)
์์ธก๊ฒ์ ,๋จ์ธก๊ฒ์ ์ด๋ฏธ์ง : https://dbrang.tistory.com/1407
t-๊ฒ์ ์ข
๋ฅ ์ด๋ฏธ์ง : https://sysiphe0.tistory.com/5