Learn R Programming

robustbase (version 0.92-5)

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

Description

[object Object],[object Object],[object Object],[object Object]

Usage

## You can *not* call the  nlrob(*, method = ) like this
## ------- ===== ------------------------------------------

nlrob.MM(formula, data, pnames, 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, pnames, 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, pnames, 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, pnames, 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 pnames.
data
data to be used, a data.frame
pnames
a character vector of parameter names (used in formula above). Deprecated
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
tol
numerical convergence tolerance.
psi, init
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.

Value

  • an Robject of class "nlrob.", basically a list with components

source

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

Details

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

References

[object Object],[object Object],[object Object],[object Object]

Examples

Run this code
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]))
if(doExtras <- robustbase:::doExtras()) {
 gtau <- nlrob(form, data = DNase1, method = "tau",
	       lower = setNames(c(0,0,0), pnms), upper = 3, trace = TRUE)

 ## these two have "sigma" also as parameter :
 psNms <- c(pnms, "sigma")
 gCM  <- nlrob(form, data = DNase1, method = "CM",
	       lower = setNames(c(0,0,0,0), psNms), upper = 3, trace = TRUE)
 gmtl <- nlrob(form, data = DNase1, method = "mtl",
	       lower = setNames(c(0,0,0,0), psNms), upper = 3, trace = TRUE)
 stopifnot(identical(sapply(list(gMM, gCM, gmtl), estimethod),
                     c("MM", "CM", "mtl")))
}

Run the code above in your browser using DataLab