# -*- coding: utf-8 -*-
"""
Created on Tue Jan  4 09:28:20 2022

@author: Sim
"""

import pandas as pd
import statsmodels.stats.api as sms
import scipy.stats as st

df = pd.read_csv(r'D:\HTEX\Pythonbk\codesdata\bmi.csv')
df['bmi'] = df['weight']/(df['height']/100)**2


lbd95, ubd95 = st.t.interval(0.95, df.shape[0]-1, loc=df.mean()['bmi'], 
                         scale=df.sem()['bmi'])
print(lbd95, ubd95)
lbd99, ubd99 = st.t.interval(0.99, df.shape[0]-1, loc=df.mean()['bmi'], 
                         scale=df.sem()['bmi'])
print(lbd99, ubd99)

#--------------------------------------------------------------                      
gdf_gen = df.groupby('gender')

mbmi = gdf_gen.get_group('M')['bmi']
fbmi = gdf_gen.get_group('F')['bmi']

Fval, pvalF = st.levene(mbmi, fbmi, center='mean')
print('F, P:' ,Fval, pvalF)

cm = sms.CompareMeans(sms.DescrStatsW(mbmi, ddof=1), 
                      sms.DescrStatsW(fbmi, ddof=1))
tval, pval, degf = cm.ttest_ind(usevar='unequal')
print('t, p, df:', tval, pval, degf)

#---------------------------------------------------------------
gdf_marr = df.groupby('marriage')

ybmi = gdf_marr.get_group('Y')['bmi']
nbmi = gdf_marr.get_group('N')['bmi']

Fval, pvalF = st.levene(ybmi, nbmi, center='mean')
print('F, P:' ,Fval, pvalF)

cm = sms.CompareMeans(sms.DescrStatsW(ybmi, ddof=1), 
                      sms.DescrStatsW(nbmi, ddof=1))
tval, pval, degf = cm.ttest_ind(alternative='larger', usevar='unequal')
print('t, p, df:', tval, pval, degf)


