| NEWS | R Documentation |
News for R Package robustbase
CHANGES in robustbase VERSION 0.99-6 (2025-09-03, svn 1011)
Misc
small change in vignette ‘lmrob_simulation.Rnw’ such that it also works with ggplot2 version
4.0.0and newer.
CHANGES in robustbase VERSION 0.99-5 (2024-11-01, svn 1007)
Misc
small changes in ‘tests/*’, "robustifying" against the possibility of
osVersionbeingNULL; with thank to Michael Chirico for alerting me.
CHANGES in robustbase VERSION 0.99-4-1 (2024-09-25, svn 1006)
Misc
small changes in ‘tests/lmrob-psifns.R’ and ‘*.Rout.save’, notably avoiding small diffs on "M1mac" and "noLD" (
--disable-long-double).
CHANGES in robustbase VERSION 0.99-4 (2024-08-19, svn 1002)
NEW FEATURES
-
lmrob.fit()gets new optionbare.onlyfor some speed up, in case a relatively “bare” result is sufficient.
Misc
fix another LaTeX no more wanting math in section titles (same problem as 0.99-3), now for ‘lmrob_simulation.Rnw’. Now also use
\texorpdfstringinside\title{}of ‘psi_functions.Rnw’ and usenewtheorem{..}after\hypersetup{...}(thanks to Kurt).avoid some ggplot2 warnings (about omitting obs.)
do not warn about skipping equilibration for p=1.
define
STRICT_R_HEADERSnow (src/*.[ch]).
CHANGES in robustbase VERSION 0.99-3 (2024-07-01, svn r992)
Misc
Again adapt ‘../vignettes/lmrob_simulation.Rnw’ to ggplot2 changes (
s/ fun.y / fun /).-
‘tests/subsample.R’ now shows "Matrix" info (as that gave confusing error during Matrix / R-devel changes).
Latest LaTeX does not like math in
\section{.}; hence replacing\psiby\texorpdfstring{$\psi$}{psi}.
CHANGES in robustbase VERSION 0.99-2 (2024-01-27, svn r989)
BUG FIXES
fix thinko bug introduced exact fit checking in 0.99-0; thanks to the report by Thomas Mang.
CHANGES in robustbase VERSION 0.99-1 (2023-11-28, svn r988)
Misc
document the
...argument(s) ofnlrob.control().-
‘DESCRIPTION’: more URLSs.
-
‘*.Rd’ tweaks; avoiding other
NOTEs. -
‘src/lmrob.c,mc.c,monitor.c’: format %lld etc
CHANGES in robustbase VERSION 0.99-0 (2023-06-12, svn r928)
NEW FEATURES
In case it finds an exact fit, i.e.,
k > n/2residuals are (practically) zero,lmrob.S()now returns that,scale = 0, and robustness weightsweights(., "robustness")which are either 0 or 1 quickly and more consistently.This is not yet satisfactorily working for the “large n” case.
**** TODO: Optionally (but off by default?? for back compatibility??),
lmrob()initialized by such an exact-fit estimator may use a (user-specified or automatic) scale\hat{s} > 0to continue providing efficient SM / MM estimates.-
lmrob.control()gets class"lmrobCtrl"which can beprint()ed andupdate()d. New tuning const
zero.scale = 1e-10instead of hardwiredEPS_ZEROinlmrob.S()'s C code; additionally the exact fit / zero-residuals checking is finally y-scale equivariant, using1/n ||y||_1 =mean(abs(y)).
BUG FIXES
Fixed
covMcd(): corrected the consistency correction factor for the reweighted estimate: was MCDCons(p, sum(w)/n), now is MCDCons(p, 0.975), see Croux and Haesbroeck (1999).Consequently, often
covMcd()and estimates based on it, such asBYlogreg()orltsReg()are slightly changed.registered
residuals.lmrob.Sand changedformalscompatible with generic to(object, ...).-
lmrob.S()in C levelrefine_fast_s()no longer modifiesbeta_cand[]which notably fixes a bug found in exact-fit examples previously resulting incoef() == 0“results”, also forlmrob()which callslmrob.S()for its default initial estimate. -
print(<lmrob.S>)finally works again as intended (not printing a largish list); mostly by fixing internallmrob.control.minimal(). -
summary.lmrob(obj)now also gets aweightscomponent fromobjif that is non-trivial; this may also correctsummary()output in weighted cases. Minor fixes in
plot.lts()related to par mfrow.ltsReg() Help file changed - the note strongly advising NOT to use LTS regression removed.
Misc
argument
mfe.g., inlmrob.fit()has been deprecated since 2017-12-09 and is defunct now.-
lmrob()tweaks, notably saying more fortrace.lev >= 3. replaceed (almost) all
Calloc()byR_alloc()in C code; e.g., prevents leakage from user interrupt.
CHANGES in robustbase VERSION 0.95-1 (2023-03-28, svn r903)
BUG FIXES
Fixed
covMcd():raw.only=TRUEdoes not work in the casensamp="deterministic"
NEW FEATURES
New
lmc()andrmc()for robust tail weight (“robust kurtosis”).
Misc
Our ‘tests/*.R’ no longer rely on the Matrix ‘test-tools.R’ collection but rather use our much smaller own one in ‘xtraR/test-tools.R’.
fixed
\escape in ‘man/aircraft.Rd’.initialize equed in ‘src/lmrob.c’ to avoid false positive compiler warning.
document "internal"
.regularize.Mpsi().replace
()by(void)arguments forF77_SUB(println).
CHANGES in robustbase VERSION 0.95-0 (2022-04-02, svn r894)
BUG FIXES
-
huberM(x, k)now also works in small sample cases with+/-Inf, e.g. forx = c(-Inf, 1).
NEW FEATURES
New
huberize()utility, notably by default used inmc().-
mc()now by default usesdoScale=FALSEin order to guarantee convergence also in extreme cases when used together with newc.huberize = 1e11. Both are not back compatible but clearly better in extreme cases, as assessed by Lukas Graz' BSc thesis. Note that the behavior of the new defaultdoScale=FALSEhas been amended in the C code to be more compatible in itsepschecks with (the previous default)doScale=TRUE.Lastly, a
message()is printed currently, at most once per R session, whenevermc()is called without an explicit specification ofdoScale=*, alerting users to the changed default. This message can be turned off by settingoptions(mc_doScale_quiet = TRUE). New dataset
data(x30o50)as an example of potentially problematic data, not just formc().
Misc
rather "truncating"
+/-Infto <large>, useNA.OK = TRUEinQn()andSn()'s.C()call.Our C code no longer uses the
DOUBLE_*constants from S, but rather standard<float.h>.
CHANGES in robustbase VERSION 0.93-9 (2021-09-27, svn r888)
BUG FIXES
-
Qn(x)andSn(x)gain anna.rm = FALSEoption and now work whenxhasNAs and contains\pmInf.
Misc
No longer include ‘Rdefines.h’ as it is somewhat deprecated.
In ‘src/lmrob.c’ add
USE_FC_LEN_Tand useFCONErather than the older FCLEN approach.
CHANGES in robustbase VERSION 0.93-8 (2021-06-01, svn r879)
NEW FEATURES
-
scaleTau2()gets new optionaliter = 1andtol.iterarguments; mostly experimentally to see if or when iteration makes sense. -
Qn(x, *)gets new optionalk = .to indicate the “quantile” i.e., order statistic to be computed (with default as previously hard-coded).
Experimentally to try for cases where more than n/2 observations coincide (with the median), i.e.,x[i] == x0 == median(x[]), and henceQn(x)andmad(x)are zero. -
adjOutlyingness()gets new optionIQRtype = 7.
Tweaks
For tests: *again* differences found in the non-sensical
adjOutlyingness()example (with large p/n, hence many "random" values in the order of 1e15). Disable the test for now (and record the result in *.Rout).
BUG FIXES
The
test()utility in ‘tests/lmrob-ex12.R’ no longer callsmatrix(x, n,4)where the length of x does not match4n. Similar change in ‘tests/mc-strict.R’
CHANGES in robustbase VERSION 0.93-7 (2021-01-03, svn r865)
NEW FEATURES
Use
\CRANpkg{.}in most places, providing web links to the respective CRAN package page.-
adjOutlyingness()now gains optional parameters to be passed tomc().
BUG FIXES
update the internal man page, so new
checkRdContents()is happy.fix several ‘\url{.}’'s that now are diagnosed as ‘moved’.
-
adjOutlyingness()finally works withp.samp > p. -
scaleTau2()now works withInfand very large values, and obeys newna.rm = FALSEargument. add
check.environment=FALSEto some of theall.equal()calls (for 'R-devel', i.e., future R 4.1.x).-
wgt.himedian(numeric())now returnsNAinstead of occasionally seg.faulting or inf.looping. Ditto for a case when called fromQn().
CHANGES in robustbase VERSION 0.93-6 (2020-03-20, svn r854)
NEW FEATURES
-
splitFrame()now treatscharactercolumns also as categorical (the same asfactors).
Tweaks
Small updates, also in checks for newer compiler settings, e.g.,
FCLENmacro; also F77_*() etc, in order to fix 'LTO' issues.More careful or less calling
intpr(): correct "Rank" of array (for gfortran/gcc 10, when-fallow-argument-mismatchis not set).
CHANGES in robustbase VERSION 0.93-5 (2019-05-09, svn r840)
Tweaks
For tests: try harder in
moreSessionInfo()to detect openBLAS (should work for KH's debian openBLAS setup).
CHANGES in robustbase VERSION 0.93-4 (2019-03-18, svn r839)
BUG FIXES
-
R_CHECK_LENGTH_1* fix in default value for
askin plot methods formcdandlts -
‘src/rowMedians.c’ gets better PROTECT()ion thanks to Tomas Kalibera's "rchk"s.
Tweaks
losen the strict tests more, convergence issues on all non-standard BLAS platforms. Now modularized the partly platform dependent testing into
moreSessionInfo()in ‘./xtraR/platform-sessionInfo.R’. Further, for now useRNGversion("3.5.0")e.g. in ‘../tests/mc-strict.R’.
CHANGES in robustbase VERSION 0.93-3 (2018-09-06, svn r827)
Tweaks
losen the strict tests, notably in ‘tests/nlregrob-tst.R’ to work around
nls()convergence issues on all non-standard BLAS platforms.
CHANGES in robustbase VERSION 0.93-2 (2018-07-26, svn r825)
BUG FIXES
Update
lmrob(<empty multivariate>)to the change in R (incl 3.5.1 patched).-
mc()gets new optionaldoScaleargument, and increased defaults for the toleranceseps1 = 1e-14, eps2 = 1e-15
such that it should converge by default in more cases.
A
na.actionis now kept insummary(lmrob(*)), and whenprint()ing it, a note about omitted observations, e.g., because ofNA's, is made as forlm().Internal
lmrob.weights(): more "resistant" in case scale=0, using na.rm=TRUE (report only, no reprex).-
lmrob(*, trace.lev >= 2)now shows some information about the number offind_scale()iterations used (as these are now stored C internally).
CHANGES in robustbase VERSION 0.93-1-1 (2018-07-18, svn r818)
BUG FIXES
-
‘src/robustbase.h’:
is_redescendernow isstatic inline, needed for some compilers, e.g., on ubuntu 18.04. Fixing R-forge bug(s) 6588 (and 6590, 6593), https://r-forge.r-project.org/tracker/index.php?func=detail&aid=6588&group_id=59&atid=302
CHANGES in robustbase VERSION 0.93-1 (2018-06-20, svn r815)
NEW FEATURES
The ‘Usage:’s in the data set help pages now say
data(<..>, package="robustbase").The ‘lmrob_simulation’ vignette now should continue to work with upcoming package ggplot2.
BUG FIXES
-
Mpsi(x, c, psi="huber", deriv=-1)now gives rho(x) instead of mostlyInf.
CHANGES in robustbase VERSION 0.93-0 (2018-04-21, svn r805)
NEW FEATURES
-
.psi.const(*, "lqq")now also gives a"constants"attribute. more examples and help on Mpsi() etc functions and tuning constants.
The S estimator
lmrob.S()and M-S estimator now both make use of the newlmrob.control()argumentscale.tolwhich defaults to1e-10, its formerly hardwired value.-
lmrob.S()further gets a new optiononly.scale = FALSE, which when true allows to only compute the S scale estimate. In that case, but also generally,trace.lev = 3or larger also produces output showing the C levelfind_scale()iterations. (By Manuel Koller) There's now a small C API to call our
Mpsi()etc from C code in other packages, asC_psi(), etc; using new ‘../inst/include/robustbase.h’.-
nlrob()$call$algorithmnow always contains the algorithm used as acharacterstring, compatibly withnls(). new data set
steamUse.Vignette ‘lmrob_simulation.Rnw’: fixed the wrong “emprical power” plots; with faster ggplot2, remove all
eval=FALSEfor plots and longer store the ‘*.pdf’s.nlrob()getsmodeloption to ask for themodel.frameto be returned.
BUG FIXES
-
lmrob(..., method = "S")no longer necessarily produces a warning in.vcov.w(). -
nlrob()returns a correctdataClassescomponent.
Tests Tweaks
For use in non-R-internal BLAS/Lapack libraries, several ‘tests/*.R’ examples have been tweaked.
CHANGES in robustbase VERSION 0.92-8 (2017-10-30, svn r778)
NEW FEATURES
-
fullRank()utility foradjOutlyingness: -
adjOutlyingness(), gets new optionsp.sampandtrace.lev, and when it fails to find enough good directions, now checks the rank and mentionsfullRank()in case the matrix is (QR-)rank deficient. The
"lmrob"method forvcov()gets optional argumentcomplete = TRUE, where only complete = FALSE is back compatible.improved (error) messages in singular case in
.vcov.avar1().-
.psi.const()is exported as well, and help is improved about using and setting non-default psi tuning constants.
BUG FIXES
loosened some regression test tolerances (for alternatives to BLAS) in ‘tests/(mc-strict|poisson-ex)’.
-
scaleTau2(x, *)gains an optionalsigma0argument and now returns zero instead ofNaNwhensigma0 == 0.
CHANGES in robustbase VERSION 0.92-7 (2016-11-23, svn r742)
NEW FEATURES
-
vignette(psi_functions) -
adjOutlyingness(..., maxit.mult = max(100, p))new option, allowing more iterations for finding “good” projection directions.
BUG FIXES
-
summary(nlrob(*, method = "CM"))now works. -
lmrob..MM..fit()now works again whenxandyare specified, but neithermethodnorobjis.
CHANGES in robustbase VERSION 0.92-6 (2016-05-28, svn r717)
NEW FEATURES
Now provide an
"lmrob"method for the standard R generic functionhatvalues(), and also export its lower level workhorse.lmrob.hat()(formerly hiddenlmrob.leverages()), which now by default hasnames(.).
BUG FIXES
-
.lmrob.hat()(formerlylmrob.leverages()) has been corrected for the rank-deficient case. -
classPC(m)now also works for a 1-column matrix.
CHANGES in robustbase VERSION 0.92-5 (2015-07-21, svn r698)
NEW FEATURES
-
Hidden
print()methodsprint.summary.lmrob()andprint.lmrob.S()get ashowAlgo = TRUEargument which the user can set to FALSE in order to suppress printing of the “Algorithmic parameters”. import (remaining parts) from "base" packages.
-
summary(<nlrob>)now also prints a summary on the residuals.
BUG FIXES
-
summary(lmrob(.))'s variance-covariance matrix is now calledcovinstead ofcov.unscaled(because it is scaled). Code which has been usingvcov(<lmrob>)or<lmrob> $ cov, or even<summary.lmrob> $ covis not affected.
CHANGES in robustbase VERSION 0.92-4 (2015-06-04, svn r696)
NEW FEATURES
Started this ‘NEWS.Rd’ file, to eventually replace the ‘ChangeLog’
-
plot.lmrob()also identifies largest residuals asplot.lm(). Also gets new argumentpanel, andadd.smooth=TRUEbehavior. adapt to the fact that R 3.3.0 will have its own
sigma()S3 generic.setup for having message translations (volunteers sought!).
BUG FIXES
more careful in ‘../src/mc.c’ (valgrind, thanks to Brian)
add missing documentation, better examples for
predict.lmrob-
warn.limit.*checks inlmrob*()
CHANGES in robustbase VERSION 0.92-3 (2015-01-14, svn r679)
NEW FEATURES
The ‘Co-Median’
covComed()from Maria Anna, tweaked by Valentin and modified considerably by Martin.Also document (and export)
r6pack()utility.New
smoothWgt()function — “Biweight on a Stick” — to be used aswgtFUNoption forcovMcd()orcovComed().New utility
colMedians()androwMedians, as we use columnwise medians in so many places.
BUG FIXES
Tweaks to
medcouple(), after detecting flaws – which may be inherent and have not been removed.Improved its documentation and the
adjOutlyingness()one, notably its “central” case.
CHANGES in robustbase VERSION 0.92-2 (2014-11-22, svn r660)
BUG FIXES
-
covMcd()with new options (kmini,nmini) now ok (sometimes wrong in 0.92-1).
CHANGES in robustbase VERSION 0.92-1 (2014-11-18)
NEW FEATURES
The deterministic MCD, via
covMcd(..., nsamp="deterministic").
BUG FIXES
-
adjOutlyingness(): reverse the defaults ofclowerandcupperand fix an “eternal” erronous\pmswap; see new note in ‘man/adjOutlyingness.Rd’.
CHANGES in robustbase VERSION 0.92-0 (2014-11-18)
NEW FEATURES
-
nlrob()now works with indexed vector parameters. new
outlierStats()(Manuel).
BUG FIXES
got rid of Fortran compiler warnings about ancient style.
-
nlrob(*, weigths), fixing R-forge bug #5988. -
covMcd()fix for “MAD = 0” case (newexactfitcode 3).
CHANGES in robustbase VERSION 0.91-1 (2014-05-01)
BUG FIXES
.
CHANGES in robustbase VERSION 0.91-0 (2014-04-24)
NEW FEATURES
.
BUG FIXES
.
CHANGES in robustbase VERSION 0.90-1 (2014-01-30)
NEW FEATURES
.
BUG FIXES
.
CHANGES in robustbase VERSION 0.9-8 (2013-06-14)
NEW FEATURES
.
BUG FIXES
.