170 likes | 198 Views
This presentation discusses the use of non-linear functions in panel data models, specifically focusing on the q-model in economics. It explores the biased NLLS estimator, efficient fixed effects estimator, and the lack of standard software packages for such models.
E N D
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)
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