spsurml | R Documentation |
This function estimates spatial SUR models using maximum-likelihood methods.The number of equations, time periods and cross-sectional units is not restricted.The user can choose between different spatial specifications as described below. The estimation procedure allows for the introduction of linear restrictions on the β parameters associated to the regressors.
spsurml(formula = NULL, data = NULL, na.action, listw = NULL, type = "sim", Durbin = NULL, method = "eigen", zero.policy = NULL, interval = NULL, trs = NULL, R = NULL, b = NULL, X = NULL, Y = NULL, G = NULL, N = NULL, Tm = NULL,p = NULL, control = list() )
formula |
An object type |
data |
An object of class data.frame or a matrix. |
na.action |
A function (default |
listw |
A |
type |
Type of spatial model specification: "sim", "slx", "slm", "sem", "sdm", "sdem", "sarar" or "gnm". Default = "sim". |
Durbin |
If a formula object and model is type "sdm", "sdem" or "slx" the subset of explanatory variables to lag for each equation. |
method |
Similar to the corresponding parameter of
|
zero.policy |
Similar to the corresponding parameter of
|
interval |
Search interval for autoregressive parameter.
Default = |
trs |
Similar to the corresponding parameter of
|
R |
A row vector of order (1xpr) with the set of
r linear constraints on the beta parameters. The
first restriction appears in the first p terms,
the second restriction in the next p terms and so on.
Default = |
b |
A column vector of order (rx1) with the values of
the linear restrictions on the beta parameters.
Default = |
X |
A data matrix of order (NTmGxp) with the observations
of the regressors. The number of covariates in the SUR model is
p = sum(p_{g}) where p_{g} is the number
of regressors (including the intercept) in the g-th equation,
g = 1,...,G). The specification of "X" is only
necessary if not available a |
Y |
A column vector of order (NTmGx1), with the
observations of the explained variables. The ordering of the data
must be (first) equation, (second) time dimension and (third)
cross-sectional/spatial units. The specification of Y is
only necessary if not available a |
G |
Number of equations. |
N |
Number of cross-section or spatial units |
Tm |
Number of time periods. |
p |
Number of regressors by equation, including the intercept.
p can be a row vector of order (1xG), if the number
of regressors is not the same for all the equations, or a scalar,
if the G equations have the same number of regressors. The
specification of p is only necessary if not available a
|
control |
list of additional arguments. |
The list of (spatial) models that can be estimated with the spsurml function are:
"sim": SUR model with no spatial effects
y_{tg} = X_{tg} β_{g} + ε_{tg}
"slx": SUR model with spatial lags of the regressors
y_{tg} = X_{tg} β_{g} + WX_{tg} θ_{g} + ε_{tg}
"slm": SUR model with spatial lags of the explained variables
y_{tg} = ρ_{g} Wy_{tg} + X_{tg} β_{g} + ε_{tg}
"sem": SUR model with spatial errors
y_{tg} = X_{tg} β_{g} + u_{tg}
u_{tg} = λ_{g} Wu_{tg} + ε_{tg}
"sdm": SUR model of the Spatial Durbin type
y_{tg} = ρ_{g} Wy_{tg} + X_{tt} β_{g} + WX_{tg} θ_{g} + ε_{tg}
"sdem": SUR model with spatial lags of the regressors and spatial errors
y_{tg} = X_{tg} β_{g} + WX_{tg} θ_{g} + u_{tg}
u_{tg} = λ_{g} W u_{tg} + ε_{tg}
"sarar": SUR model with spatial lags of the explained variables and spatial errors
y_{tg} = ρ_{g} Wy_{tg} + X_{tg} β_{g} + u_{tg}
u_{tg} = λ_{g} W u_{tg} + ε_{tg}
"gnm": SUR model with spatial lags of the explained variables, regressors and spatial errors
y_{tg} = ρ_{g} Wy_{tg} + X_{tg} β_{g} + WX_{tg} θ_{g} + u_{tg}
u_{tg} = λ_{g} W u_{tg} + ε_{tg}
Object of spsur
class with the output of the
maximum-likelihood estimation of the specified spatial SUR model.
A list with:
call | Matched call. |
type | Type of model specified. |
method | Value of method argument to compute the
Jacobian |
Durbin | Value of Durbin argument. |
coefficients | Estimated coefficients for the regressors. |
deltas | Estimated spatial coefficients. |
rest.se | Estimated standard errors for the estimates of beta. |
deltas.se | Estimated standard errors for the estimates of
the spatial coefficients (deltas ). |
resvar | Estimated covariance matrix for the estimates of
beta's and spatial coefficients (deltas ). |
LL | Value of the likelihood function at the maximum-likelihood estimates. |
R2 | Coefficient of determination for each equation, obtained as the squared of the correlation coefficient between the corresponding explained variable and fitted values. |
R2 pooled | Global coefficient of determination
obtained for the set of the G equations.
It is computed in the same way than uniequational R2 but
joining the dependent variable and fitted values in single vectors
instead of one vector for each equation. |
Sigma | Estimated covariance matrix for the residuals of the G equations. |
fdHess | Logical value of fdHess argument when
computing numerical covariances. |
residuals | Residuals of the model. |
df.residuals | Degrees of freedom for the residuals. |
fitted.values | Estimated values for the dependent variables. |
BP | Value of the Breusch-Pagan statistic to test the null hypothesis of diagonality among the errors of the G equations. |
LMM | Marginal Lagrange Multipliers, LM(ρ|λ) and LM(λ|ρ), to test for omitted spatial effects in the specification. |
G | Number of equations. |
N | Number of cross-sections or spatial units. |
Tm | Number of time periods. |
p | Number of regressors by equation (including intercepts). |
Y | If data is NULL, vector Y of the explained variables of the SUR model. |
X | If data is NULL, matrix X of the regressors of the SUR model. |
W | Spatial weighting matrix. |
zero.policy | Logical value of zero.policy . |
interval | Search interval for spatial parameter. |
listw_style | Style of neighborhood matrix W . |
trs | Either NULL or vector of powered spatial weights
matrix traces output by trW . |
insert | Logical value to check if is.null(trs) . |
tol | Numerical value for the tolerance for the estimation algorithm until convergence. Default = 1e-3. |
maxit | Maximum number of iterations until convergence; it must be an integer value. Default = 200. |
trace | A logical value to show intermediate results during
the estimation process. Default = TRUE . |
fdHess | Compute variance-covariance matrix using the numerical
hessian. Suited for large samples. Default = FALSE |
Imult | default 2; used for preparing the Cholesky decompositions for updating in the Jacobian function |
super | if NULL (default), set to FALSE to use
a simplicial decomposition for the sparse Cholesky decomposition and
method "Matrix_J", set to as.logical(NA) for method "Matrix", if
TRUE , use a supernodal decomposition |
cheb_q | default 5; highest power of the approximating polynomial for the Chebyshev approximation |
MC_p | default 16; number of random variates |
MC_m | default 30; number of products of random variates matrix and spatial weights matrix |
spamPivot | default "MMD", alternative "RCM" |
in_coef | default 0.1, coefficient value for initial Cholesky decomposition in "spam_update" |
type | default "MC", used with method "moments"; alternatives "mult" and "moments", for use if trs is missing |
correct | default TRUE , used with method "moments" to
compute the Smirnov/Anselin correction term |
trunc | default TRUE , used with method "moments" to
truncate the Smirnov/Anselin correction term |
SE_method | default "LU", may be "MC" |
nrho | default 200, as in SE toolbox; the size of the first stage lndet grid; it may be reduced to for example 40 |
interpn | default 2000, as in SE toolbox; the size of the second stage lndet grid |
SElndet | default NULL , may be used to pass a
pre-computed SE toolbox style matrix of coefficients and their lndet
values to the "SE_classic" and "SE_whichMin" methods |
LU_order | default FALSE ; used in "LU_prepermutate",
note warnings given for lu method |
pre_eig | default NULL ; may be used to pass a
pre-computed vector of eigenvalues |
Fernando Lopez | fernando.lopez@upct.es |
Roman Minguez | roman.minguez@uclm.es |
Jesus Mur | jmur@unizar.es |
Anselin, L. (1988). Spatial econometrics: methods and models. Dordrecht: Kluwer
Bivand, R.S. and Piras G. (2015). Comparing Implementations of Estimation Methods for Spatial Econometrics. Journal of Statistical Software, 63(18), 1-36. <doi: 10.18637/jss.v063.i18>
Bivand, R. S., Hauke, J., and Kossowski, T. (2013). Computing the Jacobian in Gaussian spatial autoregressive models: An illustrated comparison of available methods. Geographical Analysis, 45(2), 150-179. <doi:10.1111/gean.12008>
Breusch T., Pagan A. (1980). The Lagrange multiplier test and its applications to model specification in econometrics. Rev Econ Stud 47: 239-254
Cliff, A.D. and Ord, J.K. (1981). Spatial processes: Models and applications, Pion.
LeSage J and Pace, R.K. (2009). Introduction to Spatial Econometrics. CRC Press, Boca Raton.
Lopez, F.A., Mur, J., and Angulo, A. (2014). Spatial model selection strategies in a SUR framework. The case of regional productivity in EU. Annals of Regional Science, 53(1), 197-220. <doi:10.1007/s00168-014-0624-2>
Minguez, R., Lopez, F.A. and Mur, J. (2022). spsur: An R Package for Dealing with Spatial Seemingly Unrelated Regression Models. Journal of Statistical Software, 104(11), 1–43. <doi:10.18637/jss.v104.i11>
Mur, J., Lopez, F., and Herrera, M. (2010). Testing for spatial effects in seemingly unrelated regressions. Spatial Economic Analysis, 5(4), 399-440. <doi:10.1080/17421772.2010.516443>
Ord, J.K. (1975). Estimation methods for models of spatial interaction, Journal of the American Statistical Association, 70, 120-126.
spsur3sls
, lagsarlm
,
lmtestspsur
, wald_betas
,
lr_betas
################################################# ######## CROSS SECTION DATA (G>1; Tm=1) ######## ################################################# #### Example 1: Spatial Phillips-Curve. Anselin (1988, p. 203) rm(list = ls()) # Clean memory data(spc) Tformula <- WAGE83 | WAGE81 ~ UN83 + NMR83 + SMSA | UN80 + NMR80 + SMSA spcsur.sim <- spsurml(formula = Tformula, data = spc, type = "sim") summary(spcsur.sim) # All the coefficients in a single table. print(spcsur.sim) # Plot of the coefficients of each equation in different graphs plot(spcsur.sim) ## A SUR-SLX model ## (listw argument can be either a matrix or a listw object ) spcsur.slx <- spsurml(formula = Tformula, data = spc, type = "slx", listw = Wspc, Durbin = TRUE) summary(spcsur.slx) # All the coefficients in a single table. print(spcsur.slx) # Plot of the coefficients in a single graph if (require(gridExtra)) { pl <- plot(spcsur.slx, viewplot = FALSE) grid.arrange(pl$lplbetas[[1]], pl$lplbetas[[2]], nrow = 2) } ## VIP: The output of the whole set of the examples can be examined ## by executing demo(demo_spsurml, package="spsur") ### A SUR-SLM model spcsur.slm <- spsurml(formula = Tformula, data = spc, type = "slm", listw = Wspc) summary(spcsur.slm) if (require(gridExtra)) { pl <- plot(spcsur.slm, viewplot = FALSE) grid.arrange(pl$lplbetas[[1]], pl$lplbetas[[2]], pl$pldeltas, nrow = 3) } ### A SUR-SDM model spcsur.sdm <- spsurml(formula = Tformula, data = spc, type = "sdm", listw = Wspc) summary(spcsur.sdm) print(spcsur.sdm) if (require(gridExtra)) { pl <- plot(spcsur.sdm, viewplot = FALSE) grid.arrange(pl$lplbetas[[1]], pl$lplbetas[[2]], pl$pldeltas, nrow = 3) } ## A SUR-SDM model with different spatial lags in each equation TformulaD <- ~ UN83 + NMR83 + SMSA | UN80 spcsur.sdm2 <- spsurml(formula = Tformula, data = spc, type = "sdm", listw = Wspc, Durbin = TformulaD) summary(spcsur.sdm2) if (require(gridExtra)) { pl <- plot(spcsur.sdm2, viewplot = FALSE) grid.arrange(pl$lplbetas[[1]], pl$lplbetas[[2]], pl$pldeltas, nrow = 3) } ################################################## ######### CLASSIC PANEL DATA G=1; Tm>1 ######## ################################################## # ##### Example 2: Homicides + Socio-Economics (1960-90) ## Homicides and selected socio-economic characteristics for continental ## U.S. counties. ## Data for four decennial census years: 1960, 1970, 1980 and 1990. ## \url{https://geodacenter.github.io/data-and-lab/ncovr/} ### It usually requires 1-2 minutes maximum... rm(list = ls()) # Clean memory ### Read NCOVR.sf object data(NCOVR, package = "spsur") nbncovr <- spdep::poly2nb(NCOVR.sf, queen = TRUE) ### Some regions with no links... lwncovr <- spdep::nb2listw(nbncovr, style = "W", zero.policy = TRUE) Tformula <- HR80 | HR90 ~ PS80 + UE80 | PS90 + UE90 ### A SUR-SIM model NCOVRSUR.sim <- spsurml(formula = Tformula, data = NCOVR.sf, type = "sim") summary(NCOVRSUR.sim) if (require(gridExtra)) { pl <- plot(NCOVRSUR.sim, viewplot = FALSE) grid.arrange(pl$lplbetas[[1]], pl$lplbetas[[2]], nrow = 3) } ### A SUR-SLX model NCOVRSUR.slx <- spsurml(formula = Tformula, data = NCOVR.sf, type = "slx", listw = lwncovr, zero.policy = TRUE) print(NCOVRSUR.slx) if (require(gridExtra)) { pl <- plot(NCOVRSUR.slx, viewplot = FALSE) grid.arrange(pl$lplbetas[[1]], pl$lplbetas[[2]], nrow = 2) } ### A SUR-SLM model ### method = "Matrix" (Cholesky) instead of "eigen" ### (fdHess = TRUE to compute numerical covariances ) NCOVRSUR.slm <- spsurml(formula = Tformula, data = NCOVR.sf, type = "slm", listw = lwncovr, method = "Matrix", zero.policy = TRUE, control = list(fdHess = TRUE)) summary(NCOVRSUR.slm) if (require(gridExtra)) { pl <- plot(NCOVRSUR.slm, viewplot = FALSE) grid.arrange(pl$lplbetas[[1]], pl$lplbetas[[2]], pl$pldeltas, nrow = 3) } # LR test for nested models anova(NCOVRSUR.sim, NCOVRSUR.slm)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.