Flexible Cutoffs for Model Fit Evaluation in Covariance-Based Structural Models
Overview
A toolbox to derive flexible cutoffs for fit indices in 'Covariance-based Structural Equation Modeling' based on the paper by 'Niemand & Mai (2018)' doi:10.1007/s11747-018-0602-9. Flexible cutoffs are an alternative to fixed cutoffs - rules-of-thumb - regarding an appropriate cutoff for fit indices such as 'CFI' or 'SRMR'. It has been demonstrated that these flexible cutoffs perform better than fixed cutoffs in grey areas where misspecification is not easy to detect. The package provides an alternative to the tool at https://flexiblecutoffs.org as it allows to tailor flexible cutoffs to a given dataset and model, which is so far not available in the tool. The package simulates fit indices based on a given dataset and model and then estimates the flexible cutoffs. Some useful functions, e.g., to determine the 'GoF-' or 'BoF-nature' of a fit index, are provided. So far, additional options for a relative use (is a model better than another?) are provided in an exploratory manner.
- Small changes to solve CRAN check errors on some platforms.
------------------------------------------------------------------------
From NEWS.md in the release
Install
Health
ERRORtestsr-oldrel-macos-arm64
Running ‘testthat.R’ [51s/28s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
> library(testthat)
> library(FCO)
>
> test_check("FCO")
This is lavaan 0.7-3
lavaan is FREE software! Please report any bugs.
Constraining is selected as the discriminant validity testing option given the provided arguments.
Constraining is selected as the discriminant validity testing option given the provided arguments.
Constraining is selected as the discriminant validity testing option given the provided arguments.
Merging is selected as the discriminant validity testing option given the provided arguments.
Merging is selected as the discriminant validity testing option given the provided arguments.
Constraining is selected as the discriminant validity testing option given the provided arguments.
*** caught segfault ***
address 0x110, cause 'invalid permissions'
*** caught segfault ***
address 0x110, cause 'invalid permissions'
Traceback:
...[truncated]...
── Error ('test-recommend_dv.R:57:13'): Is the proper dv technique used? constraining? ──
Error in `recommend_dv(fits = fits.dv.con, )`: Only dual model fit indices are supported so far for this function. Please revise or use flex_co.
Backtrace:
▆
1. ├─base::suppressWarnings(recommend_dv(fits = fits.dv.con, )) at test-recommend_dv.R:57:13
2. │ └─base::withCallingHandlers(...)
3. └─FCO::recommend_dv(fits = fits.dv.con, )
── Error ('test-recommend_dv.R:65:13'): Is the result rounded properly? ────────
Error in `recommend_dv(fits = fits.dv.con, digits = 5)`: Only dual model fit indices are supported so far for this function. Please revise or use flex_co.
Backtrace:
▆
1. ├─base::suppressWarnings(recommend_dv(fits = fits.dv.con, digits = 5)) at test-recommend_dv.R:65:13
2. │ └─base::withCallingHandlers(...)
3. └─FCO::recommend_dv(fits = fits.dv.con, digits = 5)
[ FAIL 9 | WARN 8 | SKIP 0 | PASS 65 ]
Error:
! Test failures.
Execution halted- ERROR12 OK, 1 ERRORNow
- ERROR12 OK, 2 ERROR2026-03-10
Documentation
- Help pages
- 9
- Examples that run
- 56%5 run in a plain check · 4 only when donttest examples are enabled (R CMD check --as-cran)
- Exported functions with examples
- 100%
- Documented parameters
- 100%
- Return-value docs
- 100%
- Help pages citing references
- 44%
- FCO HTML
Downloads
Repository
2 development-tooling and community-health practices detected across 2 families in the upstream repository
Checks run against github.com/thomasniemand/fco on 2026-10-21.
Dependencies
Code & Tests
Datasets
People & History
Package metadata
- First published
- 2022-02-11
- Total releases
- 5 / 4 yrs
- License
- GPL (>= 3) OSI
- Minimum R
- ≥ 4.4.0
- Bundled data
- 83 KB / 1 file
- Download size
- 182 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("FCO")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-23, which the citation names so these numbers can be found later. More on citing and the projects behind them.