This method extracts posterior draws of Dunn-Smyth (randomized quantile) residuals in the order in which the data were supplied to the model. It included additional arguments for obtaining summaries of the computed residuals
Arguments
- object
An object of class
mvgam
- summary
Should summary statistics be returned instead of the raw values? Default is
TRUE
..- robust
If
FALSE
(the default) the mean is used as the measure of central tendency and the standard deviation as the measure of variability. IfTRUE
, the median and the median absolute deviation (MAD) are applied instead. Only used ifsummary
isTRUE
.- probs
The percentiles to be computed by the
quantile
function. Only used ifsummary
isTRUE
.- ...
ignored
Value
An array
of randomized quantile residual values.
If summary = FALSE
the output resembles those of
posterior_epred.mvgam
and predict.mvgam
.
If summary = TRUE
the output is an n_observations
x E
matrix. The number of summary statistics E
is equal to 2 +
length(probs)
: The Estimate
column contains point estimates (either
mean or median depending on argument robust
), while the
Est.Error
column contains uncertainty estimates (either standard
deviation or median absolute deviation depending on argument
robust
). The remaining columns starting with Q
contain
quantile estimates as specified via argument probs
.
Details
This method gives residuals as Dunn-Smyth (randomized quantile) residuals. Any
observations that were missing (i.e. NA
) in the original data will have missing values
in the residuals
Examples
# \donttest{
# Simulate some data and fit a model
simdat <- sim_mvgam(n_series = 1, trend_model = AR())
mod <- mvgam(y ~ s(season, bs = 'cc'),
trend_model = AR(),
noncentred = TRUE,
data = simdat$data_train,
chains = 2,
silent = 2)
# Extract posterior residuals
resids <- residuals(mod)
str(resids)
#> num [1:75, 1:4] -0.31 -0.401 -0.576 0.249 -0.985 ...
#> - attr(*, "dimnames")=List of 2
#> ..$ : NULL
#> ..$ : chr [1:4] "Estimate" "Est.Error" "Q2.5" "Q97.5"
# Or add them directly to the observed data, along with fitted values
augment(mod, robust = FALSE, probs = c(0.25, 0.75))
#> # A tibble: 75 × 14
#> y season year series time .observed .fitted .fit.variability
#> <int> <int> <int> <fct> <int> <int> <dbl> <dbl>
#> 1 0 1 1 series_1 1 0 0.213 0.127
#> 2 0 2 1 series_1 2 0 0.283 0.172
#> 3 0 3 1 series_1 3 0 0.481 0.268
#> 4 1 4 1 series_1 4 1 0.958 0.486
#> 5 0 5 1 series_1 5 0 1.01 0.489
#> 6 2 6 1 series_1 6 2 1.42 0.640
#> 7 2 7 1 series_1 7 2 1.42 0.650
#> 8 2 8 1 series_1 8 2 1.04 0.521
#> 9 1 9 1 series_1 9 1 0.556 0.310
#> 10 0 10 1 series_1 10 0 0.314 0.194
#> # ℹ 65 more rows
#> # ℹ 6 more variables: .fit.cred.low <dbl>, .fit.cred.high <dbl>, .resid <dbl>,
#> # .resid.variability <dbl>, .resid.cred.low <dbl>, .resid.cred.high <dbl>
# }