Non Linear Functions in Panel Data Models - Algorithm Using Stata Presentation at the Stata User Group Meeting in Berlin 8. April 2005 Fred Ramb and Markus Reitzig
Overview Theoretical models often are nonlinear e.g. in economics the well known q-model Micro panel data NLLS estimator is biased Fixed effects estimator is efficient Standard software package is not available
Overview Motivation Theory q Model Linearized Fixed Effects Estimator Stata Code Pooled Cross Sectional Nonlinear Least Squares Panel Data Random Effects and Fixed Effects Empirical Results Summary
Theory (I): q Model Cobb-Douglas Production function Logarithmic transformation With for small x:
Theory (II): Algorithm Logarithmic transformation With for larger x, linearized version is estimated: with:
Stata Code: NLLS program nlacc if "`1'" =="?" { global S_1 "B_0 X1 C1 C2 C3 T1 T2 T3 T4 T5" global B_0= 0 global X1= 0 global C1= 0 global C2= 0 global C3= 0 global T1= 0 global T2= 0 global T3= 0 global T4= 0 global T5= 0 exit } replace `1'=$B_0 + ln(1+($X1*x2)) + $C1*control1+$C2*control2 + $C3*control3 /* */ + $T1*dyear1 + $T3*dyear2 + $T3*dyear3 + $T4*dyear4 + $T5*dyear5 end nl acc y
Stata Code: Fixed Effects xtreg y x control1 control2 time*, fe gen ex = _b[x] gen y_s = y - (log(1+ex*x)) gen x_s = x / (1+ (ex*x)) log off local i=1 while `i' < 50 { quietly xtreg y_s x_s control1 control2 time*, fe quietly replace ex = ex + _b[x_s] quietly replace y_s = y - (log(1+ex*x)) quietly replace x_s = x2 / (1+ (ex*x)) local i = `i' + 1 } log on replace y_s = y - (log(1+ex*x)) + (ex*(x / (1+ (ex*x)))) xtreg y_s x_s control1 control2 time*, fe
Stata Code: Random Effects xtreg y x control1 control2 time*, re gen exr = _b[x] gen y_sr = y - (log(1+exr*x)) gen x_sr = x / (1+ (exr*x) log off local i=1 while `i' < 50 { quietly replace exr = exr + _b[x_sr] quietly replace y_sr = y-(log(1+exr*x)) quietly replace x_sr = x / (1+ (exr*x)) quietly xtreg y_sr x_sr control1 control2 time*, re local i = `i' + 1 } log on replace y_sr = y-(log(1+exr*x)) + (exr*(x / (1+ (exr*x)))) xtreg y_sr x_sr control1 control2 time*, re xttest0
Stata Code: Hausman Test xtreg y_s x_s control1 control2 time*, fe est store fixed xtreg y_sr x_sr control1 control2 time*, re hausman fixed
Empirical Results: Dataset Sources Hoppenstedt: accounting data Datastream: stock market data Sample 1997-2003 Consolidated financial statements Manufacturing sector Estimation Sample 2,786 observations / 676 firms (Overall) 1,463 observations / 325 firms (HGB) 532 observations / 139 firms (IAS) 791 observations / 212 firms ( US-GAAP)
Empirical Results: Example 1
Empirical Results: Example 2
Summary Pros Different results by estimating pooled cross sectional nonlinear least squares on the one hand and by estimating fixed effects using the algorithm on the other hand. Results using the algorithm are more efficient Cons Do-File is limited to the q-model Heteroskedasticity? Robust estimation is necessary Local or global maximum? Bootstrap is necessary Dynamics? GMM is necessary
Thank you for your attention
Appendix (I)
Appendix (III)