8 splm: Spatial Panel Data Models in R
The likelihood can be concentrated and maximized with respect to λ, ρ and φ. The estimated
values of λ, ρ and φ are in turn used to update the expression for A and Σ
−1
. These steps
are then repeated until a convergence criterion is met. In other words, for a specific Σ the
estimation can be operationalized by a two step iterative procedure that alternates between
generalized least squares (GLS, for β and σ
2
ν
) and concentrated likelihood (for the remaining
parameters) until convergence.
6
From an implementation point of view there are (at least) a
couple of different ways to proceed. First of all, we decided to include the GLS step within
the objective function to be maximized (i.e., the function to be used as an argument to the
optimizer). In other words, the GLS step is part of the optimization process of the likelihood.
7
We obtain standard errors for β from GLS, and we employ a numerical Hessian to perform
statistical inference on the error components.
8
Illustration
ML estimation of spatial panel random effects models is performed by spml with the argument
model set to "random". The arguments lag and spatial.error allow the estimation of all
combinations of a spatial lag with the different specifications for the error term. The same
specifications but without random effects can be estimated by setting the model to "pooling".
It should be noted that the effects argument can only be set to "individual" in the random
effects context, and it will turn out to be more useful when discussing fixed effects models.
As for other specific parameters, we provide two ways to set the initial values of the parameters
managed through the optional argument initval.
9
The first option is to specify a numeric
vector of initial values. As an alternative, when initval is set to "estimate" the initial values
are retrieved from the estimation of nested specifications. As an example, when estimating the
full model, the initial value for the spatial correlation parameter is taken to be the estimated
ρ from a panel regression with spatially correlated errors. Analogously, the initial value of
λ is the estimated spatial autocorrelation coefficient from the spatial autoregressive model;
and, finally, an initial value for φ is obtained by estimating a random effects model.
Assuming that both the spatial lag and the spatial error are defined according to the same
weights matrix, Munnell’s data lead to the following results for the most general model:
R> sararremod <- spml(formula = fm, data = Produc, index = NULL,
+ listw = usalw, model = "random", lag = TRUE, spatial.error = "b")
R> summary(sararremod)
Spatial panel random effects ML model
Call:
spml(formula = fm, data = Produc, index = NULL, listw = usalw,
model = "random", lag = TRUE, spatial.error = "b")
6
Note that these steps remain valid when the model to be estimated is one of the nested specifications
where, for example, one of the spatial coefficients is restricted to zero.
7
There are many optimizers available under R. Our final choice was to use nlminb. While leading to similar
values for the estimated parameters, it proved to be faster than other optimizers.
8
The numerical Hessian is implemented in the function fdHess available from nlme. The Hessian is evaluated
at the ML parameter values using finite differences.
9
If none of the two options is specified, the optimization will start at zero.