pgmm  R Documentation 
Generalized method of moments estimation for static or dynamic models with panel data.
pgmm(
formula,
data,
subset,
na.action,
effect = c("twoways", "individual"),
model = c("onestep", "twosteps"),
collapse = FALSE,
lost.ts = NULL,
transformation = c("d", "ld"),
fsm = NULL,
index = NULL,
...
)
## S3 method for class 'pgmm'
coef(object, ...)
## S3 method for class 'pgmm'
summary(object, robust = TRUE, time.dummies = FALSE, ...)
## S3 method for class 'summary.pgmm'
print(
x,
digits = max(3, getOption("digits")  2),
width = getOption("width"),
...
)
formula 
a symbolic description for the model to be estimated. The preferred interface is now to indicate a multi–part formula, the first two parts describing the covariates and the GMM instruments and, if any, the third part the 'normal' instruments, 
data 
a 
subset 
see 
na.action 
see 
effect 
the effects introduced in the model, one of

model 
one of 
collapse 
if 
lost.ts 
the number of lost time series: if 
transformation 
the kind of transformation to apply to the
model: either 
fsm 
the matrix for the one step estimator: one of 
index 
the indexes, 
... 
further arguments. 
object, x 
an object of class 
robust 
for pgmm's summary method: if 
time.dummies 
for pgmm's summary method: if 
digits 
digits, 
width 
the maximum length of the lines in the print output. 
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 multi–part formula which is (or which
is coerced to) a Formula
object. The first right–hand side part
describes the covariates. The second one, which is mandatory,
describes the GMM instruments. The third one, which is optional,
describes the 'normal' instruments. 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 model.
y~lag(y, 1:2)+lag(x1, 0:1)+lag(x2, 0:2)  lag(y, 2:99)
is similar to
y~lag(y, 1:2)+lag(x1, 0:1)+lag(x2, 0:2)  lag(y, 2:99)  lag(x1, 0:1)+lag(x2, 0:2)
and indicates that all lags from 2 of y
are used
as GMM instruments.
transformation
indicates how the model should be transformed for
the estimation. "d"
gives the "difference GMM" model
\insertCite@see @AREL:BOND:91plm, "ld"
the "system GMM" model
\insertCite@see @BLUN:BOND:98plm.
pgmm
is an attempt to adapt GMM estimators available within the
DPD library for GAUSS \insertCite@see @AREL:BOND:98plm and Ox
\insertCite@see @DOOR:AREL:BOND:12plm and within the xtabond2
library for Stata \insertCite@see @ROOD:09plm.
An object of class c("pgmm","panelmodel")
, which has the
following elements:
coefficients 
the vector (or the list for fixed effects) of coefficients, 
residuals 
the list of residuals for each individual, 
vcov 
the covariance matrix of the coefficients, 
fitted.values 
the vector of fitted values, 
df.residual 
degrees of freedom of the residuals, 
model 
a list containing the variables used for the estimation for each individual, 
W 
a list containing the instruments for each individual (a matrix per list element) (two lists in case of system GMM, 
A1 
the weighting matrix for the one–step estimator, 
A2 
the weighting matrix for the two–steps estimator, 
call 
the call. 
In addition, it has attribute "pdim"
which contains the pdim object for
the model.
It has print
, summary
and print.summary
methods.
Yves Croissant
sargan()
for the Hansen–Sargan test and mtest()
for
Arellano–Bond's test of serial correlation. dynformula()
for
dynamic formulas (deprecated).
data("EmplUK", package = "plm")
## Arellano and Bond (1991), table 4 col. b
z1 < pgmm(log(emp) ~ lag(log(emp), 1:2) + lag(log(wage), 0:1)
+ log(capital) + lag(log(output), 0:1)  lag(log(emp), 2:99),
data = EmplUK, effect = "twoways", model = "twosteps")
summary(z1, robust = FALSE)
## Blundell and Bond (1998) table 4 (cf. DPD for OX p. 12 col. 4)
z2 < pgmm(log(emp) ~ lag(log(emp), 1)+ lag(log(wage), 0:1) +
lag(log(capital), 0:1)  lag(log(emp), 2:99) +
lag(log(wage), 2:99) + lag(log(capital), 2:99),
data = EmplUK, effect = "twoways", model = "onestep",
transformation = "ld")
summary(z2, robust = TRUE)
## Not run:
## Same with the old formula or dynformula interface
## Arellano and Bond (1991), table 4, col. b
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, robust = FALSE)
## 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)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.