pgmm(formula, data, effect = c("individual","twoways", "none"),
model = c("onestep", "twosteps"),
instruments = NULL, gmm.inst, lag.gmm, lag.form,
transformation = c("d", "ld"),
fsm = 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"
or of class "formula"
. In the latter case, a lag.form
argument should be provided,"pgmm"
,data.frame
,"individual"
or "twoways"
,"onestep"
or "twosteps"
,"d"
for difference
and "l"
for level) in case of ``system GMM'',formula
is a standard formula and not a dynformula
,"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 transfor
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
estimates a model for panel data with a generalized method of moments (GMM) 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-sided 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 specify a one-sided 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 (e.g., c(99,3)
indicates to use
all the lags available up to t-3), or a scalar (e.g, 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 within the DPD library for GAUSS (see Arellano and Bond 1998) and Ox (see Doornik, Arellano and Bond 2006) and with the xtabond2 library for STATA (see Roodman 2009).dynformula
for dynamic formulas, sargan
for Sargan tests and mtest
for Arellano--Bond's tests of multicollinearity.data("EmplUK", package = "plm")
## Arellano and Bond (1991), table 4b
z1 <- pgmm(log(emp) ~ log(wage) + log(capital) + log(output),
lag.form = list(2,1,0,1), data = EmplUK,
effect = "twoways", model = "twosteps",
gmm.inst = ~log(emp), lag.gmm = list(c(2,99)))
summary(z1)
## Blundell and Bond (1998) table 4 (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