01-머신러닝 이해에 필요한 통계학적 핵심 개념-통계적 추론
1-1. p-value, 카이제곱 독립성 검정

1-2. ANOVA 분산 분석

1-3. 머신러닝 통계학 내용 정리

import numpy as np
from scipy import stats
x_bar, mu, sigma, n = 196, 200, 5.3, 20
t_sample = (x_bar - mu) / (sigma / np.sqrt(float(n)))
print("검정 통계량: ", np.round(t_sample, 2))
alpha = 0.05
t_alpha = stats.t.ppf(alpha, n-1)
print("t-table로 부터의 임계값: ", np.round(t_alpha, 3))
p_val = stats.t.sf(np.abs(t_sample), n-1)
print("t-table의 아래쪽 꼬리 p 값: ", np.round(p_val, 4))
import numpy as np
from scipy import stats
x, mu, sigma = 75, 56, 13.6
z = (x - mu) / sigma
print("z-score: ", np.round(z, 2))
p_val = 1 - stats.norm.cdf(z)
print("학생이 {}점 이상 받을 확률: {}%".format(x, np.round(p_val*100, 2)))
import numpy as np
import pandas as pd
from scipy import stats
np.random.seed(0)
smoke = ["안함", "가끔", "매일", "심함"]
exercise = ["안함", "가끔", "매일"]
data = {"smoke": np.random.choice(smoke, size=500),
"exercise": np.random.choice(exercise, size=500)}
df = pd.DataFrame(data, columns=["smoke", "exercise"])
df.head()

xtab = pd.crosstab(df.smoke, df.exercise)
xtab

contg = stats.chi2_contingency(observed=xtab)
p_val = np.round(contg[1], 3)
print("p값: ", p_val)
import numpy as np
import pandas as pd
from scipy import stats
np.random.seed(0)
data = (np.random.rand(30).round(2) * 10).reshape(-1, 3)
df = pd.DataFrame(data, columns=["A", "B", "C"])
df

one_way_anova = stats.f_oneway(df.A, df.B, df.C)
print("통계량: {}, p-value: {}".format(np.round(one_way_anova[0], 2),
np.round(one_way_anova[1], 3)))