hetero_general {BSPADATA} | R Documentation |
Bayesian fitting of Spatial General Model with heteroscedastic normal error term.
Description
Performs the Bayesian fitting of Heterocedastic Spatial General Model with normal error term
Usage
hetero_general(formulamean,formulavar,data,W1,W2=NULL,nsim,burn,step,prior,initial,
kernel="normal",mateq=TRUE,seed=0,impacts=TRUE)
Arguments
formulamean |
Object of class formula with the description of the model to be fitted for the mean. |
formulavar |
Object of class formula with the description of the model to be fitted for the variance. |
data |
Data frame object with covariates of model |
W1 |
Object of class matrix, nb or listw related to Spatial Contiguity Matrix for response variable, Anselin(1988) |
W2 |
Object of class matrix, nb or listw related to Spatial Contiguity Matrix for disturbance terms, Anselin(1988) |
nsim |
A number that indicates the amount of iterations |
burn |
A number that indicates the amount of iterations to be burn at the beginning of the chain |
step |
A number that indicates the length between samples in chain that generate the point estimates for each parameter. |
prior |
List with prior distributions of the parameters in the hom_sem model |
initial |
List with the initial values for the chains of each the parameters of the hom_sem model |
kernel |
Distribution used in transition kernel to get samples of lambda, it can be "uniform" or "normal" |
mateq |
Logical variable indicating whether W1=w2 or not. |
impacts |
If impacts=TRUE then impacts for the model are computed, as suggested in Le Sage and Pace (2009). |
seed |
Random seed for generating the samples of the posterior distributions. |
Details
hetero_general is a function made in order to fit Spatial General Model with a normal heteroscedatic disturbance term through MCMC methods as Metropolis-Hastings algorithm, under two proposals for trasition kernel to get samples of spatial lag parameters, rho and lambda, and aided by working variables approach to get samples of conditional posterior distribution of gamma vector.
Value
List with the following:
summary |
Data frame with summary statistics of the marginal posterior distributions of the parameters of the model |
Acceptance_Rate |
Acceptance rate for the samples of rho, lambda and gamma. |
Criteria |
List with values of both the Bayesian Information Criterion (BIC) and the Deviance Information Criterion (DIC) |
chains |
Object of class mcmc with the samples of the marginal posterior distribution of each of the parameters of the model |
impacts |
Summary of the impacts for each explanatory variable of the model |
Author(s)
Jorge Sicacha-Parada <jasicachap@unal.edu.co>, Edilberto Cepeda-Cuervo <ecepedac@unal.edu.co>
References
1. Cepeda C. E. (2001). Modelagem da variabilidade em modelos lineares generalizados. Unpublished Ph.D. tesis. Instituto de Matematicas. Universidade Federal do Rio do Janeiro.
2.Cepeda, E. and Gamerman D. (2005). Bayesian Methodology for modeling parameters in the two-parameter exponential family. Estadistica 57, 93 105.
3.Cepeda C., E. and Gamerman D. (2001). Bayesian Modeling of Variance Heterogeneity in Normal Regression Models. Brazilian Journal of Probability and Statistics. 14, 207-221.
4.Luc Anselin, Spatial Econometrics: Methods and Models, Kluwer Academic, Boston, 1988.
5. D. Gamerman, Markov Chains Monte Carlo: Stochastic Simulation for bayesian Inference, Chapman and Hall, 1997.
6. James Le Sage and Kelley Pace, Introduction to Spatial Econometrics, Chapman & Hall/CRC, Boca Raton, 2009.
Examples
data(oldcol)
n=49
x0=rep(1,n)
x1=runif(n,0,400)
x2=runif(n,10,23)
x3=runif(n,0,10)
X=cbind(x0,x1,x2)
Z=cbind(x0,x1,x3)
gammas=c(-8,0.026,-0.4)
Sigma=diag(c(exp(Z%*%gammas)))
W1=COL.nb
matstand=nb2mat(W1)
A=diag(n)-0.70*matstand
B=diag(n)-0.20*matstand
mu=solve(A)%*%(-35+0.35*x1-1.7*x2)
Sigma2=t(solve(A)%*%solve(B))%*%Sigma%*%solve(A)%*%solve(B)
y=t(rmvnorm(1,mu,Sigma2))
formulamean <- y ~ x0 + x1 + x2
formulavar <- ~ x0 + x1 + x3
data <- data.frame(y=y,x0=x0,x1=x1,x2=x2,x3=x3)
prior <- list(b_pri=rep(0,3),B_pri=diag(rep(1000,3)),
g_pri=rep(0,3),G_pri=diag(rep(1000,3)))
initial <- list(beta_0=rep(0,3),gamma_0=c(0,0,0),rho_0=0.5,lambda_0=0.5)
hetero_general(formulamean=formulamean,formulavar=formulavar,data=data,W1=W1,
nsim=500,burn=25,step=5,prior=prior,initial=initial,
kernel="normal",mateq=TRUE)