Control Parameters for Beta Regression
betareg.control.RdVarious parameters that control fitting of beta regression models
using betareg.
Usage
betareg.control(phi = TRUE, method = "BFGS", maxit = 5000,
gradient = NULL, hessian = FALSE, trace = FALSE, start = NULL,
fsmaxit = 200, fstol = 1e-8, quad = 20, ...)Arguments
- phi
logical indicating whether the precision parameter phi should be treated as a full model parameter (
TRUE, default) or as a nuisance parameter.- method
characters string specifying the
methodargument passed tooptim. Additionally,method = "nlminb"can be used to employnlminb, instead.- maxit
integer specifying the
maxitargument (maximal number of iterations) passed tooptim.- trace
logical or integer controlling whether tracing information on the progress of the optimization should be produced (passed to
optim).- gradient
logical. Should the analytical gradient be used for optimizing the log-likelihood? If set to
FALSEa finite-difference approximation is used instead. The default ofNULLsignals that analytical gradients are only used for the classical"beta"distribution but not for"xbetax"or"xbeta".- hessian
logical. Should the numerical Hessian matrix from the
optimoutput be used for estimation of the covariance matrix? By default the analytical solution is employed. For details see below.- start
an optional vector with starting values for all parameters (including phi).
- fsmaxit
integer specifying maximal number of additional (quasi) Fisher scoring iterations. For details see below.
- fstol
numeric tolerance for convergence in (quasi) Fisher scoring. For details see below.
- quad
numeric. The number of quadrature points for numeric integration in case of
dist = "xbetax"is used in the beta regression.- ...
arguments passed to
optim.
Details
All parameters in betareg are estimated by maximum likelihood
using optim with control options set in betareg.control.
Most arguments are passed on directly to optim, and start controls
how optim is called.
After the optim maximization, an additional (quasi) Fisher scoring
can be perfomed to further enhance the result or to perform additional bias reduction.
If fsmaxit is greater than zero, this additional optimization is
performed and it converges if the threshold fstol is attained
for the cross-product of the step size.
Starting values can be supplied via start or estimated by
lm.wfit, using the link-transformed response.
Covariances are in general derived analytically. Only if type = "ML" and
hessian = TRUE, they are determined numerically using the Hessian matrix
returned by optim. In the latter case no Fisher scoring iterations are
performed.
The main parameters of interest are the coefficients in the linear predictor of the
model and the additional precision parameter phi which can either
be treated as a full model parameter (default) or as a nuisance parameter. In the latter case
the estimation does not change, only the reported information in output from print,
summary, or coef (among others) will be different. See also examples.
Examples
options(digits = 4)
data("GasolineYield", package = "betareg")
## regression with phi as full model parameter
gy1 <- betareg(yield ~ batch + temp, data = GasolineYield)
gy1
#>
#> Call:
#> betareg(formula = yield ~ batch + temp, data = GasolineYield)
#>
#> Coefficients (mean model with logit link):
#> (Intercept) batch1 batch2 batch3 batch4 batch5
#> -6.160 1.728 1.323 1.572 1.060 1.134
#> batch6 batch7 batch8 batch9 temp
#> 1.040 0.544 0.496 0.386 0.011
#>
#> Phi coefficients (precision model with identity link):
#> (phi)
#> 440
#>
## regression with phi as nuisance parameter
gy2 <- betareg(yield ~ batch + temp, data = GasolineYield, phi = FALSE)
gy2
#>
#> Call:
#> betareg(formula = yield ~ batch + temp, data = GasolineYield, phi = FALSE)
#>
#> Coefficients (mean model with logit link):
#> (Intercept) batch1 batch2 batch3 batch4 batch5
#> -6.160 1.728 1.323 1.572 1.060 1.134
#> batch6 batch7 batch8 batch9 temp
#> 1.040 0.544 0.496 0.386 0.011
#>
## compare reported output
coef(gy1)
#> (Intercept) batch1 batch2 batch3 batch4 batch5
#> -6.15957 1.72773 1.32260 1.57231 1.05971 1.13375
#> batch6 batch7 batch8 batch9 temp (phi)
#> 1.04016 0.54369 0.49590 0.38579 0.01097 440.27839
coef(gy2)
#> (Intercept) batch1 batch2 batch3 batch4 batch5
#> -6.15957 1.72773 1.32260 1.57231 1.05971 1.13375
#> batch6 batch7 batch8 batch9 temp
#> 1.04016 0.54369 0.49590 0.38579 0.01097
summary(gy1)
#>
#> Call:
#> betareg(formula = yield ~ batch + temp, data = GasolineYield)
#>
#> Quantile residuals:
#> Min 1Q Median 3Q Max
#> -2.140 -0.570 0.120 0.704 1.751
#>
#> Coefficients (mean model with logit link):
#> Estimate Std. Error z value Pr(>|z|)
#> (Intercept) -6.159571 0.182325 -33.78 < 2e-16 ***
#> batch1 1.727729 0.101229 17.07 < 2e-16 ***
#> batch2 1.322597 0.117902 11.22 < 2e-16 ***
#> batch3 1.572310 0.116105 13.54 < 2e-16 ***
#> batch4 1.059714 0.102360 10.35 < 2e-16 ***
#> batch5 1.133752 0.103523 10.95 < 2e-16 ***
#> batch6 1.040162 0.106036 9.81 < 2e-16 ***
#> batch7 0.543692 0.109127 4.98 6.3e-07 ***
#> batch8 0.495901 0.108926 4.55 5.3e-06 ***
#> batch9 0.385793 0.118593 3.25 0.0011 **
#> temp 0.010967 0.000413 26.58 < 2e-16 ***
#>
#> Phi coefficients (precision model with identity link):
#> Estimate Std. Error z value Pr(>|z|)
#> (phi) 440 110 4 6.3e-05 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Type of estimator: ML (maximum likelihood)
#> Log-likelihood: 84.8 on 12 Df
#> Pseudo R-squared: 0.962
#> Number of iterations: 51 (BFGS) + 3 (Fisher scoring)
summary(gy2)
#>
#> Call:
#> betareg(formula = yield ~ batch + temp, data = GasolineYield, phi = FALSE)
#>
#> Quantile residuals:
#> Min 1Q Median 3Q Max
#> -2.140 -0.570 0.120 0.704 1.751
#>
#> Coefficients (mean model with logit link):
#> Estimate Std. Error z value Pr(>|z|)
#> (Intercept) -6.159571 0.182325 -33.78 < 2e-16 ***
#> batch1 1.727729 0.101229 17.07 < 2e-16 ***
#> batch2 1.322597 0.117902 11.22 < 2e-16 ***
#> batch3 1.572310 0.116105 13.54 < 2e-16 ***
#> batch4 1.059714 0.102360 10.35 < 2e-16 ***
#> batch5 1.133752 0.103523 10.95 < 2e-16 ***
#> batch6 1.040162 0.106036 9.81 < 2e-16 ***
#> batch7 0.543692 0.109127 4.98 6.3e-07 ***
#> batch8 0.495901 0.108926 4.55 5.3e-06 ***
#> batch9 0.385793 0.118593 3.25 0.0011 **
#> temp 0.010967 0.000413 26.58 < 2e-16 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Type of estimator: ML (maximum likelihood)
#> Log-likelihood: 84.8 on 12 Df
#> Pseudo R-squared: 0.962
#> Number of iterations: 51 (BFGS) + 3 (Fisher scoring)