The function uses logical misfit indicators stored in misfit$table,
including:
misfit_any: TRUE if at least one statistic flagged the person.
Statistic-specific columns (e.g., Gnp, U3p, lpz) indicating
per-statistic misfit decisions.
The set of statistics actually considered is taken from misfit$stats.
Under the "intersection" rule, a person is removed only if all of those
statistics are TRUE. Internally, rowSums(..., na.rm = TRUE) is
used so that NA values do not force removal (i.e., NA behaves
as “not flagged” in the intersection count).
Only items listed in misfit$scaled$kept are retained in the output.
Person identifiers from the original raw object are preserved for the kept rows.