# -*- coding: utf-8 -*-
"""
Created on Wed Jul  7 10:54:13 2021

@author: Sim
"""
import scipy.stats as st
import numpy as np

ci1 = st.norm.interval(.95, loc=171, scale=5/10)
print(ci1)

xx = [89,  91,  98,  78,  80,  85,  88,  87,  90,  92]
ci2 = st.t.interval(.99, df=len(xx)-1, loc=np.mean(xx), scale=st.sem(xx))
print(ci2)

#------------------------------------------------------
import statsmodels.stats.api as sms

ci3 = sms.DescrStatsW(xx).tconfint_mean(.01)

print(ci3)
#------------------------------------------------

def norm_ci_mean(mean, stdev, nn, alpha):
    lbd = mean - st.norm.ppf(1-alpha/2)*stdev/nn**.5
    ubd = mean + st.norm.ppf(1-alpha/2)*stdev/nn**.5
    return([mean, lbd, ubd])


print( norm_ci_mean(171, 5, 100, .05) )

def t_ci_mean(x, alpha):
    ave = np.mean(x)
    df = len(x) - 1
    lbd = ave - st.t.ppf(1-alpha/2, df)*np.std(x, ddof=1)/(len(x)**.5)
    ubd = ave + st.t.ppf(1-alpha/2, df)*np.std(x, ddof=1)/(len(x)**.5)
    return([ave, lbd, ubd])

print( t_ci_mean(xx, 0.01) )