NEWS | R Documentation |
News for R Package robustbase
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.only
for 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
\texorpdfstring
inside\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_HEADERS
now (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\psi
by\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
NOTE
s. -
‘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/2
residuals 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} > 0
to continue providing efficient SM / MM estimates.-
lmrob.control()
gets class"lmrobCtrl"
which can beprint()
ed andupdate()
d. New tuning const
zero.scale = 1e-10
instead of hardwiredEPS_ZERO
inlmrob.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.S
and changedformals
compatible 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 aweights
component fromobj
if 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
mf
e.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=TRUE
does 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=FALSE
in 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=FALSE
has been amended in the C code to be more compatible in itseps
checks 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"
+/-
Inf
to <large>, useNA.OK = TRUE
inQn()
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 = FALSE
option and now work whenx
hasNA
s and contains\pm
Inf
.
Misc
No longer include ‘Rdefines.h’ as it is somewhat deprecated.
In ‘src/lmrob.c’ add
USE_FC_LEN_T
and useFCONE
rather than the older FCLEN approach.
CHANGES in robustbase VERSION 0.93-8 (2021-06-01, svn r879)
NEW FEATURES
-
scaleTau2()
gets new optionaliter = 1
andtol.iter
arguments; 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 withInf
and very large values, and obeys newna.rm = FALSE
argument. add
check.environment=FALSE
to some of theall.equal()
calls (for 'R-devel', i.e., future R 4.1.x).-
wgt.himedian(numeric())
now returnsNA
instead 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 treatscharacter
columns also as categorical (the same asfactor
s).
Tweaks
Small updates, also in checks for newer compiler settings, e.g.,
FCLEN
macro; 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-mismatch
is 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
ask
in plot methods formcd
andlts
-
‘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 optionaldoScale
argument, and increased defaults for the toleranceseps1 = 1e-14, eps2 = 1e-15
such that it should converge by default in more cases.
A
na.action
is 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_redescender
now 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.tol
which 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 = 3
or 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$algorithm
now always contains the algorithm used as acharacter
string, compatibly withnls()
. new data set
steamUse
.Vignette ‘lmrob_simulation.Rnw’: fixed the wrong “emprical power” plots; with faster ggplot2, remove all
eval=FALSE
for plots and longer store the ‘*.pdf’s.nlrob()
getsmodel
option to ask for themodel.frame
to be returned.
BUG FIXES
-
lmrob(..., method = "S")
no longer necessarily produces a warning in.vcov.w()
. -
nlrob()
returns a correctdataClasses
component.
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.samp
andtrace.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 optionalsigma0
argument and now returns zero instead ofNaN
whensigma0 == 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 whenx
andy
are specified, but neithermethod
norobj
is.
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 = TRUE
argument 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 calledcov
instead ofcov.unscaled
(because it is scaled). Code which has been usingvcov(<lmrob>)
or<lmrob> $ cov
, or even<summary.lmrob> $ cov
is 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=TRUE
behavior. 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 aswgtFUN
option 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 ofclower
andcupper
and fix an “eternal” erronous\pm
swap; 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 (newexactfit
code 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
.