small changes in ‘tests/lmrob-psifns.R’ and ‘*.Rout.save’, notably avoiding small diffs on "M1mac" and "noLD" (--disable-long-double
).
lmrob.fit()
gets new option bare.only
for some speed up, in case a relatively “bare” result is sufficient.
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 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_HEADERS
now (src/*.[ch]).
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}
.
fix thinko bug introduced exact fit checking in 0.99-0; thanks to the report by Thomas Mang.
document the ...
argument(s) of nlrob.control()
.
‘DESCRIPTION’: more URLSs.
‘*.Rd’ tweaks; avoiding other NOTE
s.
‘src/lmrob.c,mc.c,monitor.c’: format %lld etc
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 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} > 0
to continue providing efficient SM / MM estimates.
lmrob.control()
gets class "lmrobCtrl"
which can be print()
ed and update()
d.
New tuning const zero.scale = 1e-10
instead of hardwired EPS_ZERO
in 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))
.
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.S
and changed formals
compatible with generic to (object, ...)
.
lmrob.S()
in C level refine_fast_s()
no longer modifies beta_cand[]
which notably fixes a bug found in exact-fit examples previously resulting in coef() == 0
“results”, also for lmrob()
which calls lmrob.S()
for its default initial estimate.
print(<lmrob.S>)
finally works again as intended (not printing a largish list); mostly by fixing internal lmrob.control.minimal()
.
summary.lmrob(obj)
now also gets a weights
component from obj
if that is non-trivial; this may also correct summary()
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.
argument mf
e.g., in lmrob.fit()
has been deprecated since 2017-12-09 and is defunct now.
lmrob()
tweaks, notably saying more for trace.lev >= 3
.
replaceed (almost) all Calloc()
by R_alloc()
in C code; e.g., prevents leakage from user interrupt.
Fixed covMcd()
: raw.only=TRUE
does not work in the case nsamp="deterministic"
New lmc()
and rmc()
for robust tail weight (“robust kurtosis”).
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)
.
huberM(x, k)
now also works in small sample cases with +/-Inf
, e.g. for x = c(-Inf, 1)
.
New huberize()
utility, notably by default used in mc()
.
mc()
now by default uses doScale=FALSE
in order to guarantee convergence also in extreme cases when used together with new c.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 default doScale=FALSE
has been amended in the C code to be more compatible in its eps
checks with (the previous default) doScale=TRUE
.
Lastly, a message()
is printed currently, at most once per R session, whenever mc()
is called without an explicit specification of doScale=*
, alerting users to the changed default. This message can be turned off by setting options(mc_doScale_quiet = TRUE)
.
New dataset data(x30o50)
as an example of potentially problematic data, not just for mc()
.
rather "truncating" +/-
Inf
to <large>, use NA.OK = TRUE
in Qn()
and Sn()
's .C()
call.
Our C code no longer uses the DOUBLE_*
constants from S, but rather standard <float.h>
.
Qn(x)
and Sn(x)
gain an na.rm = FALSE
option and now work when x
has NA
s and contains \pm
Inf
.
No longer include ‘Rdefines.h’ as it is somewhat deprecated.
In ‘src/lmrob.c’ add USE_FC_LEN_T
and use FCONE
rather than the older FCLEN approach.
scaleTau2()
gets new optional iter = 1
and tol.iter
arguments; mostly experimentally to see if or when iteration makes sense.
Qn(x, *)
gets new optional k = .
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 hence Qn(x)
and mad(x)
are zero.
adjOutlyingness()
gets new option IQRtype = 7
.
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).
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’
Use \CRANpkg{.}
in most places, providing web links to the respective CRAN package page.
adjOutlyingness()
now gains optional parameters to be passed to mc()
.
update the internal man page, so new checkRdContents()
is happy.
fix several ‘\url{.}’'s that now are diagnosed as ‘moved’.
adjOutlyingness()
finally works with p.samp > p
.
scaleTau2()
now works with Inf
and very large values, and obeys new na.rm = FALSE
argument.
add check.environment=FALSE
to some of the all.equal()
calls (for 'R-devel', i.e., future R 4.1.x).
wgt.himedian(numeric())
now returns NA
instead of occasionally seg.faulting or inf.looping. Ditto for a case when called from Qn()
.
splitFrame()
now treats character
columns also as categorical (the same as factor
s).
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).
For tests: try harder in moreSessionInfo()
to detect openBLAS (should work for KH's debian openBLAS setup).
R_CHECK_LENGTH_1* fix in default value for ask
in plot methods for mcd
and lts
‘src/rowMedians.c’ gets better PROTECT()ion thanks to Tomas Kalibera's "rchk"s.
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’.
losen the strict tests, notably in ‘tests/nlregrob-tst.R’ to work around nls()
convergence issues on all non-standard BLAS platforms.
Update lmrob(<empty multivariate>)
to the change in R (incl 3.5.1 patched).
mc()
gets new optional doScale
argument, and increased defaults for the tolerances
eps1 = 1e-14, eps2 = 1e-15
such that it should converge by default in more cases.
A na.action
is 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 of find_scale()
iterations used (as these are now stored C internally).
‘src/robustbase.h’: is_redescender
now is static 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
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.
Mpsi(x, c, psi="huber", deriv=-1)
now gives rho(x) instead of mostly Inf
.
.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.tol
which defaults to 1e-10
, its formerly hardwired value.
lmrob.S()
further gets a new option only.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 level find_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$algorithm
now always contains the algorithm used as a character
string, compatibly with nls()
.
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()
gets model
option to ask for the model.frame
to be returned.
lmrob(..., method = "S")
no longer necessarily produces a warning in .vcov.w()
.
nlrob()
returns a correct dataClasses
component.
For use in non-R-internal BLAS/Lapack libraries, several ‘tests/*.R’ examples have been tweaked.
fullRank()
utility for adjOutlyingness
:
adjOutlyingness()
, gets new options p.samp
and trace.lev
, and when it fails to find enough good directions, now checks the rank and mentions fullRank()
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.
loosened some regression test tolerances (for alternatives to BLAS) in ‘tests/(mc-strict|poisson-ex)’.
scaleTau2(x, *)
gains an optional sigma0
argument and now returns zero instead of NaN
when sigma0 == 0
.
vignette(psi_functions)
adjOutlyingness(..., maxit.mult = max(100, p))
new option, allowing more iterations for finding “good” projection directions.
summary(nlrob(*, method = "CM"))
now works.
lmrob..MM..fit()
now works again when x
and y
are specified, but neither method
nor obj
is.
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(.)
.
.lmrob.hat()
(formerly lmrob.leverages()
) has been corrected for the rank-deficient case.
classPC(m)
now also works for a 1-column matrix.
Hidden print()
methods print.summary.lmrob()
and print.lmrob.S()
get a showAlgo = 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.
summary(lmrob(.))
's variance-covariance matrix is now called cov
instead of cov.unscaled
(because it is scaled). Code which has been using vcov(<lmrob>)
or <lmrob> $ cov
, or even <summary.lmrob> $ cov
is not affected.
Started this ‘NEWS.Rd’ file, to eventually replace the ‘ChangeLog’
plot.lmrob()
also identifies largest residuals as plot.lm()
. Also gets new argument panel
, and add.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!).
more careful in ‘../src/mc.c’ (valgrind, thanks to Brian)
add missing documentation, better examples for predict.lmrob
warn.limit.*
checks in lmrob*()
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 wgtFUN
option for covMcd()
or covComed()
.
New utility colMedians()
and rowMedians
, as we use columnwise medians in so many places.
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.
covMcd()
with new options (kmini
, nmini
) now ok (sometimes wrong in 0.92-1).
The deterministic MCD, via covMcd(..., nsamp="deterministic")
.
adjOutlyingness()
: reverse the defaults of clower
and cupper
and fix an “eternal” erronous \pm
swap; see new note in ‘man/adjOutlyingness.Rd’.
nlrob()
now works with indexed vector parameters.
new outlierStats()
(Manuel).
got rid of Fortran compiler warnings about ancient style.
nlrob(*, weigths)
, fixing R-forge bug #5988.
covMcd()
fix for “MAD = 0” case (new exactfit
code 3).
.
.
.
.
.
.
.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4