1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
o) we have had some problems, but they are solved now
---> tests/wgt-himed.R etc {MM, Dec.2005}
2) I think its wrong in principle to only work with *integer* weights
for 'whimed'.
Further note, that *because* of the integer weights, we need type
'long long' {because otherwise integer overflow kills everything}.
Using C Macro, we now have both, integer and double weights;
and I have tests of consistency in ./tests/
--> using wgt.himedian() as an R function {MM, Dec.2005}
Note however that a more general function (weighted quantiles) might be
of interest, see file ./TODO
3) Data Sets --- Valentin Todorov has several of Rousseeuw's
in his "rrov" package
--> got them, and dropped all *.x and *.y data sets
-- as part of the loaded data -- but kept a definition
<foo>.x <- as.matrix(.....)
in the examples section. {MM & VT, Dec.2005/Jan.2006}
4) covMcd( * ): replace 'print.it' by 'trace' which is more appropriate
and common in S
note that the if(!print.it) cat(..) statements were *wrong*;
They now all are if(trace) cat(..), since
computation should *Not* print anything for trace = FALSE
unless warnings and errors!
5) renamed tolellipse() to tolEllipsePlot()
all these plotting functions may *NOT* set par(mfrow = c(1,1)) !
6) considerable simplification in the correction factor computations
7) glmrob(): trailing "..." argument is now passed to glmrob<FOO>control()
8) make tests/wgt-himed-xtra.R an order of magnitude faster (less
simulations)
9) man/fitted.nlrob.Rd merged into man/nlrob.Rd
10) glmrob() now works when the internal glm.fit() returns NA coefficients
by dropping the corresponding columns (as Martin's "robGLM1" did).
11) 'family = binomial' is a problematic default, when OTOH,
glm() has 'family = gaussian' as a default.
==> have *NO* default, so users need to set family explicitly.
12) Instead of modsel.glmrob() [ R/modsel.glmrob.R ]
Andreas has provided anova.glmrob()
13) covOGK() is now consistent per default
because it is used with scaleTau2() which has now a constant
consistency factor by default.
0.1-5:
14) lmrob():
- add "..." to argument list in order to allow ``control in there'' as well
- now use Calloc()/Free() instead of malloc()/free()
- indentation etc more or less according to "R core coding standard"
- not using (many) 'register' -- since compiler optimization is often better
0.1-6:
15) lmrob():
- use "good" lin.algebra functions in lmrob.S and lmrob.MM
- change default to compute.rd = FALSE {no robust Mahalanobis distances;
are expensive, and only needed for some plotting
also MCD can "quickly" become singular.
- added 'trace.lev' argument to lmrob.S()
--> can have printing output during search
0.2-0:
16) lmrob) :
- 'seed': By default always same seed --> same result
even though algorithm is random.
INSTEAD: we now use R's RNG and .Random.seed!
- print(summary(.)) now summarizes the robustness weights
17) covMcd() and ltsReg(): now also use R's random number generator and
.Random.seed (unless the 'seed' argument is specified).
18) summary.mcd() now returns an object of class "summary.mcd"
and then print.summary.mcd() prints it.
0.2-1:
19) lmrob.S() now *does* convergence monitoring
0.2-7:
20) covOGK():
- made 'weight.fn = hard rejection' the default
- made 'n.iter = 2' the default.
0.2-8:
21) covMcd(): Finite sample correction is *WRONG* for quite small n !
22) lmrob(): use *relative* error for convergence check in RWLS
(MM-)iterations; allow to set the tolerance for these
allow some trace output
|