Record the minimization
history when a model is fitted by
lavaan::lavaan() or its wrappers
(e.g., lavaan::sem() or
lavaan::cfa()).
Arguments
- object
A 'lavaan'-class object.
- x
A
fit_historyclass object, the output ofrecord_history().- params
A character vector of the names of parameters to be plotted. Must be the names of one or more columns in
x.- last_n
The lass
niterations to be plotted. Default is -1, plotting all iterations.- orientation
The orientation of the plot. Either
"horizontal"(the default) or"vertical".- ...
Optional arguments. To be passed to the print method of data frame.
- n_iterations
The number of iterations to print. Default is 10, printing the first 10 iterations (or all iterations, if the number of iterations is less than 10).
- digits
The number of digits to be displayed. Default is 3.
Details
It records the minimization
history when a model is fitted by
lavaan::lavaan() or its wrappers
(e.g., lavaan::sem() or
lavaan::cfa()). The recorded
history can then be plotted or
displayed, for visualizing how the
estimates of free parameters is
found.
It will refit the model by the
update method of
lavaan::lavaan, setting se = "none" and test = "standard"
because they have no impact on the
minimization process.
This and related functions are
adapted from the package semunpack.
The version in this package will be
revised to be an advanced version
intended for diagnostic purpose in
real studies.
Functions
plot(fit_history): The plot method for the output ofrecord_history().print(fit_history): The print method for the output ofrecord_history().
Author
Shu Fai Cheung https://orcid.org/0000-0002-9871-9448
Examples
# Adapted from the example for CFA in lavaan::cfa().
# Using only two of the factors
library(lavaan)
HS.model <-
'
visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
'
fit <- cfa(HS.model, data = HolzingerSwineford1939)
# Refit the model with the history recorded
fit_h <- record_history(fit)
fit_h
#> Original call:
#> lavaan::lavaan(model = HS.model, data = HolzingerSwineford1939,
#> model.type = "cfa", int.ov.free = TRUE, int.lv.free = FALSE,
#> auto.fix.first = TRUE, auto.fix.single = TRUE, auto.var = TRUE,
#> auto.cov.lv.x = TRUE, auto.cov.y = TRUE, auto.th = TRUE,
#> auto.delta = TRUE, auto.efa = TRUE)
#> The number of iterations: 29
#> The minimization history for the first 10 iterations:
#> iteration f visual=~x2 visual=~x3 textual=~x5 textual=~x6 x1~~x1 x2~~x2
#> 1 0 1.483 0.778 1.107 1.133 0.924 0.679 0.691
#> 2 1 0.349 0.791 1.126 1.161 0.950 0.746 0.767
#> 3 2 0.319 0.821 1.061 1.156 0.986 0.781 0.943
#> 4 3 0.184 0.791 0.943 1.115 0.940 0.799 0.995
#> 5 4 0.171 0.707 0.787 1.008 0.970 0.790 1.055
#> 6 5 0.061 0.668 0.768 1.115 0.876 0.767 1.062
#> 7 6 0.046 0.660 0.867 1.143 0.927 0.713 1.061
#> 8 7 0.045 0.653 0.853 1.125 0.943 0.668 1.075
#> 9 8 0.043 0.663 0.843 1.118 0.952 0.655 1.077
#> 10 9 0.042 0.660 0.830 1.128 0.930 0.651 1.081
#> x3~~x3 x4~~x4 x5~~x5 x6~~x6 visual~~visual textual~~textual visual~~textual
#> 1 0.637 0.675 0.830 0.598 0.050 0.050 0.000
#> 2 0.702 0.727 0.871 0.658 0.481 0.781 0.505
#> 3 0.799 0.599 0.783 0.504 0.916 1.082 -0.285
#> 4 0.752 0.408 0.600 0.298 0.901 1.072 -0.162
#> 5 0.682 0.233 0.298 0.311 0.803 1.008 0.143
#> 6 0.674 0.415 0.439 0.410 0.717 0.944 0.307
#> 7 0.768 0.389 0.464 0.368 0.700 0.938 0.335
#> 8 0.788 0.387 0.451 0.348 0.662 0.931 0.393
#> 9 0.797 0.381 0.455 0.343 0.675 0.952 0.350
#> 10 0.801 0.372 0.447 0.352 0.680 0.951 0.351
# Plot the history for selected parameters
plot(fit_h, params = c("visual=~x2", "visual=~x3",
"visual~~textual"),
last_n = 10)
plot(fit_h, params = c("visual=~x2", "visual=~x3",
"visual~~textual"),
last_n = 10,
orientation = "vertical")
