Extract the difference between the observed and model-implied (fitted)
sample statistics from a fitted INLAvaan model. As in lavaan
and blavaan, residuals are computed at the parameter estimates –
here the posterior means – not as a posterior distribution over residuals.
Usage
# S4 method for class 'INLAvaan'
residuals(object, type = "raw", labels = TRUE, ...)
# S4 method for class 'INLAvaan'
resid(object, type = "raw", ...)Arguments
- object
An object of class INLAvaan.
- type
Character.
"raw"(default) returns the unscaled difference between the observed and model-implied covariance matrix (and mean vector, when a mean structure is present)."cor"(or"cor.bollen") first rescales both matrices to a correlation matrix."cor.bentler"rescales both by the observed variances (the basis of the SRMR)."normalized"and"standardized"divide the raw residuals by their asymptotic standard errors."casewise"(aliases"case","obs","observations","ov") returns observed-minus-fitted values for each observation.- labels
Logical. Attach variable names to the output. Default
TRUE.- ...
Currently unused.
Value
For moment-based types, a list with elements
type, cov, and (when relevant) mean. For
type = "casewise", a numeric matrix of observed-minus-fitted
values.
Details
This delegates to lavaan's own residuals() machinery, so the
return structure matches lavaan exactly. Because INLAvaan stores the
posterior means as the point estimates of the fitted object, the residuals
are the observed statistics minus the posterior-mean model-implied
statistics (mirroring blavaan, which likewise inherits lavaan's
residuals() without overriding it).
Examples
# \donttest{
HS.model <- "
visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
"
utils::data("HolzingerSwineford1939", package = "lavaan")
fit <- acfa(HS.model, HolzingerSwineford1939, std.lv = TRUE, nsamp = 100,
test = "none", verbose = FALSE)
# Raw residual covariance matrix (posterior means)
residuals(fit)
#> $type
#> [1] "raw"
#>
#> $cov
#> x1 x2 x3 x4 x5 x6 x7 x8 x9
#> x1 -0.029
#> x2 -0.048 -0.020
#> x3 -0.021 0.118 -0.020
#> x4 0.098 -0.016 -0.089 -0.029
#> x5 -0.013 -0.040 -0.219 -0.017 -0.036
#> x6 0.078 0.039 -0.031 -0.032 -0.018 -0.026
#> x7 -0.175 -0.241 -0.102 0.047 -0.049 -0.016 -0.019
#> x8 -0.045 -0.061 -0.013 -0.079 -0.048 -0.024 0.085 -0.019
#> x9 0.171 0.085 0.164 0.053 0.083 0.059 -0.046 -0.041 -0.018
#>
# SRMR-basis residuals
residuals(fit, type = "cor.bentler")
#> $type
#> [1] "cor.bentler"
#>
#> $cov
#> x1 x2 x3 x4 x5 x6 x7 x8 x9
#> x1 -0.021
#> x2 -0.035 -0.015
#> x3 -0.016 0.089 -0.016
#> x4 0.072 -0.012 -0.068 -0.022
#> x5 -0.008 -0.026 -0.151 -0.011 -0.022
#> x6 0.061 0.030 -0.025 -0.025 -0.013 -0.021
#> x7 -0.138 -0.188 -0.083 0.037 -0.035 -0.013 -0.016
#> x8 -0.038 -0.052 -0.012 -0.067 -0.036 -0.022 0.077 -0.019
#> x9 0.146 0.072 0.144 0.045 0.064 0.054 -0.042 -0.040 -0.017
#>
# Casewise observed-minus-fitted values
head(residuals(fit, type = "casewise"))
#> x1 x2 x3 x4 x5 x6
#> [1,] -0.7853976 2.1140809 -1.27808808 -0.5929764 1.5593319 -0.77522974
#> [2,] 0.3442382 -0.8675483 -0.16440087 -0.3805039 -0.2118242 0.03878633
#> [3,] 0.3175859 -0.4211592 0.17535385 -0.1868239 -0.5039040 -0.02174080
#> [4,] -0.0259349 1.4276108 0.43997005 -0.4118266 0.1398889 0.22671694
#> [5,] 0.3184554 -1.1051330 -1.06770637 -0.2724002 -0.2048722 0.49867236
#> [6,] 0.3706199 -1.1029496 -0.02011352 -0.7297386 0.1416083 -0.09586719
#> x7 x8 x9
#> [1,] -0.86284281 0.14180689 0.91150903
#> [2,] -1.03318449 -0.02577098 1.84588598
#> [3,] -0.09854121 -0.64470105 -0.04336008
#> [4,] -0.91864819 0.09058409 -0.21743031
#> [5,] -0.68291244 0.54392303 0.32945927
#> [6,] -0.54452260 0.28323441 1.34454914
# }
