pgmm(formula, data, effect = "individual", model = "twosteps",
instruments = NULL, gmm.inst, lag.gmm, transformation = "d",
fsm = NULL, index = NULL,...)
## S3 method for class 'pgmm':
summary(object,robust, ...)
## S3 method for class 'summary.pgmm':
print(x, digits = max(3, getOption("digits") - 2),
width = getOption("width"),...)
"dynformula"
"pgmm"
,data.frame
,"individual"
or "twoways"
,"onestep"
or "twosteps"
,"d"
for difference
and "l"
for level) in case of ``system GMM'',"d"
(the default value) for the ``difference GMM''
model or "ld"
for the ``system GMM'',"I"
(identity matrix) or "G"
($=D'D$ where $D$ is the first
difference operator) if transformation="d"
, one of
"GI"
or "full"
if plm.data
,TRUE
, robust inference is performed in the summary,c("pgmm","panelmodel")
, which has the following elements :K
the number of explanatory
variables, Ky
the number of lags of the dependent variable
and Kt
the number of time dummies,print
, summary
and print.summary
methods.pgmm
estimate a model for panel data with the general method of
moments estimator. The description of the model to estimate is
provided with a dynformula
. The GMM instruments are
provided by filling the pgmm.inst
argument with a one side
formula. By default, all the variables of the model which are not used
as GMM instruments are used as normal instruments with the same lag
structure as the one specified in the dynformula
, but the user
may also specified one side formula to indicate expicitly the
variables to use as normal instruments. The lags used for the GMM
instruments are indicated with the lag.gmm
argument. For each
instrument, it is either a vector of length 2 (c(99,3)
indicates to use
all the lags available up to t-3), or a scalar (2 indicates to use the
lags 0, 1 and 2). If a single vector (or scalar) is written, then this
lag structure is replicated for all GMM instruments. Otherwise,
lag.gmm
should be a list of length equal to the number of GMM
instruments.
transformation
indicates how the model should be transformed
for the estimation. "d"
gives the ``difference GMM'' model (see
Arellano and Bond (1991)), "ld"
the ``system GMM'' model (see
Blundell and Bond (1998)).
pgmm
is an attempt to adapt GMM estimators available with the
PDP library for GAUSS (see Arellano and Bound 1998) and OX (see
Doornik, Arelanno and Bond 2006) and with the xtabound2 library for
STATA (see Roodman 2006).Blundell, R. and Bond, S. (1998) Initial Conditions and Moment Restrictions in Dynamic Panel Data Models, Journal of Econometrics, vol. 87, pp.115--143.
Doornik, J., Arellano, M. and Bond, S. (2006) Panel Data Estimation using DPD for Ox.
Roodman, D. (2006) How to do xtabound2 : an Introduction to ``difference'' and ``system'' GMM in Stata, working paper no 103, Center for Global Development.
dynformula
for dynamic formulas, sargan
for
Sargan tests and mtest
for Arellano--Bond 's tests of mulicolinearitydata("EmplUK", package="plm")
## Arelanno Bound 91 table 4b
z1 <- pgmm(dynformula(log(emp)~log(wage)+log(capital)+log(output),list(2,1,0,1)),
data=EmplUK, effect="twoways", model="twosteps",
gmm.inst=~log(emp),lag.gmm=list(c(2,99)))
## Blundel and Bond tab4 (cf DPD for OX p.12 col.4)
z2 <- pgmm(dynformula(log(emp)~log(wage)+log(capital),list(1,1,1)),
data=EmplUK, effect="twoways", model="onestep",
gmm.inst=~log(emp)+log(wage)+log(capital),lag.gmm=c(2,99),
transformation="ld")
summary(z2,robust=TRUE)
Run the code above in your browser using DataLab