Nothing
## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE,
eval = TRUE,
fig.align = "center",
fig.width = 3.5,
fig.height = 3
)
## ----message = FALSE, warning = FALSE-----------------------------------------
library(geostan)
data(georgia)
## -----------------------------------------------------------------------------
data(georgia)
georgia$insurance <- georgia$insurance / 100
georgia$insurance.se <- georgia$insurance.se / 100
## -----------------------------------------------------------------------------
SE <- data.frame(insurance = georgia$insurance.se)
## -----------------------------------------------------------------------------
C <- shape2mat(georgia, "B", quiet = TRUE)
cars <- prep_car_data(C)
## -----------------------------------------------------------------------------
ME_list <- prep_me_data(se = SE,
car_parts = cars,
logit = TRUE
)
## ----eval = FALSE, message = FALSE--------------------------------------------
# fit <- stan_car(deaths.male ~ offset(log(pop.at.risk.male)) + insurance,
# centerx = TRUE,
# data = georgia,
# family = poisson(),
# car_parts = cars)
## ----eval = TRUE, message = FALSE---------------------------------------------
fit <- stan_car(deaths.male ~ offset(log(pop.at.risk.male)) + insurance,
centerx = TRUE,
ME = ME_list,
family = poisson(),
data = georgia,
car_parts = cars,
iter = 650, # for demo speed
quiet = TRUE,
)
print(fit)
## ----eval = FALSE-------------------------------------------------------------
# fit2 <- stan_car(deaths.male ~ offset(log(pop.at.risk.male)) + insurance,
# centerx = TRUE,
# ME = ME_list,
# drop = 'x_true',
# family = poisson(),
# data = georgia,
# car_parts = cars
# )
## ----fig.width = 8------------------------------------------------------------
me_diag(fit, 'insurance', georgia)
## -----------------------------------------------------------------------------
mu.x <- as.matrix(fit, pars = "mu_x_true")
dim(mu.x)
head(mu.x)
mean(mu.x)
## -----------------------------------------------------------------------------
print(fit$stanfit, pars = c("mu_x_true", "car_rho_x_true", "sigma_x_true"))
## -----------------------------------------------------------------------------
x <- as.matrix(fit, pars = "x_true")
dim(x)
## -----------------------------------------------------------------------------
x.mu <- apply(x, 2, mean)
head(x.mu)
## ----fig.width = 4, fig.height = 4--------------------------------------------
res <- resid(fit)$mean
plot(x.mu, res,
xlab = 'Insurance rate',
ylab = 'Residual',
type = 'n',
bty = 'L')
abline(h = 0)
points(x.mu, res,
col = 4,
pch = 20)
## ----eval = FALSE-------------------------------------------------------------
# ME_nsp <- prep_me_data(
# se = data.frame(insurance = georgia$insurance.se),
# logit = TRUE
# )
# fit_nsp <- stan_glm(log(rate.male) ~ insurance, data = georgia, ME = ME_nsp)
## ----eval = FALSE-------------------------------------------------------------
# georgia$college <- georgia$college / 100
# georgia$college.se <- georgia$college.se / 100
#
# se = data.frame(insurance = georgia$insurance.se,
# college = georgia$college.se)
#
# ME <- prep_me_data(se = se, logit = c(TRUE, TRUE))
#
# fit <- stan_glm(deaths.male ~ offset(log(pop.at.risk.male)) + insurance + college,
# ME = ME,
# re = ~ GEOID,
# family = poisson(),
# data = georgia,
# iter = 700
# )
## ----eval = FALSE-------------------------------------------------------------
# data(georgia)
#
# # income in $1,000s
# georgia$income <- georgia$income / 1e3
# georgia$income.se <- georgia$income.se /1e3
#
# # create log income
# georgia$log_income <- log( georgia$income )
#
# # create SEs for log income
# log_income_se <- se_log( georgia$income, georgia$income.se )
#
# # prepare spatial CAR data
# C <- shape2mat(georgia, "B")
# cars <- prep_car_data(C)
#
# # prepare ME data
# se <- data.frame( log_income = log_income_se )
# ME <- prep_me_data( se = se, car_parts = cars )
#
# # fit model
# fit <- stan_car(deaths.male ~ offset(log(pop.at.risk.male)) + log_income,
# ME = ME,
# car_parts = cars,
# family = poisson(),
# data = georgia,
# cores = 4
# )
#
# # check ME model
# me_diag(fit, 'log_income', georgia)
#
# # check disease model
# sp_diag(fit, georgia)
#
# # coefficient estimates
# plot(fit)
#
# # plot the income-mortality gradient
# values <- seq( min(georgia$log_income), max(georgia$log_income), length.out = 100 )
# new_data <- data.frame(pop.at.risk.male = 1,
# log_income = values)
#
# preds <- predict(fit, new_data, type = 'response')
# preds$Income <- exp( preds$log_income )
# preds$Mortality <- preds$mean * 100e3
#
# plot(preds$Income, preds$Mortality,
# type = 'l',
# xlab = "Income",
# ylab = "Deaths per 100,000")
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.