x0: a numeric n∗(p−1) matrix containing the explanatory variables.
y: numeric n-vector of binomial (0 - 1) responses.
initwml: logical for selecting one of the two possible methods for computing the initial value of the optimization process.
If initwml is true (default), a weighted ML estimator is computed with weights derived from the MCD estimator computed on the explanatory variables.
If initwml is false, a classical ML fit is perfomed. When the explanatory variables contain binary observations, it is recommended to set initwml to FALSE or to modify the code of the algorithm to compute the weights only on the continuous variables.
addIntercept: logical indicating that a column of 1 must be added the x matrix.
const: tuning constant used in the computation of the estimator (default=0.5).
kmax: maximum number of iterations before convergence (default=1000).
maxhalf: max number of step-halving (default=10).
sigma.min: smallest value of the scale parameter before implosion (and hence non-convergence) is assumed.
trace.lev: logical (or integer) indicating if intermediate results should be printed; defaults to 0 (the same as FALSE).
Returns
a list with components - convergence: logical indicating if convergence was achieved
objective: the value of the objective function at the minimum
coefficients: vector of parameter estimates
vcov: variance-covariance matrix of the coefficients (if convergence is TRUE).
sterror: standard errors, i.e., simply sqrt(diag(.$vcov)), if convergence.
References
Croux, C., and Haesbroeck, G. (2003) Implementing the Bianco and Yohai estimator for Logistic Regression, Computational Statistics and Data Analysis 44 , 273--295.
Ana M. Bianco and Víctor J. Yohai (1996) Robust estimation in the logistic regression model. In Helmut Rieder, Robust Statistics, Data Analysis, and Computer Intensive Methods, Lecture Notes in Statistics 109 , pages 17--34.
Author(s)
Originally, Christophe Croux and Gentiane Haesbroeck, with thanks to Kristel Joossens and Valentin Todorov for improvements.
Speedup, tweaks, more control arguments: Martin Maechler.
See Also
The more typical way to compute BY-estimates (via formula and methods): glmrob(*, method = "WBY") and .. method = "BY".
Examples
set.seed(17)x0 <- matrix(rnorm(100,1))y <- rbinom(100, size=1, prob=0.5)# ~= as.numeric(runif(100) > 0.5)BY <- BYlogreg(x0,y)BY <- BYlogreg(x0,y, trace.lev=TRUE)## The "Vaso Constriction" aka "skin" data:data(vaso)vX <- model.matrix(~ log(Volume)+ log(Rate), data=vaso)vY <- vaso[,"Y"]head(cbind(vX, vY))# 'X' does include the interceptvWBY <- BYlogreg(x0 = vX, y = vY, addIntercept=FALSE)# as 'vX' has it alreadyv.BY <- BYlogreg(x0 = vX, y = vY, addIntercept=FALSE, initwml=FALSE)## they are relatively close, well used to be closer than now,## with the (2023-05, VT) change of covMcd() scale-correctionstopifnot( all.equal(vWBY, v.BY, tolerance =0.008))# was ~ 1e-4 till 2023-05