#include #import // Dynamic Panel Data Estimation with Time Dummies // See on detail // http://www.ip.kyusan-u.ac.jp/J/keizai/kitazawa/SOFT/TSP_DPD1/index.htm main() { decl dpd= new DPD(), time=timer() , x ; // OK up to 10 dpd.LoadObs("yxdata.txt", 4, 470, 1, 1, 1, FALSE) ; dpd.Rename("Year", "Var1") ; dpd.Rename("Idx", "Var2") ; dpd.Rename("y", "Var3") ; dpd.Rename("x", "Var4") ; dpd.Info() ; dpd.SetYear("Year") ; // dpd.SetGroup("Idx"); print("\n\n***** [FirstA-B]: First Differenced Estimator A-B *****") ; dpd.Select(Y_VAR, {"y", 0, 1}) ; // first lag dpd.Select(X_VAR, {"x", 0, 0}) ; dpd.Gmm("y", 2, 99) ; dpd.Gmm("x", 2, 99) ; // dpd.SetDummies(D_NONE) ; dpd.SetDummies(D_TIME) ; dpd.SetOptions(0) ; // Without Windmeijer's correction dpd.SetTest(1, 2) ; // Wald and Sargan, AR(2) dpd.SetMethod(M_2STEP) ; dpd.Estimate() ; // 1, 2-step estimation print("\n\n***** [SystemB-B]: System Estimator B-B *****") ; dpd.GmmLevel("y", 1, 1); dpd.GmmLevel("x", 1, 1); dpd.SetMethod(M_2STEP); dpd.Estimate(); // 1, 2-step estimation print("\n time: ", timespan(time), "\n") ; delete dpd ; }