[RsR] Preliminary release of functions for robust nonlinear regression

Martin Maechler m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Wed Jun 26 13:04:01 CEST 2013


>>>>> Eduardo Conceicao <econceicao using kanguru.pt>
>>>>>     on Tue, 25 Jun 2013 23:23:45 +0100 writes:

    > Hi all,
    > I am making available some basic code for robust nonlinear regression. 
    > Currently, there are available three functions for the tau-, CM-, and MTL-
    > estimates with a rule for the adaptive choice of coverage.

    > Please, keep in mind that the code is in a very initial
    > stage. However, if you find it useful I want to use it, I
    > would be delighted.

Yes, indeed, I find it very useful!
    > License is GPL (>= 2).


Good! Note that you should mention the licence, some people say,
you should do so (once) in every source file.
I think you should do it in every file where you also say
'Copyright Eduardo Conceicao'.
But of course you said things were preliminary anyway..

    > I would very much appreciate comments regarding in particular 
    > (a) issues of statistical methodology and 
    > (b) ways of improving the code.

I only have had a quick look, and __ if you know me then you
know this is always the case __  "of course" I have small ways
of improving the code, that I can communicate to you,
not in this e-mail though, rather privately.

    > You can download file nonlinrobreg_0.0.1.zip from:
    > https://www.dropbox.com/s/1oiqiansbgzed4j/nonlinrobreg_0.0.1.zip


    > = A few details =
    > The implementation follows loosely the code of nlrob() from package 
    > robustbase. The approach for computing the estimates is the direct solution of 
    > the respective optimization problem using the Differential Evolution (DE) 
    > heuristic (coupled with an algorithm for dealing with constraints for the CM-
    > estimates).

Sounds really interesting..  I didn't know that yet at all.
Interesting how you then use the polynom arithmetic (from
'PolynomF') there

    > The code uses packages PolynomF, robustbase, and ggplot2.

    > The methods for predict(), coef(), resid(), etc. are those developed for nlrob(). 
    > However, summary() is not compatible.

Yes...  I'd like to help you making them more compatible if
possible.  
To make  vcov() work may be important, too, and linked to be
able to provide a good summary().

Also, I've been changing  nlrob() in robustbase itself,
(not yet finished, committed), notably allowing it to use the new
Mpsi(), Mchi(), Mwgt() functions in the latest release of
robustbase.

Also if you look at the latest research by Manuel Koller and
Werner Stahel, you see that "the optimal Psi" function is really
not at all optimal in some situations,
and it would be nice if the new  nlrob.*() estimators could also
use different  psi/chi/rho  functions.

We can (and should) talk about these details in private e-mail
exchange I think.


    > = Contents =
    > deopt.R: implementation of the jDE variant of the DE algorithm
    > test-funs.R: a few benchmark problems for unconstrained and constrained 
    > optimization
    > nlrobreg.R:
    > nlrob.tau() (tau-estimator),
    > nlrob.CM() (CM-estimator),
    > nlrob.mtl() (MTL-estimator with adaptive coverage)
    > example_nlrobreg: example (based on the example for nlrob() from package 
    > robustbase)


    > = Running the example =
    > library(PolinomF)
    > library(robustbase)
    > library(ggplot2)

    > source(deopt.R)
    > source(nlrobreg.R)
    > #run the code from the example file

Yes indeed, and that example is really very convincing!

Thank you very much Eduardo,
for this good and important contribution to  
"robustness with R" !!

Martin Maechler,
ETH Zurich


    > Eduardo
    > ----------------------------------------
    > Eduardo L. T. Conceicao             econceicao using kanguru.pt
    > CIEPQPF
    > Department of Chemical Engineering
    > University of Coimbra, Portugal

    > _______________________________________________
    > R-SIG-Robust using r-project.org mailing list
    > https://stat.ethz.ch/mailman/listinfo/r-sig-robust




More information about the R-SIG-Robust mailing list