2f2089dcf6
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 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 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))'. 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.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. Misc: * 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. |
||
---|---|---|
.. | ||
DESCR | ||
distinfo | ||
Makefile |