Visual diagnostics for areal data and model residuals
sp_diag(y, shape, ...)
# S3 method for geostan_fit
sp_diag(
y,
shape,
name = "Residual",
plot = TRUE,
mc_style = c("scatter", "hist"),
style = c("W", "B"),
w = y$C,
rates = TRUE,
binwidth = function(x) 0.5 * stats::sd(x, na.rm = TRUE),
size = 0.1,
...
)
# S3 method for numeric
sp_diag(
y,
shape,
name = "y",
plot = TRUE,
mc_style = c("scatter", "hist"),
style = c("W", "B"),
w = shape2mat(shape, match.arg(style)),
binwidth = function(x) 0.5 * stats::sd(x, na.rm = TRUE),
...
)
A numeric vector, or a fitted geostan
model (class geostan_fit
).
An object of class sf
or another spatial object coercible to sf
with sf::st_as_sf
such as SpatialPolygonsDataFrame
.
Additional arguments passed to residuals.geostan_fit
.
The name to use on the plot labels; default to "y" or, if y
is a geostan_fit
object, to "Residuals".
If FALSE
, return a list of gg
plots.
Character string indicating how to plot the residual Moran coefficient (only used if y
is a fitted model): if mc = "scatter"
, then moran_plot
will be used with the marginal residuals; if mc = "hist"
, then a histogram of Moran coefficient values will be returned, where each plotted value represents the degree of residual autocorrelation in a draw from the join posterior distribution of model parameters.
Style of connectivity matrix; if w
is not provided, style
is passed to shape2mat
and defaults to "W" for row-standardized.
An optional spatial connectivity matrix; if not provided and y
is a numeric vector, one will be created using shape2mat
. If w
is not provided and y
is a fitted geostan
model, then the spatial connectivity matrix that is stored with the fitted model (y$C
) will be used.
For Poisson and binomial models, convert the outcome variable to a rate before plotting fitted values and residuals. Defaults to rates = TRUE
.
A function with a single argument that will be passed to the binwidth
argument in geom_histogram
. The default is to set the width of bins to 0.5 * sd(x)
.
Point size and linewidth for point-interval plot of observed vs. fitted values (passed to geom_pointrange
).
A grid of spatial diagnostic plots. If plot = TRUE
, the ggplots
are drawn using grid.arrange; otherwise, they are returned in a list. For the geostan_fit
method, the underlying data for the Moran coefficient (as required for mc_style = "hist"
) will also be returned if plot = FALSE
.
When provided with a numeric vector, this function plots a histogram, Moran scatter plot, and map.
When provided with a fitted geostan
model, the function returns a point-interval plot of observed values against fitted values (mean and 95 percent credible interval), a Moran scatter plot for the model residuals, and a map of the mean posterior residuals (means of the marginal distributions). If if mc_style = 'hist'
, the Moran scatter plot is replaced by a histogram of Moran coefficient values calculated from the joint posterior distribution of the residuals.
me_diag
, mc
, moran_plot
, aple
data(georgia)
sp_diag(georgia$college, georgia)
bin_fn <- function(y) mad(y, na.rm = TRUE)
sp_diag(georgia$college, georgia, binwidth = bin_fn)
# \donttest{
fit <- stan_glm(log(rate.male) ~ log(income),
data = georgia,
centerx = TRUE,
chains = 1, iter = 1e3) # for speed only
sp_diag(fit, georgia)
# }