import numpy as np
import pandas as pd
import scipy as sp
import scipy.stats as ss
import statsmodels
import statsmodels.api as sm
import statsmodels.formula.api as smf
from statsmodels.iolib.summary2 import summary_col
from wooldridge import *
df = dataWoo("phillips")
df = df[(df['year']<1997)]
print(smf.ols('df.inf ~ unem + 1', data=df).fit().summary())
df = dataWoo("intdef")
print(smf.ols('i3 ~ df.inf + df[("def")] + 1', data=df).fit().summary())
df = dataWoo("prminwge")
print(smf.ols('lprepop ~ lmincov + lusgnp', data=df).fit().summary())
df = dataWoo("fertil3")
regf = smf.ols('gfr ~ pe + ww2 + pill', data=df).fit()
tsregf = smf.ols('gfr ~ pe + pe_1 + pe_2 + ww2 + pill', data=df).fit()
print(summary_col([regf, tsregf],stars=True,float_format='%0.3f',
model_names=['Model I\n(b/se)','Model II\n(b/se)'],
info_dict={'N':lambda x: "{0:d}".format(int(x.nobs)),
'R2':lambda x: "{:.3f}".format(x.rsquared),
'Adj.R2':lambda x: "{:.3f}".format(x.rsquared_adj)}))
hypotheses = '(pe = pe_1 = pe_2 = 0)'
f_test = tsregf.f_test(hypotheses)
print(f_test)
print(smf.ols('lchnimp ~lchempi + lgas + lrtwex + befile6 + affile6 + afdec6', data=dataWoo("barium")).fit().summary())
100*(np.exp(-0.5652) -1)
df= dataWoo("fair")
df = df[(df['year']<1996)]
print(smf.ols('demvote ~ partyWH + incum + partyWH:gnews + partyWH:df.inf +1', data=df).fit().summary())
df = dataWoo("hseinv")
reghi = smf.ols('linvpc ~ lprice', data=df).fit()
reghit = smf.ols('linvpc ~ lprice + t', data=df).fit()
print(summary_col([reghi, reghit],stars=True,float_format='%0.3f',
model_names=['Model I\n(b/se)','Model II\n(b/se)'],
info_dict={'N':lambda x: "{0:d}".format(int(x.nobs)),
'R2':lambda x: "{:.3f}".format(x.rsquared),
'Adj.R2':lambda x: "{:.3f}".format(x.rsquared_adj)}))
df = dataWoo("fertil3")
regt = smf.ols('gfr ~ pe + ww2 + pill + t + 1', data=df).fit()
regtsq = smf.ols('gfr ~ pe + ww2 + pill + t + tsq', data=df).fit()
print(summary_col([regt, regtsq],stars=True,float_format='%0.3f',
model_names=['Model I\n(b/se)','Model II\n(b/se)'],
info_dict={'N':lambda x: "{0:d}".format(int(x.nobs)),
'R2':lambda x: "{:.3f}".format(x.rsquared),
'Adj.R2':lambda x: "{:.3f}".format(x.rsquared_adj)}))
print(smf.ols('lprepop ~ lmincov + lusgnp + t', data=dataWoo("prminwge")).fit().summary())
df = dataWoo("hseinv")
print(smf.ols('linvpc ~ lprice + t', data=df).fit().summary())
uhat_reg = smf.ols('linvpc ~ t', data=df).fit()
uhat = df.linvpc - uhat_reg.predict()
detrend = smf.ols('uhat ~ lprice + t', data=df).fit()
trend = smf.ols('linvpc ~ lprice + t', data=df).fit()
print(summary_col([detrend, trend],stars=True,float_format='%0.3f',
model_names=['Model I\n(b/se)','Model II\n(b/se)'],
info_dict={'N':lambda x: "{0:d}".format(int(x.nobs)),
'R2':lambda x: "{:.3f}".format(x.rsquared),
'Adj.R2':lambda x: "{:.3f}".format(x.rsquared_adj)}))
antid_month = smf.ols('lchnimp ~ lchempi + lgas + lrtwex + befile6 + affile6 + afdec6 + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + 1', data=dataWoo("barium")).fit()
print(antid_month.summary())
hypotheses = '(feb = mar = apr = may = jun = jul = aug = sep = oct = nov = dec= 0)'
f_test = antid_month.f_test(hypotheses)
print(f_test)
antid_season = smf.ols('lchnimp ~ lchempi + lgas + lrtwex + befile6 + affile6 + afdec6 + spr + sum + fall + 1', data=dataWoo("barium")).fit()
print(antid_month.summary())
hypotheses = '(spr = sum = fall= 0)'
f_test = antid_season.f_test(hypotheses)
print(f_test)