R: MM-, Tau-, CM-, and MTL- Estimators for Nonlinear Robust...

nlrob-algorithms {robustbase} | R Documentation

## MM-, Tau-, CM-, and MTL- Estimators for Nonlinear Robust Regression

### Description

"MM":

  Compute an MM-estimator for nonlinear robust (constrained) regression.

"tau":

  Compute a Tau-estimator for nonlinear robust (constrained) regression.

"CM":

  Compute a “Constrained M” (=: CM) estimator for nonlinear robust (constrained) regression.

"MTL":

  Compute a “Maximum Trimmed Likelihood” (=: MTL) estimator for nonlinear robust (constrained) regression.

### Usage

    ## You can *not* call the  nlrob(*, method = <M>) like this ==> see  help(nlrob)
    ## ------- ===== ------------------------------------------

    nlrob.MM(formula, data, lower, upper,
    	 tol = 1e-06,
    	 psi = c("bisquare", "lqq", "optimal", "hampel"),
             init = c("S", "lts"),
    	 ctrl = nlrob.control("MM", psi = psi, init = init, fnscale = NULL,
    		       tuning.chi.scale = .psi.conv.cc(psi, .Mchi.tuning.defaults[[psi]]),
    		       tuning.psi.M     = .psi.conv.cc(psi, .Mpsi.tuning.defaults[[psi]]),
    		       optim.control = list(), optArgs = list(...)),
    	 ...)

    nlrob.tau(formula, data, lower, upper,
    	  tol = 1e-06, psi = c("bisquare", "optimal"),
    	  ctrl = nlrob.control("tau", psi = psi, fnscale = NULL,
    			tuning.chi.scale = NULL, tuning.chi.tau = NULL,
    			optArgs = list(...)),
    	  ...)

    nlrob.CM(formula, data, lower, upper,
    	 tol = 1e-06,
    	 psi = c("bisquare", "lqq", "welsh", "optimal", "hampel", "ggw"),
    	 ctrl = nlrob.control("CM", psi = psi, fnscale = NULL,
                            tuning.chi = NULL, optArgs = list(...)),
    	 ...)

    nlrob.mtl(formula, data, lower, upper,
    	  tol = 1e-06,
    	  ctrl = nlrob.control("mtl", cutoff = 2.5, optArgs = list(...)),
    	  ...)

### Arguments

`formula` | nonlinear regression `formula`, using both variable names from `data` and parameter names from either `lower` or `upper`.
`data` | data to be used, a `data.frame`
`lower, upper` | bounds aka “box constraints” for all the parameters, in the case "CM" and "mtl" these must include the error standard deviation as `"sigma"`, see `nlrob()` about its `names`, etc. Note that one of these two must be a properly “named”, e.g., `names(lower)` being a `character` vector of parameter names (used in `formula` above).
`tol` | numerical convergence tolerance.
`psi, init` | see `nlrob.control`.
`ctrl` | a `list`, typically the result of a call to `nlrob.control`.
`tuning.psi.M` | ..

`optim.control` | ..

`optArgs` | a `list` of optional arguments for optimization, e.g., `trace = TRUE`, passed to to the optimizer, which currently must be `JDEoptim(.)`.
`...` | alternative way to pass the `optArgs` above.

### Details

Copyright 2013, Eduardo L. T. Conceicao. Available under the GPL (>= 2)

Currently, all four methods use `JDEoptim()` from DEoptimR, which subsamples using `sample()`. From R version 3.6.0, `sample` depends on `RNGkind(*, sample.kind)`, such that exact reproducibility of results from R versions 3.5.3 and earlier requires setting `RNGversion("3.5.0")`. In any case, do use `set.seed()` additionally for reproducibility!

### Value

an R object of `class` `"nlrob.<meth>"`, basically a list with components

### Author(s)

Eduardo L. T. Conceicao; compatibility (to `nlrob`) tweaks and generalizations, inference, by Martin Maechler.

### Source

For `"MTL"`: Maronna, Ricardo A., Martin, R. Douglas, and Yohai, Victor J. (2006). Robust Statistics: Theory and Methods Wiley, Chichester, p. 133.

### References

"MM":

  Yohai, V.J. (1987) High breakdown-point and high efficiency robust estimates for regression. The Annals of Statistics 15, 642–656.

"tau":

  Yohai, V.J., and Zamar, R.H. (1988). High breakdown-point estimates of regression by means of the minimization of an efficient scale. Journal of the American Statistical Association 83, 406–413.

"CM":

  Mendes, B.V.M., and Tyler, D.E. (1996) Constrained M-estimation for regression.

  In: Robust Statistics, Data Analysis and Computer Intensive Methods, Lecture Notes in Statistics 109, Springer, New York, 299–320.

"MTL":

  Hadi, Ali S., and Luceno, Alberto (1997). Maximum trimmed likelihood estimators: a unified approach, examples, and algorithms. Computational Statistics & Data Analysis 25, 251–272.

  Gervini, Daniel, and Yohai, Victor J. (2002). A class of robust and fully efficient regression estimators. The Annals of Statistics 30, 583–616.

### Examples

    DNase1 <- DNase[DNase$Run == 1,]
    form <- density ~ Asym/(1 + exp(( xmid -log(conc) )/scal ))
    pnms <- c("Asym", "xmid", "scal")
    set.seed(47) # as these by default use randomized optimization:

    fMM <- robustbase:::nlrob.MM(form, data = DNase1,
               lower = setNames(c(0,0,0), pnms), upper = 3,
               ## call to nlrob.control to pass 'optim.control':
               ctrl = nlrob.control("MM", optim.control = list(trace = 1),
                                    optArgs = list(trace = TRUE)))

    ## The same via nlrob() {recommended; same random seed to necessarily give the same}:
    set.seed(47)
    gMM  <- nlrob(form, data = DNase1, method = "MM",
                  lower = setNames(c(0,0,0), pnms), upper = 3, trace = TRUE)
    gMM
    summary(gMM)
    ## and they are the same {apart from 'call' and 'ctrl' and new stuff in gMM}:
    ni <- names(fMM); ni <- ni[is.na(match(ni, c("call","ctrl")))]
    stopifnot(all.equal(fMM[ni], gMM[ni]))

[Package robustbase version 0.93-9 Index]