robustbetareg.control {robustbetareg}R Documentation

Auxiliary for Controlling robustbetareg Fitting

Description

Several parameters that control fitting of robust beta regression models using robustbetareg.

Usage

robustbetareg.control(
  start = NULL,
  alpha.optimal = TRUE,
  tolerance = 0.001,
  maxit = 5000,
  L = 0.02,
  M = 3,
  ...
)

Arguments

start

an optional vector with starting values for the parameter estimates.

alpha.optimal

a logical value. If TRUE the tuning constant will be select via the data-driven algorithm.

tolerance

numeric tolerance for convergence.

maxit

argument passed to optim.

L

numeric specifying the threshold for the data-driven algorithm. Default is L = 0.02.

M

integer specifying the number of grid spacing for the data-driven algorithm. Default is M = 3.

...

currently not used.

Details

The robustbetareg.control controls the fitting process of the robust estimation in beta regression via the LMDPDE, LSMLE, MDPDE, and SMLE. The arguments L and M are passed to the data-driven algorithm for selecting the optimum alpha value; details can be found in Ribeiro and Ferrari (2022). Starting values for the parameters associated to the mean and precision submodels may be supplied via start.
We do not recommend changing the arguments passed to the data-driven algorithm.

Value

A list with components named as the arguments.

Author(s)

Yuri S. Maluf (yurimaluf@gmail.com), Francisco F. Queiroz (ffelipeq@outlook.com) and Silvia L. P. Ferrari.

References

Maluf, Y.S., Ferrari, S.L.P., and Queiroz, F.F. (2022). Robust beta regression through the logit transformation. arXiv:2209.11315.

Ribeiro, K.A.T. and Ferrari, S.L.P. (2022). Robust estimation in beta regression via maximum Lq-likelihood. Statistical Papers. DOI: 10.1007/s00362-022-01320-0.

See Also

robustbetareg

Examples


data("Firm")

# Using a robust start value for the parameters associated with the
# mean submodel
# using the robustbase package
# robust regression to obtain a starting value for beta
fit_lm_Rob <- robustbase::lmrob(FIRMCOST ~ SIZELOG + INDCOST,
                                data = Firm)
initials_beta_rob <-  as.numeric(coef(fit_lm_Rob))
etarob <- model.matrix(fit_lm_Rob)%*%initials_beta_rob
muhat_Rob <- set.link(link.mu = "logit",
                      link.phi = "log")$linkfun.mu$inv.link(etarob)
T_1_Rob <- 1/set.link(link.mu = "logit",
                      link.phi = "log")$linkfun.mu$d.linkfun(muhat_Rob)
#estimate of variance of y based on robustbase package
sigma2hat_Rob <- ((fit_lm_Rob$scale^2)*(T_1_Rob^2))
#phi estimate from robust method
phihat_Rob <- mean((muhat_Rob*(1-muhat_Rob))/sigma2hat_Rob)
gama1hat_rob <- log(phihat_Rob)
#gamma estimates from robustbase package
initials_gama_rob <-  as.numeric(gama1hat_rob)
#robust starting values for beta and gamma
thetaStart <- c(initials_beta_rob, initials_gama_rob)

fit_LSMLE <- robustbetareg(FIRMCOST ~ SIZELOG + INDCOST,
                           data = Firm,
                           type = "LSMLE", link.phi = "log",
                           control = robustbetareg.control(start = thetaStart))


[Package robustbetareg version 0.3.0 Index]