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 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
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
0.4-0 [never released to CRAN]:
23) medcouple etc -
24) lmrob(): vcov() now exported; model.matrix() & predict()
now work too.
0.4-1:
25) glmrob(..., trace=TRUE) is now possible
26) lmrob():
Have split previous lmrob.MM() into lmrob..M..fit() and .vcov.MM(),
*however* the internal code allows only Tukey's biweight, i.e.,
redescending psi.
Still, lmrob..M..fit() computes a simple M-estimator there.
27) glmrob() : 'family = gaussian' is possible and just diverts to lmrob().
svn r215, 219 | rkst (+mm) | 2010-10-29:
28) predict.glmrob() and better predict.lmrob()
svn r220 | rkst | 2010-11-05:
29) summary.nlrob() + print() method summarizing robustness weights is there
30) residuals.glmrob() now implemented (and *somewhat* tested)
|