# -*- coding: utf-8 -*-
"""
Created on Wed Nov 10 14:45:58 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)
mx = np.mean(x); my = np.mean(y)
v1 = np.var(x, ddof=1); v2 = np.var(y, ddof=1)



tval, pval = st.ttest_ind(x, y, equal_var=False, alternative='two-sided')
print(tval, pval)

df = (v1/m + v2/n)**2 /( (v1/m)**2/(m-1) + (v2/n) **2/(n-1) )
print(df)

tval1 = (mx - my) / np.sqrt(v1/m+v2/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*np.sqrt(v1/m+v2/n)
ubd = mx - my + cval*np.sqrt(v1/m+v2/n)
print(lbd, ubd)

#--------------------------------------------------------------------

import statsmodels.stats.api as sms

cm = sms.CompareMeans(sms.DescrStatsW(x, ddof=1), sms.DescrStatsW(y, ddof=1))
lbd, ubd = cm.tconfint_diff(usevar='unequal')
print (lbd, ubd)

tval, pval, df = cm.ttest_ind(usevar='unequal')
print(tval, pval, df)