Page 1 of 1

Panel error-correction model using Arellano-Bond GMM

Posted: Mon Aug 15, 2011 2:53 am
by Frauke
Hello,

since I would like to estimate a dynamic panel error-correction model with lagged dependend variables, I used arellano.rpf listed in RATS Procedures and Examples. Furthermore, I applied the procedure ABLags to create more appropriate instruments:

Code: Select all

cal(panelobs=30,a) 1978
all 25//2007:1
open data ecm_e.xls
data(org=columns,format=xls) 1//1978:1 25//2007:1 e y ect

@ABLags de abe 1982:1 2007:1
@ABLags dy aby 1982:1 2007:1

instrument abe aby
linreg(title="Arellano-Bond",instruments,optimalweights,lwindow=panel) de
# de{1} dy{1} ect{1}
I got the following output:

Code: Select all

## REG10. First 1 Instruments Are Linearly Dependent Over Regression Range

Linear Regression - Estimation by Arellano-Bond
Dependent Variable DE
Panel(30) of Annual Data From      1//1979:01 To     25//2007:01
Usable Observations    700      Degrees of Freedom   697
 Total Observations    749      Skipped/Missing       49
Mean of Dependent Variable      0.0048527319
Std Error of Dependent Variable 0.0377267319
Standard Error of Estimate      0.0321541828
Sum of Squared Residuals        0.7206223578
J-Specification(526)            28442.182007
Significance Level of J           0.00000000
Durbin-Watson Statistic             1.937421

   Variable                     Coeff       Std Error      T-Stat     Signif
*******************************************************************************
1.  DE{1}                     0.314689636  0.029855723     10.54035  0.00000000
2.  DY{1}                     0.209647179  0.015282492     13.71813  0.00000000
3.  ECT{1}                   -0.459251404  0.022413273    -20.49015  0.00000000
Why appears this error message? Using levels instead of differences as instruments

Code: Select all

@ABLags e abe 1982:1 2007:1
@ABLags y aby 1982:1 2007:1
even leads to

Code: Select all

## REG10. First 27 Instruments Are Linearly Dependent Over Regression Range
and

Code: Select all

Significance Level of J           1.00000000
By the way, what's the meaning of the J-specification? And how are the Skipped/Missing values calculated?

Thanks a lot in advance for your help!

Best,
Frauke

Re: Panel error-correction model using Arellano-Bond GMM

Posted: Mon Aug 15, 2011 10:47 am
by TomDoan
The redundant instruments are rarely a problem. They most commonly occur because you generate AB instruments that fall out of the data set and are zeroes. Since they're zeros, they effectively get ignored.

The 49 (rather than 50) skipped observations are due to the way that LINREG handles the default range. If you give an explicit range:

linreg(title="Arellano-Bond",instruments,optimalweights,lwindow=panel) de 1//1978:1 25//2007:1
# de{1} dy{1} ect{1}

you'll get the missing count as 50.

One question about what you're doing is where you see the fixed effects entering into your model. The typical ECT regression in a non-panel setting would be

dy1 = a0 + a1 * dy1{1} + a2 * dy2{1} + alpha * ect{1} + u

If, in switching to a panel, you make a0 a fixed effect (which would give heterogeneous trend rates), then you would need to need to apply the difference and instrument method to the model in that form, so you would have doubly differenced data in the regression.

Since you've also done Pesaran-Shin-Smith PMGE estimates, one thing to note is that their technique ignores the correlation induced by demeaning, basically taking a "large T" stance. With 28 usable data points, you might also be better off just doing FE on the error correction form, as the loss of efficiency from using IV rather than FE is likely to exceed the bias due to using FE with lagged variables.

Re: Panel error-correction model using Arellano-Bond GMM

Posted: Mon Aug 15, 2011 3:16 pm
by Frauke
Thanks a lot for the quick reply!
However, some questions remain or arise due to your reply:

1) How can I avoid that instruments fall out of the data set? I would like to use all specified instruments that I would expect to be included.
2) Do I understand correctly that I should estimate the panel error correction model with FE instead of GMM or a panel VAR?
-> In some papers also the PMGE is used to estimate the ecm. Or do you mean that I should estimate the error-correction term with FE?
3) Is it correct/better to take the differenced variables as instruments?
-> Why do I loose more instruments using the lagged variables in level as instrument than those in differences (27 instead of 2)?
4) Why will I receive the error message "## SR10. Missing Values And/Or SMPL Options Leave No Usable Data Points" if I use

Code: Select all

@ABLags(lags=3) e abe 
@ABLags(lags=3) y aby
I also estimated the usual model with constant as you described (but presented only the one without constant last time):

Code: Select all

cal(panelobs=30,a) 1978
all 25//2007:1
open data ecm_e.xls
data(org=columns,format=xls) 1//1978:1 25//2007:1 e y ect

set de = e-e{1}
set dy = y-y{1}

@ABLags de abe 1982:1 2007:1
@ABLags dy aby 1982:1 2007:1

instrument constant abe aby
linreg(title="Arellano-Bond",instruments,optimalweights,lwindow=panel) de 1//1978:1 25//2007:1
# constant de{1} dy{1} ect{1}
Resulting in:

Code: Select all

## REG10. First 2 Instruments Are Linearly Dependent Over Regression Range

Linear Regression - Estimation by Arellano-Bond
Dependent Variable DE
Panel(30) of Annual Data From      1//1978:01 To     25//2007:01
Usable Observations    700      Degrees of Freedom   696
 Total Observations    750      Skipped/Missing       50
Mean of Dependent Variable      0.0048527319
Std Error of Dependent Variable 0.0377267319
Standard Error of Estimate      0.0321048452
Sum of Squared Residuals        0.7173818760
J-Specification(526)             6982.144180
Significance Level of J           0.00000000
Durbin-Watson Statistic             1.906810

   Variable                     Coeff       Std Error      T-Stat     Signif
*******************************************************************************
1.  Constant                 -0.001501169  0.000388868     -3.86035  0.00011322
2.  DE{1}                     0.298169136  0.022167172     13.45093  0.00000000
3.  DY{1}                     0.194975376  0.010959435     17.79064  0.00000000
4.  ECT{1}                   -0.451831341  0.022873480    -19.75350  0.00000000
5) Is it reasonable that the J-specification takes such a high value?

You would make my day answering all my questions!
I really would like to understand everything sufficiently to apply it correctly.
I am looking forward hearing from you.

Re: Panel error-correction model using Arellano-Bond GMM

Posted: Wed Aug 17, 2011 8:38 am
by TomDoan
Frauke wrote:Thanks a lot for the quick reply!
However, some questions remain or arise due to your reply:

1) How can I avoid that instruments fall out of the data set? I would like to use all specified instruments that I would expect to be included.
Redundant instruments aren't due to not having all the specified instruments; it's having a few extras which does no harm. However, with T as high as it is, the number of A-B lag instruments is very high and you probably don't want to use all of them.
Frauke wrote: 2) Do I understand correctly that I should estimate the panel error correction model with FE instead of GMM or a panel VAR?
-> In some papers also the PMGE is used to estimate the ecm. Or do you mean that I should estimate the error-correction term with FE?
PMGE is a "fixed effects" estimator. Your model is actually just a much more restricted version of Pesaran et al's. The only thing that they fix across individuals is the cointegrating vector, while this model fixes everything except the intercept. The most direct comparison would be estimating it using FE rather than FD-IV.
Frauke wrote: 3) Is it correct/better to take the differenced variables as instruments?
-> Why do I loose more instruments using the lagged variables in level as instrument than those in differences (27 instead of 2)?

4) Why will I receive the error message "## SR10. Missing Values And/Or SMPL Options Leave No Usable Data Points" if I use

Code: Select all

@ABLags(lags=3) e abe 
@ABLags(lags=3) y aby
I don't get that. Do you have the most recent ABLAGS procedure? http://www.estima.com/forum/viewtopic.php?f=7&t=1116
Frauke wrote: I also estimated the usual model with constant as you described (but presented only the one without constant last time):

Code: Select all

cal(panelobs=30,a) 1978
all 25//2007:1
open data ecm_e.xls
data(org=columns,format=xls) 1//1978:1 25//2007:1 e y ect

set de = e-e{1}
set dy = y-y{1}

@ABLags de abe 1982:1 2007:1
@ABLags dy aby 1982:1 2007:1

instrument constant abe aby
linreg(title="Arellano-Bond",instruments,optimalweights,lwindow=panel) de 1//1978:1 25//2007:1
# constant de{1} dy{1} ect{1}
Resulting in:

Code: Select all

## REG10. First 2 Instruments Are Linearly Dependent Over Regression Range

Linear Regression - Estimation by Arellano-Bond
Dependent Variable DE
Panel(30) of Annual Data From      1//1978:01 To     25//2007:01
Usable Observations    700      Degrees of Freedom   696
 Total Observations    750      Skipped/Missing       50
Mean of Dependent Variable      0.0048527319
Std Error of Dependent Variable 0.0377267319
Standard Error of Estimate      0.0321048452
Sum of Squared Residuals        0.7173818760
J-Specification(526)             6982.144180
Significance Level of J           0.00000000
Durbin-Watson Statistic             1.906810

   Variable                     Coeff       Std Error      T-Stat     Signif
*******************************************************************************
1.  Constant                 -0.001501169  0.000388868     -3.86035  0.00011322
2.  DE{1}                     0.298169136  0.022167172     13.45093  0.00000000
3.  DY{1}                     0.194975376  0.010959435     17.79064  0.00000000
4.  ECT{1}                   -0.451831341  0.022873480    -19.75350  0.00000000
5) Is it reasonable that the J-specification takes such a high value?
Once the number of instruments gets too high relative to the total number of data points (you're at 526 on 700 data points), the matrix computed by OPTIMALWEIGHTS becomes ill-conditioned, producing a high and unreliable J-statistic. I would be skeptical of anything where the instruments are more than about 25% of the data points.
Frauke wrote: You would make my day answering all my questions!
I really would like to understand everything sufficiently to apply it correctly.
I am looking forward hearing from you.

Re: Panel error-correction model using Arellano-Bond GMM

Posted: Wed Aug 17, 2011 1:01 pm
by Frauke
Thanks a lot for this suggestion!
Indeed, I had the old version of the ABLAGS procedure... The one which is still provided in the Alphabetical Listing of RATS Procedures and Examples (http://www.estima.com/procs_perl/mainpr ... pper.shtml).
Now everything is fine and I am able to restrict the number of lags (so that I don't receive any error message anymore).

Also the suggestion to use PMGE instead of GMM may be quiet useful. However, I am don't know how to define the last two lines shown here

Code: Select all

* Estimate of PMG
*
dec vect[series] uvar(3)
*
* Get residuals from projections onto the "nuisance" variables. This
* is done individual by individual. Note that the error correction
* term actually leaves out the intercept as they are allowing that
* to vary, while constraining the slope coefficients
*
sweep(group=%indiv(t),series=tvar)
# dy y{1} e
# de constant
in pesaranshinsmithjasa.zip (or oecd.prg) in order to estimate an error-correction model of the following form

ΔY_it = alpha_i + beta_1*ΔY_it-1 + beta_2*ΔY_it-2 + gamma_1*ΔE_it-1 + gamma_2*ΔE_it-2 + lambda*ect_t-1 + u_it

(the presented code is still the version to estimate the long-run relationship between Y and E)

Best regards,
Frauke