View source: R/partial_invariance.R
| partial_invariance | R Documentation |
Given a failed invariance level, uses a greedy score-test loop
(lavTestScore + group.partial) to identify and free the
minimum set of non-invariant equality constraints needed to restore
acceptable fit (DCFI >= -0.010). Downstream invariance levels are then
re-tested under the same partial constraints.
partial_invariance(
inv,
level,
max_free = 10L,
delta_cfi_cutoff = -0.01,
verbose = TRUE
)
inv |
An |
level |
Character. The invariance level to partially free:
|
max_free |
Integer. Maximum parameters to free before stopping. Default 10. Byrne et al. (1989) recommend freeing the minimum number – in practice >5 rarely recovers invariance. |
delta_cfi_cutoff |
Numeric. Stopping criterion: loop stops when DCFI >= this value. Default -0.010 (Cheung & Rensvold, 2002). |
verbose |
Logical. Print progress messages. Default |
An object of class "esem_partial_invariance" with:
$freed_paramsData frame: round, label, group_name, score (LM), delta_cfi (baseline-relative), converged.
$partial_fitesem_fit at level with freed params.
$downstreamNamed list of esem_fit for levels above target.
$downstream_lrtlavTestLRT() comparisons among downstream.
$tableCombined fit table (original + partial + downstream).
$convergedLogical: did DCFI pass cutoff?
$group_partialCharacter vector: final group.partial labels.
ESEM and B-ESEM loadings rotate as a block, so partial configural and
partial weak invariance do not exist. Partial strong releases intercepts
(continuous items) or thresholds (ordered items); partial strict releases
residual variances. Constraints are released one at a time, largest score
test first (van de Schoot, Lugtig & Hox, 2012). An intercept or threshold
is released only if every factor the item belongs to keeps at least two
items with invariant intercepts/thresholds (Byrne, Shavelson & Muthen,
1989), and a warning is issued when more than 20\
added at that level are released (Dimitrov, 2010). The search is data
driven: report every released parameter. On ordered items the search keeps
at least one threshold per item invariant (Millsap & Yun-Tein, 2004); an
item's last threshold can be released by hand through
esem_invariance(..., group.partial = "item|t1"), which then fixes
the item's residual variance at 1 in every group. A partial refit that
fits worse than the full model (a lavaan local optimum) is retried from
simple starting values.
esem_invariance
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.