# -*- coding: utf-8 -*-
"""
Created on Mon Dec 27 13:21:40 2021

@author: Sim
"""

import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import ols

iq = np.array([100 ,123 ,132,  98 ,105 ,110 ,117 , 95, 127 ,135])
vt =np.array([89 , 93 , 97,  80 , 83 , 88 , 90 , 70, 93 , 97])
vt1 = sm.add_constant(vt)
df = pd.DataFrame({'iq': iq, 'vt': vt})

lm1 = sm.OLS(iq, vt1).fit()
lm2 = ols('iq ~ vt', data=df).fit()

print('n:', lm1.nobs, lm2.nobs)
print('b0, b1: ', lm1.params, lm2.params)
print('F-stat:', lm1.fvalue, lm2.fvalue)
print('P of F-stat:', lm1.f_pvalue, lm2.f_pvalue)
print('t-values: ', lm1.tvalues, lm2.tvalues)
print('P of t-values:', lm1.pvalues, lm2.pvalues)
print('SE b0, b1: \n', lm1.bse, lm2.bse)
print('SSE: ', lm1.ssr, lm2.ssr)
print('MSReg: ', lm1.mse_model, lm2.mse_model)
print('MSE: ', lm1.mse_resid, lm2.mse_resid)
print('SST uncorrected: ', lm1.uncentered_tss, lm2.uncentered_tss, sum(iq**2))
