version 10.0 log using chap08, replace * -------------------------------------------- * food expenditure example * OLS, OLS with White's std errors, GLS * -------------------------------------------- use food, clear regress food_exp income regress food_exp income, robust regress food_exp income [aweight = 1/income] * -------------------------------------------- * Breusch-Pagan test * -------------------------------------------- gen z = log(income) regress food_exp income predict ehat, residual gen lnehat2 = log(ehat*ehat) regress lnehat2 z * -------------------------------------------- * Feasible GLS * -------------------------------------------- predict sig2, xb gen wt = exp(sig2) regress food_exp income [aweight = 1/wt] * -------------------------------------------- * cps example * -------------------------------------------- use cps2, clear regress wage educ exper metro * -------------------------------------------- * Rural subsample regression * -------------------------------------------- regress wage educ exper if metro == 0 scalar rmse_r = e(rmse) scalar df_r = e(df_r) * -------------------------------------------- * Urban subsample regression * -------------------------------------------- regress wage educ exper if metro == 1 scalar rmse_m = e(rmse) scalar df_m = e(df_r) * -------------------------------------------- * Groupwise heteroskedastic regression using FGLS * -------------------------------------------- gen rural = 1 - metro gen wt=(rmse_r^2*rural) + (rmse_m^2*metro) regress wage educ exper metro [aweight = 1/wt] * -------------------------------------------- * subsample regressions using dummy variables * for weights * -------------------------------------------- regress wage educ exper [aweight = rural] scalar sr = e(rmse)^2 regress wage educ exper [aweight = metro] scalar sm = e(rmse)^2 scalar df_r = e(df_r) * -------------------------------------------- * Groupwise heteroskedastic regression using FGLS * -------------------------------------------- gen wtall=(sr*rural) + (sm*metro) regress wage educ exper metro [aweight = 1/wtall] regress wage educ exper metro predict ehat, residual twoway (scatter ehat metro) more twoway (scatter ehat wage) more * -------------------------------------------- * Goldfeld Quandt test * -------------------------------------------- scalar GQ = rmse_m^2/rmse_r^2 scalar crit = invFtail(df_m,df_r,.05) scalar pvalue = Ftail(df_m,df_r,GQ) scalar list GQ pvalue crit * -------------------------------------------- * Goldfeld Quandt test for food * expenditure example * -------------------------------------------- use food, clear sort income regress food_exp income in 1/20 scalar s_small = e(rmse)^2 scalar df_small = e(df_r) regress food_exp income in 21/40 scalar s_large = e(rmse)^2 scalar df_large = e(df_r) scalar GQ = s_large/s_small scalar crit = invFtail(df_large,df_small,.05) scalar pvalue = Ftail(df_large,df_small,GQ) scalar list GQ pvalue crit * -------------------------------------------- * LM tests * -------------------------------------------- use food, clear regress food_exp income predict ehat, residual gen ehat2 = ehat*ehat * LM test manually regress ehat2 income scalar LM = e(N)*e(r2) scalar pvalue = chi2tail(1,LM) scalar list LM pvalue * LM test using the built in functions regress food_exp income estat hettest income, iid * Whites test gen inc2 = income^2 regress ehat2 income inc2 scalar LM = e(N)*e(r2) scalar pvalue = chi2tail(2,LM) scalar list LM pvalue * White's test using built in functions regress food_exp income estat imtest, white log close translate chap08.smcl chap08.txt, replace