| sim16 | R Documentation |
A 1 000-row, fully continuous dataset simulated from a population model
with a known 1 -> 2 -> 4 bass-ackwards hierarchy, for showcasing the
default cor = "pearson" extraction path without the ordinal-detection
warning that bfi25's Likert items trigger.
sim16
A data frame with 1 000 rows and 16 numeric columns (i1–i16,
continuous, no missing values).
Population model. Sigma = Lambda %*% Phi %*% t(Lambda) + Psi, an
oblique common-factor model with 4 true group factors, sampled via a
Cholesky factorization (base R; no MASS dependency):
| Factor | Items | Metatrait |
f1 | i1--i4 | 1 (with f2) |
f2 | i5--i8 | 1 (with f1) |
f3 | i9--i12 | 2 (with f4) |
f4 | i13--i16 | 2 (with f3) |
All items load 0.75 on their true factor (no cross-loadings). Factor
correlations: 0.45 within a metatrait (f1-f2, f3-f4), 0.15
between metatraits. Uniquenesses are 1 - communality (uniform 0.4375
by the symmetry of the design above).
Ground-truth hierarchy (verified against ackwards(engine = "efa")):
k=1 recovers a single general factor across all 16 items; k=2 splits
along the metatrait line (i1-i8 vs. i9-i16); k=4 recovers the 4
true group factors exactly; all six suggest_k() recommendations (five
criteria – VSS reports at complexities 1 and 2) reach a consensus of
k = 4.
Idealized by design. The planted signal is strong and clean, so all six
suggest_k() recommendations converge on k = 4 – deliberately the easy case,
for building intuition about what recovering a known hierarchy looks like.
Real data rarely agree this cleanly: on bfi25 the same criteria span
k = 4–6. The two datasets are complementary teaching foils – sim16
for "watch the method recover a structure we planted," bfi25 for
"reason about a hierarchy when the criteria disagree." Present sim16's
consensus as the ideal, not the norm.
Deliberate overextraction artifact at k=5. The population has exactly
4 factors, so requesting a 5th finds no real dimension: EFA produces an
orphan factor with zero primary-loading items. With
prune(x, "artifact") (default min_items = 3, orphan_r = 0.5), that
factor is flagged both few_items and orphan. Because the true (non-
splitting) factors persist essentially unchanged from k=3 onward, their
parent-child score correlations approach 1 and are flagged by
prune(x, "redundant") (|r| >= .9 and, under the EFA auto-default,
Tucker's phi > .95). This is a textbook overextraction artifact, included so the
Forbes/redundancy examples have a guaranteed finding to teach against
(unlike bfi25, which does not reliably trigger one).
To regenerate this dataset, run source("data-raw/sim16.R") from the
package root (set.seed(42)).
Simulated; see data-raw/sim16.R for the full generative model.
dim(sim16)
head(sim16)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.