Nothing
## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(sp)
library(gstat)
library(DSSP)
library(ggplot2)
data("meuse.all")
data("meuse")
## -----------------------------------------------------------------------------
meuse.train <- meuse.all[1:155, ]
meuse.valid <- meuse.all[156:164, ]
coordinates(meuse.train) <- ~ x + y
coordinates(meuse.valid) <- ~ x + y
## -----------------------------------------------------------------------------
meuse.fit <- DSSP(
formula = log(zinc) ~ 1, data = meuse.train, N = 10000,
pars = c(0.001, 0.001), log_prior = function(x) -2 * log(1 + x)
)
## ---- fig.align="center", fig.width=5.5, fig.height=4.25----------------------
meuse.train$Yhat <- rowMeans(exp(predict(meuse.fit)))
ggplot(as.data.frame(meuse.train), aes(Yhat, zinc)) +
geom_point(size = 3) +
geom_abline() +
labs(
x = "Smoothed Values", y = "Observed Values",
title = "Smoothed vs. Observed Values"
)
## ---- fig.height=3, fig.width=3.475, fig.show='hold'--------------------------
ggplot(data.frame(x = meuse.fit$eta)) +
geom_density(aes(x = x)) +
labs(
x = expression(eta), y = "posterior density",
title = expression("Posterior Density of " * eta)
)
ggplot(data.frame(x = meuse.fit$delta)) +
geom_density(aes(x = x)) +
labs(
x = expression(delta), y = "posterior density",
title = expression("Posterior Density of " * delta)
)
## ---- fig.height=3, fig.width=3.475, fig.show='hold'--------------------------
eta_acf <- acf(meuse.fit$eta, plot = FALSE)
eta_acfdf <- with(eta_acf, data.frame(lag, acf))
ggplot(data = eta_acfdf, mapping = aes(x = lag, y = acf)) +
geom_hline(aes(yintercept = 0)) +
geom_segment(mapping = aes(xend = lag, yend = 0)) +
labs(
x = "Lag", y = "ACF",
title = expression("ACF for Samples from Posterior of " * eta)
) +
theme(plot.title = element_text(hjust = 0.5))
delta_acf <- acf(meuse.fit$delta, plot = FALSE)
delta_acfdf <- with(delta_acf, data.frame(lag, acf))
ggplot(data = delta_acfdf, mapping = aes(x = lag, y = acf)) +
geom_hline(aes(yintercept = 0)) +
geom_segment(mapping = aes(xend = lag, yend = 0)) +
labs(
x = "Lag", y = "ACF",
title = expression("ACF for Samples from Posterior of " * delta)
) +
theme(plot.title = element_text(hjust = 0.5))
## ----fig.height=3, fig.width=3.475, fig.show='hold'---------------------------
eta_cummean_df <- data.frame(
x = 1:length(meuse.fit$eta),
y = cumsum(meuse.fit$eta) / (1:length(meuse.fit$eta))
)
ggplot(eta_cummean_df, aes(x = x, y = y)) +
geom_line() +
labs(
x = "sample", y = expression(eta),
title = bquote(atop("Cumulative Mean of Samples", "from Posterior of" ~ eta))
) +
theme(plot.title = element_text(hjust = 0.5))
delta_cummean_df <- data.frame(
x = 1:length(meuse.fit$delta),
y = cumsum(meuse.fit$delta) / (1:length(meuse.fit$delta))
)
ggplot(delta_cummean_df, aes(x = x, y = y)) +
geom_line() +
labs(
x = "sample", y = expression(delta),
title = bquote(atop("Cumulative Mean of Samples", "from Posterior of" ~ delta))
) +
theme(plot.title = element_text(hjust = 0.5))
## ---- fig.height=3, fig.width=3.475, fig.show='hold'--------------------------
Ypred_mat <- exp(predict(meuse.fit, meuse.valid))
meuse.valid$Ypred <- rowMeans(Ypred_mat)
min_value <- min(c(meuse.valid$Ypred, meuse.valid$zinc))
max_value <- max(c(meuse.valid$Ypred, meuse.valid$zinc))
ggplot(as.data.frame(meuse.valid), aes(x = Ypred, y = zinc)) +
geom_point(size = 3) +
geom_abline() +
labs(
x = "Predicted Values", y = "True Values",
title = "Predicted vs. True Values"
) +
xlim(min_value, max_value) +
ylim(min_value, max_value) +
theme(plot.title = element_text(hjust = 0.5))
ggplot(stack(as.data.frame(t(Ypred_mat)))) +
geom_boxplot(aes(x = ind, y = values)) +
geom_point(
data = data.frame(Y.true = meuse.valid$zinc),
aes(x = 1:9, y = Y.true),
shape = 4, size = 3
) +
labs(
x = "", y = "Y",
title = bquote(atop("Boxplot of Predicted Values of", "Y and True Values (X)"))
) +
theme(plot.title = element_text(hjust = 0.5))
## -----------------------------------------------------------------------------
meuse.fit.covariates <- DSSP(
formula = log(zinc) ~ log(lead) + lime, data = meuse.train, N = 10000,
pars = c(0.001, 0.001), log_prior = function(x) -2 * log(1 + x)
)
summary(meuse.fit.covariates)
## ---- fig.height=7, fig.width=7-----------------------------------------------
plot(meuse.fit.covariates)
## ---- fig.height=3, fig.width=3.475, fig.show='hold'--------------------------
ggplot(
data.frame(log_lead = meuse.fit.covariates$covariates_posterior["log(lead)", ]),
aes(x = log_lead)
) +
geom_density() +
labs(
title = "Posterior density of log(lead)",
y = "posterior density", x = "log(lead)"
)
ggplot(
data.frame(lime = meuse.fit.covariates$covariates_posterior["lime", ]),
aes(x = lime)
) +
geom_density() +
labs(
title = "Posterior density of lime",
y = "posterior density"
)
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.