nlrob-algos function

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

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

  • "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.
## 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.

Returns

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

Details

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

Currently, all four methods use JDEoptim()

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

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]))