Learn R Programming

VGAM (version 0.8-3)

betaff: The Two-parameter Beta Distribution Family Function

Description

Estimation of the mean and precision parameters of the beta distribution.

Usage

betaff(A = 0, B = 1,
       lmu = if (A == 0 & B == 1) "logit" else "elogit", lphi = "loge",
       emu = if (lmu == "elogit") list(min = A, max = B) else list(),
       ephi = list(), imu = NULL, iphi = NULL, imethod = 1, zero = NULL)

Arguments

A, B
Lower and upper limits of the distribution. The defaults correspond to the standard beta distribution where the response lies between 0 and 1.
lmu, lphi
Link function for the mean and precision parameters. See below for more details. See Links for more choices.
emu, ephi
List. Extra argument for the respective links. See earg in Links for general information.
imu, iphi
Optional initial value for the mean and precision parameters respectively. A NULL value means a value is obtained in the initialize slot.
imethod, zero
See CommonVGAMffArguments for more information.

Value

  • An object of class "vglmff" (see vglmff-class). The object is used by modelling functions such as vglm, and vgam.

Details

The two-parameter beta distribution can be written $f(y) =$ $$(y-A)^{\mu_1 \phi-1} \times (B-y)^{(1-\mu_1) \phi-1} / [beta(\mu_1 \phi,(1-\mu_1) \phi) \times (B-A)^{\phi-1}]$$ for $A < y < B$, and $beta(.,.)$ is the beta function (see beta). The parameter $\mu_1$ satisfies $\mu_1 = (\mu - A) / (B-A)$ where $\mu$ is the mean of $Y$. That is, $\mu_1$ is the mean of of a standard beta distribution: $E(Y) = A + (B-A) \times \mu_1$, and these are the fitted values of the object. Also, $\phi$ is positive and $A < \mu < B$. Here, the limits $A$ and $B$ are known.

Another parameterization of the beta distribution involving the raw shape parameters is implemented in beta.ab.

For general $A$ and $B$, the variance of $Y$ is $(B-A)^2 \times \mu_1 \times (1-\mu_1) / (1+\phi)$. Then $\phi$ can be interpreted as a precision parameter in the sense that, for fixed $\mu$, the larger the value of $\phi$, the smaller the variance of $Y$. Also, $\mu_1 = shape1/(shape1+shape2)$ and $\phi = shape1+shape2$.

Fisher scoring is implemented. If $A$ and $B$ are unknown then the VGAM family function beta4() can be used to estimate these too.

References

Ferrari, S. L. P. and Francisco C.-N. (2004) Beta regression for modelling rates and proportions. Journal of Applied Statistics, 31, 799--815.

Documentation accompanying the VGAM package at http://www.stat.auckland.ac.nz/~yee contains further information and examples.

See Also

beta.ab, Beta, genbetaII, betaII, betabin.ab, betageometric, betaprime, rbetageom, rbetanorm, kumar, beta4, elogit.

Examples

Run this code
bdata = data.frame(y = rbeta(nn <- 1000, shape1 = exp(0), shape2 = exp(1)))
fit = vglm(y ~ 1, betaff, bdata, trace = TRUE)
coef(fit, matrix = TRUE)
Coef(fit)  # Useful for intercept-only models

# General A and B, and with a covariate
bdata = transform(bdata, x2 = runif(nn))
bdata = transform(bdata, mu = logit(0.5 - x2, inverse = TRUE),
                         prec = exp(3   + x2))  # prec == phi
bdata = transform(bdata, shape2 = prec * (1-mu),
                         shape1 = mu * prec)
bdata = transform(bdata, y = rbeta(nn, shape1 = shape1, shape2 = shape2))
bdata = transform(bdata, Y = 5 + 8 * y)   # From 5 to 13, not 0 to 1
fit = vglm(Y ~ x2, betaff(A = 5, B = 13), bdata, trace = TRUE)
coef(fit, matrix = TRUE)

Run the code above in your browser using DataLab