Extract model residuals, fitted values, or spatial trend from a fitted geostan_fit model.

# S3 method for geostan_fit
residuals(object, summary = TRUE, rates = TRUE, detrend = TRUE, ...)

# S3 method for geostan_fit
fitted(object, summary = TRUE, rates = TRUE, trend = TRUE, ...)

spatial(object, summary = TRUE, ...)

# S3 method for geostan_fit
spatial(object, summary = TRUE, ...)

Arguments

object

A fitted model object of class geostan_fit.

summary

Logical; should the values be summarized by their mean, standard deviation, and quantiles (probs = c(.025, .2, .5, .8, .975)) for each observation? Otherwise, a matrix containing samples from the posterior distributions is returned.

rates

For Poisson and Binomial models, should the fitted values be returned as rates, as opposed to raw counts? Defaults to TRUE; see the Details section for more information.

detrend

For auto-normal models (CAR and SAR models with Gaussian likelihood only); if detrend = TRUE, the implicit spatial trend will be removed from the residuals. The implicit spatial trend is Trend = rho * C %*% (Y - Mu) (see stan_car or stan_sar). I.e., resid = Y - (Mu + Trend).

...

Not used

trend

For auto-normal models (CAR and SAR models with Gaussian likelihood only); if trend = TRUE, the fitted values will include the implicit spatial trend term. The implicit spatial trend is Trend = rho * C %*% (Y - Mu) (see stan_car or stan_sar). I.e., if trend = TRUE, fitted = Mu + Trend.

Details

When rates = FALSE and the model is Poisson or Binomial, the fitted values returned by the fitted method are the expected value of the response variable. The rates argument is used to translate count outcomes to rates by dividing by the appropriate denominator. The behavior of the rates argument depends on the model specification. Consider a Poisson model of disease incidence, such as the following intercept-only case:

fit <- stan_glm(y ~ offset(log(E)),
               data = data,
               family = poisson())

If the fitted values are extracted using rates = FALSE, then fitted(fit) will return the expectation of \(y\). If rates = TRUE (the default), then fitted(fit) will return the expected value of the rate \(\frac{y}{E}\).

If a binomial model is used instead of the Poisson, then using rates = TRUE will return the expectation of \(\frac{y}{N}\) where \(N\) is the sum of the number of 'successes' and 'failures', as in:

fit <- stan_glm(cbind(successes, failures) ~ 1,
               data = data,
               family = binomial())

Examples

# \donttest{
data(georgia)
A <- shape2mat(georgia, "B")

fit <- stan_esf(deaths.male ~ offset(log(pop.at.risk.male)),
                C = A,
                data = georgia,
                family = poisson(),
                chains = 1, iter = 600) # for speed only


# Residuals
r <- resid(fit)
moran_plot(r$mean, A)
head(r)

# Fitted values
f <- fitted(fit)

# Fitted values, unstandardized
f <- fitted(fit, rates = FALSE)
head(f)

# Spatial trend
esf <- spatial(fit)
head(esf)
# }