| 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 |
tolerance |
numeric tolerance for convergence. |
maxit |
argument passed to |
L |
numeric specifying the threshold for the data-driven algorithm.
Default is |
M |
integer specifying the number of grid spacing for the data-driven
algorithm. Default is |
... |
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
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))