[R] trouble switching to 'plm' from 'xtabond' and Stata

Aaron M. Swoboda aaron.swoboda at gmail.com
Wed Jan 21 01:05:36 CET 2009


Hello,

I am switching to R from Stata and I am having particular trouble with  
the transition from Stata's 'xtabond' and 'ivreg' commands to the  
"plm" package. I am trying to replicate some of the dynamic panel data  
work using the UK Employment data in Arellano and Bond (1991) and  
available as 'EmplUK' under the 'plm' package.

I have been reading "Panel Data Econometrics in R: The plm Package" by  
Croissant and Millo available at
http://cran.r-project.org/web/packages/plm/vignettes/plm.pdf and "How  
to Do xtabond2: An Introduction to 'Difference' and 'System' GMM in  
Stata" by David Roodman available at http://www.cgdev.org/content/publications/detail/11619 
.  Roodman provides a very clear exposition of how to use Stata to  
analyze the UK Employment Data. I am trying to replicate Roodman's  
results for the UK Employment data using R instead of Stata but I am  
having limited success.

Using:
 >library('plm')
 >data("EmplUK", package = "plm")
 >emp.plm <- plm(dynformula(emp ~ wage + capital + output, lag =  
list(2, 1, 2, 2), log = TRUE), EmplUK, effect = "time")
 >summary(emp.plm)

I am able to perfectly replicate Roodman's "naive model" (on page 17)  
regressing Log(Employment) on its own first and second lags as well as  
current and first lags of log(wages) and current/first/second lags of  
capital and output. Roodman uses the Stata command "regress n nL1 nL2  
w wL1 k kL1 kL2 ys ysL1 ysL2 yr*" (n=employment, w=wages, k=capital,  
ys=output, yr*=year dummy variables, and nL1=first Lag of employment).

I am unable to replicate other results. Specifically, I cannot even  
replicate the Least Squares Dummy Variable model with effects for both  
time and firm (in Stata: xi: regress n nL1 nL2 w wL1 k kL1 kL2 ys ysL1  
ysL2 yr* i.id)

In R I tried:
 >emp.lsdv <- plm(dynformula(emp ~ wage + capital + output, lag =  
list(2, 1, 2, 2), log = TRUE), EmplUK, model="within", effect =  
"twoways")
 >summary(emp.lsdv)

but the coefficients do not match up with results shown on p 18 of  
Roodman. Can someone help point out what I am doing incorrectly?

Can anyone help me implement a First Differences model that also  
includes Year specific effects? First Differencing eliminates the  
individual effects, but I should still be able to add year specific  
effects, no? When I run the commands:

 >emp.fd <- plm(dynformula(emp ~ wage + capital + output, lag =  
list(2, 1, 2, 2), log = TRUE),  EmplUK, model="fd", effect = "time")
 >summary(emp.fd)

the output says it is running a "time" effect First-Difference Model,  
but I am unable to extract any time effects, nor can I find any
differences with the output from:

 >emp.fdid <- plm(dynformula(emp ~ wage + capital + output, lag =  
list(2, 1, 2, 2), log = TRUE),  EmplUK, model="fd", effect =  
"individual")
 >summary(emp.fdid)

What am I missing? Even the degrees of freedom appear the same to me.

Eventually, I would like to understand how to implement instrumental  
variables in the dynamic panel setting using General Method of Moments  
using R rather than Stata, but it seems I have quite a ways to go to  
better understand how 'plm' works. Any other resources anyone could  
point me to would be appreciated.

Thanks,

Aaron




More information about the R-help mailing list