| 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 - osVersionbeing- NULL; 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 use- newtheorem{..}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) of- nlrob.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 weights- weights(., "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 hardwired- EPS_ZEROin- lmrob.S()'s C code; additionally the exact fit / zero-residuals checking is finally y-scale equivariant, using- 1/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 as- BYlogreg()or- ltsReg()are slightly changed.
- registered - residuals.lmrob.Sand changed- formalscompatible 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., in- lmrob.fit()has been deprecated since 2017-12-09 and is defunct now.
-  lmrob()tweaks, notably saying more fortrace.lev >= 3.
- replaceed (almost) all - Calloc()by- R_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 case- nsamp="deterministic"
NEW FEATURES
- New - lmc()and- rmc()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 for- F77_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 in- mc().
-  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 for- mc().
Misc
- rather "truncating" - +/-- Infto <large>, use- NA.OK = TRUEin- Qn()and- Sn()'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 use- FCONErather 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 calls- matrix(x, n,4)where the length of x does not match- 4n. 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 the- all.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 use- RNGversion("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 in- summary(lmrob(*)), and when- print()ing it, a note about omitted observations, e.g., because of- NA's, is made as for- lm().
- 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 new- lmrob.control()argument- scale.tolwhich defaults to- 1e-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, as- C_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()gets- modeloption to ask for the- model.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 for- vcov()gets optional argument- complete = 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 function- hatvalues(), and also export its lower level workhorse- .lmrob.hat()(formerly hidden- lmrob.leverages()), which now by default has- names(.).
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 as- wgtFUNoption for- covMcd()or- covComed().
- New utility - colMedians()and- rowMedians, 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
- .