# -*- coding: utf-8 -*-
"""
Created on Wed Jan  5 13:15:14 2022

@author: Sim
"""
import matplotlib.pyplot as plt
import pandas as pd
import statsmodels.api as sma
from statsmodels.formula.api import ols

age = [41, 40, 50, 52, 43, 45, 42, 50]
y =   [65, 60, 73, 80, 67, 75, 70, 85]
df = pd.DataFrame({'age':age, 'y':y})
df = df.sort_values('age') # 나중에 선그리기 편하기 위해

plt.plot(age, y, '*')
plt.show()

lm1 = ols('y~age', data=df).fit()
#-------------------------------------------
print(lm1.params)
print(lm1.conf_int(alpha=0.01, cols=None))
#--------------------------------------------
plt.plot(age, y, '*')
plt.plot(df['age'], lm1.fittedvalues, 'r-')
plt.show()
#------------------------------------------
aovtab = sma.stats.anova_lm(lm1)
print(aovtab)
#------------------------------------------
age47 = pd.DataFrame({'age':[47]})
print(lm1.predict(age47))

pred47 = lm1.get_prediction(age47)
pred47result = pred47.summary_frame(alpha=0.05)
print(pred47result[['mean_ci_lower','mean_ci_upper']].values)
#-------------------------------------------------------
print(pred47result[['obs_ci_lower','obs_ci_upper']].values)

