a = np.array([70, 69, 72, 74, 66, 68, 69, 70, 71, 69, 73, 72, 68, 72, 67])
b = np.array([69, 72, 71, 74, 68, 67, 72, 72, 72, 70, 75, 73, 71, 72, 69])
a.mean(), b.mean()
sgm = (a.var() * len(a) + b.var() * len(b)) / (len(a)+ len(b)-2)
_t = np.abs(b.mean() - a.mean()) / (np.sqrt(sgm) * np.sqrt(2/15))
s, p = stats.ttest_ind(a, b, equal_var = False)
p
f = np.var(a, ddof=1) / np.var(b, ddof=1)
p_val1 = stats.f.cdf(f, len(a)-1, len(b)-1)
p_val2 = stats.f.sf(f, len(a)-1, len(b)-1)
p_val3 = min(p_val1, p_val2)
f, p_val1, p_val2, p_val3
stats.f.interval(0.95, len(a)-1, len(b)-1)
ohke.hateblo.jp
N = 100
n = 16
M = 200
m = 50
pn = n/N
pm = m/M
z = np.abs(pn - pm) / np.sqrt((pn*(1-pn)/N) +( pm*(1-pm)/M))
z > 1.96
stats.norm.interval(0.95)
future-chem.com
a = np.array([120, 50, 40, 10])
r = np.array([9,3,3,1])
e = r / r.sum() * a.sum()
(np.vectorize(lambda x: x ** 2)(t) / e).sum()
stats.chi2.interval(0.9, 3)
chi2_05, chi2_95 = stats.chi2.interval(alpha=0.9, df=len(a)-1)