sar {estimateW} | R Documentation |
A Markov Chain Monte Carlo (MCMC) sampler for the panel spatial autoregressive model (SAR) with exogenous spatial weight matrix.
Description
The sampler uses independent Normal-inverse-Gamma priors for the slope and variance parameters,
as well as a four-parameter beta prior for the spatial autoregressive parameter . The function is
used as an illustration on using the
beta_sampler
, sigma_sampler
,
and rho_sampler
classes.
Usage
sar(
Y,
tt,
W,
Z = matrix(1, nrow(Y), 1),
niter = 200,
nretain = 100,
rho_prior = rho_priors(),
beta_prior = beta_priors(k = ncol(Z)),
sigma_prior = sigma_priors()
)
Arguments
Y |
numeric |
tt |
single number greater or equal to 1. Denotes the number of time observations. |
W |
numeric, non-negative and row-stochastic |
Z |
numeric |
niter |
single number greater or equal to 1, indicating the total number of draws. Will be automatically coerced to integer. The default value is 200. |
nretain |
single number greater or equal to 0, indicating the number of draws kept after the burn-in. Will be automatically coerced to integer. The default value is 100. |
rho_prior |
list of prior settings for estimating |
beta_prior |
list containing priors for the slope coefficients,
generated by the smart constructor |
sigma_prior |
list containing priors for the error variance |
Details
The considered panel spatial autoregressive model (SAR) takes the form:
with . The row-stochastic
by
spatial weight
matrix
is non-negative and has zeros on the main diagonal.
is a scalar spatial autoregressive parameter.
(
) collects the
cross-sectional (spatial) observations for time
.
(
) is a matrix of explanatory variables.
(
) is an unknown slope parameter matrix.
After vertically staking the cross-sections
(
),
(
), with
, the final model can be expressed as:
where and
. Note that the input
data matrices have to be ordered first by the cross-sectional spatial units and then stacked by time.
This is a wrapper function calling
sdm
with no spatially lagged dependent variables.
Examples
n = 20; tt = 10
dgp_dat = sim_dgp(n =n, tt = tt, rho = .5, beta3 = c(1,.5), sigma2 = .5)
res = sar(Y = dgp_dat$Y,tt = tt, W = dgp_dat$W,
Z = dgp_dat$Z,niter = 100,nretain = 50)