ssMRCD 2.0.3
- Improved input checks and rescaling for
weightsin
ssMRCD().
ssMRCD() now uses the names of a list input X as group
names.
- In
ssMRCD(), the tuning results now use correct names
and order of groups. Bugs fixed that led to an error.
- Documentation updated.
scores(): data is now only centered by the local means
before computing scores, score distances and orthogonal distances.
Previously, the data was additionally scaled by the (non-robust) root
mean square of each variable per group, so results differ from version
2.0.2.
scale.ssMRCD() now has the arguments of the generic
scale() and only scales the data stored in the ssMRCD
object; use scale = FALSE for centering only.
plot.locOuts(): calling plot() with
default arguments failed. Invalid values for type,
scale and observation now give informative
error messages.
plot.ssMRCD(): ellipse plots now work for data without
column names, the title reflects tolerance, and
manual_rescale can take any positive value.
ssMRCD(): best6pack now correctly returns,
for each group, the index of the initial h-set of the best starting
combination (previously a single, unrelated value).
ssMRCD(): fixed a rare case where poorly conditioned
initial h-sets could be used if only one well-conditioned initial h-set
was available in a group, and a failure if only one combination of
starting values remained.
ssMRCD(): tuning with
tuning$method = "local contamination" no longer resets the
global random seed. Use set.seed() before calling
ssMRCD() for reproducible results. Results therefore differ
from version 2.0.2.
geo_weights(): groups with a single observation and
factors with unused levels no longer fail or produce NA.
W and centersN are now named by group.
ssMRCD(): if the global MCD target matrix is singular
(e.g. variables constant within groups), the MRCD is now used as target
matrix as intended. Previously, a warning was given and the estimation
failed.
locOuts(): numeric group labels that are not
consecutive (e.g. 3, 7, 20) no longer fail.
time_weights(): off_diag with
N - 1 values no longer fails.
groups_gridbased(): observations on the upper boundary
of the grid are now assigned to the last cell instead of failing.
residuals.ssMRCD(): performance improvement for
type = "trimmed_mean". Invalid values of type
now give an error.
locOuts(): observations without neighbors within
dist now give a warning (they cannot be flagged) and an
error is given if no observation has neighbors. The message that
k is ignored when both k and dist
are given is now shown.
ssMRCD(): tuning with
tuning$method = "residuals" no longer fails if
lambda contains duplicated values. Tuning with
"local contamination" gives an informative error if
tuning$cont is too small.
ssMRCD(): inverse covariance matrices
(MRCDicov) are now computed via Cholesky
decomposition.
- Internal clean-up (unused computations removed, simplified
code).
plot.msPCA() now returns the plot itself for a single
type and a correctly named list of plots for several
types.
msPCA(): tuning of eta and
gamma now gives correct results if the grids are not sorted
increasingly.
scores(): performance increased.
msPCA(): the automatic increase of rho no
longer stops at the first infeasible value when msPCA() is
called inside tryCatch(). A clear error is given if no
feasible solution is found. A starting rho above the
maximal rho no longer fails.
msPCA(): a large thresholding tolerance
(eps[1]) no longer produces NaN loadings (at
least the largest loading per group is kept).
msPCA(): the progress bar during tuning of
eta/gamma is now controlled by
show_progress (default FALSE) and only shown
in interactive sessions. Diagnostic output for infeasible ADMM steps is
now part of the message and can be suppressed with
suppressMessages().converged is now also
correct if convergence is reached in the last iteration. Correlation
matrices are now also recognized if their diagonal is 1 only up to
numerical precision.
- msPCA plots and summary now consistently use the group and variable
names of the fitted object.
plot(type = "score_distances") for msPCA objects now
uses the first k components as documented (previously only
the last component was used, and k was ignored).
cellMGGMM(): Sigmai and
Sigma_reg are now returned on the original scale.
groups now contains the full group vector (previously a
single value).
cellMGGMM(): removed console output from compiled
code.
cellMGGMM(): progress output now uses
message() and is only shown with
silent = FALSE. Non-convergence and numerical inaccuracies
are reported as warnings. No plot is drawn.
cellMGGMM(): informative errors for groups with fewer
than 4 observations, fewer than 2 variables, and variables with too few
distinct values or zero MAD within a group.
cellMGGMM(): Updated reference.
ssMRCD 2.0.2
- Version 2.0.2 not released on CRAN. Supplementary code for paper
“Outlier-Robust Multi-Group Gaussian Mixture Modeling with Flexible
Group Reassignment” (Puchhammer, Wilms and Filzmoser, 2026,
https://doi.org/10.48550/arXiv.2504.02547).
- Updated references: sparse robust PCA for multi-source data is now
published (Puchhammer, Wilms and Filzmoser, 2026, doi:10.1007/s11222-025-10771-y).
cellMGGMM(): setting maxcond = Inf now
disables regularization (rho = 0).
cellMGGMM() no longer returns the original data matrix
X.
- Documentation fixes.