Nothing
## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ---- message=FALSE, warning=FALSE, results = "hide", eval=FALSE--------------
# # CRAN release
# install.packages("spfilteR")
#
# # GitHub
# library(devtools)
# devtools::install_github("sjuhl/spfilteR")
## ----message=FALSE, warning=FALSE---------------------------------------------
# load the package
library(spfilteR)
# load the dataset
data("fakedata")
# take a look at the connectivity matrix and the variables
dim(W)
head(fakedataset)
## -----------------------------------------------------------------------------
# select continuous variables
cont <- cbind(fakedataset$x1, fakedataset$x2, fakedataset$x3, fakedataset$negative)
colnames(cont) <- c("x1", "x2", "x3", "negative")
# Moran test of spatial autocorrelation
(I <- MI.vec(x = cont, W = W, alternative = 'greater'))
## -----------------------------------------------------------------------------
MI.vec(x = fakedataset$negative, W = W, alternative = 'lower')
## -----------------------------------------------------------------------------
# decompose Moran's I
(I.dec <- MI.decomp(x = cont, W = W, nsim=100))
## -----------------------------------------------------------------------------
# I = 'I+' + 'I-'
cbind(I[, "I"], I.dec[, "I+"] + I.dec[, "I-"])
## -----------------------------------------------------------------------------
# define variables
y <- fakedataset$x1
X <- cbind(1, fakedataset$x2)
# OLS regression
ols.resid <- resid(lm(y ~ X))
# Moran test of residual spatial autocorrelation
MI.resid(resid = ols.resid, W = W, alternative = 'greater')
## -----------------------------------------------------------------------------
# ESF model
(lm.esf <- lmFilter(y = y, x = X, W = W, objfn = 'MI', positive = TRUE,
ideal.setsize = TRUE, tol = .2))
summary(lm.esf, EV = TRUE)
## ----fig_out, out.width = '50%', fig.align='center'---------------------------
plot(lm.esf)
## -----------------------------------------------------------------------------
### Alternative selection criteria:
# maximization of model fit
lmFilter(y = y, x = X, W = W, objfn = 'R2', positive = TRUE, ideal.setsize = TRUE)
# significance of residual autocorrelation
lmFilter(y = y, x = X, W = W, objfn = 'pMI', sig = .1, bonferroni = FALSE,
positive = TRUE, ideal.setsize = TRUE)
# significance of eigenvectors
lmFilter(y = y, x = X, W = W, objfn = 'p', sig = .1, bonferroni = TRUE,
positive = TRUE, ideal.setsize = TRUE)
# all eigenvectors in the candidate set
lmFilter(y = y, x = X, W = W, objfn = 'all', positive = TRUE, ideal.setsize = TRUE)
## -----------------------------------------------------------------------------
# define outcome variables
y.bin <- fakedataset$indicator
y.count <- fakedataset$count
# ESF logit model
(logit.esf <- glmFilter(y = y.bin, x = NULL, W = W, objfn = 'p', model = 'logit',
optim.method = 'BFGS', sig = .1, bonferroni = FALSE,
positive = TRUE, ideal.setsize = FALSE, alpha = .25,
resid.type = 'deviance', boot.MI = 100))
# ESF probit model
(probit.esf <- glmFilter(y = y.bin, x = NULL, W = W, objfn = 'p', model = 'probit',
optim.method = 'BFGS', sig = .1, bonferroni = FALSE,
positive = TRUE, ideal.setsize = FALSE, alpha = .25,
resid.type = 'deviance', boot.MI = 100))
# ESF poisson model
(poisson.esf <- glmFilter(y = y.count, x = NULL, W = W, objfn = 'BIC', model = 'poisson',
optim.method = 'BFGS', positive = TRUE, ideal.setsize = FALSE,
alpha = .25, resid.type = 'deviance', boot.MI = 100))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.