# -*- coding: utf-8 -*-
"""
Created on Wed Nov 10 13:04:05 2021

@author: Sim
"""
import scipy.stats as st
import numpy as np

x = [0.005, 0.600, 1.325, 1.505, 1.520, 2.000, 2.255, 2.575, 
     3.000, 3.300, 3.500] 
y = [0.005, 0.005, 0.255, 0.505, 0.525, 1.000, 1.250, 1.505, 
     1.750, 2.750]

m = len(x); n = len(y)
df = m + n - 2
mx = np.mean(x); my = np.mean(y)

tval, pval = st.ttest_ind(x, y, equal_var=True, alternative='two-sided')
print(tval, pval)

sp = np.sqrt( ((m-1)*np.var(x, ddof=1) + (n-1)*np.var(y, ddof=1) )/df)
print(sp)

tval1 = (mx - my) / ( sp*np.sqrt(1/m+1/n) )
print(tval1)
pval1 = (1-st.t.cdf(np.abs(tval1), df)) * 2
print(pval1)

cval = st.t.ppf(.975, df)
if np.abs(tval) > cval:
    print('Reject H0 as |', tval, '| > ',  cval)
else:
    print('Cannot reject H0 as |', tval, ' <= ',  cval)

## 평균차의 95% 신뢰구간    
lbd = mx - my - cval*sp*np.sqrt((1/m+1/n))
ubd = mx - my + cval*sp*np.sqrt((1/m+1/n))
print(lbd, ubd)