R: The Two-parameter Beta Distribution Family Function

betaff {VGAM} | R Documentation

## 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 = "logitlink", lphi = "loglink",
           imu = NULL, iphi = NULL,
           gprobs.y = ppoints(8), gphi  = exp(-3:5)/4, 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. The values A and B are extracted from the `min` and `max` arguments of `extlogitlink`. Consequently, only `extlogitlink` is allowed.
`imu, iphi` | Optional initial value for the mean and precision parameters respectively. A `NULL` value means a value is obtained in the `initialize` slot.
`gprobs.y, gphi, zero` | See `CommonVGAMffArguments` for more information.

### Details

The two-parameter beta distribution can be written f(y) =

(y-A)^(mu1*phi-1) * (B-y)^((1-mu1)*phi-1) / [beta(mu1*phi,(1-mu1)*phi) * (B-A)^(phi-1)]

for A < y < B, and beta(.,.) is the beta function (see `beta`). The parameter mu1 satisfies mu1 = (mu - A) / (B-A) where mu is the mean of Y. That is, mu1 is the mean of of a standard beta distribution: E(Y) = A + (B-A)*mu1, 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 `betaR`.

For general A and B, the variance of Y is (B-A)^2 * mu1 * (1-mu1) / (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, mu1=shape1/(shape1+shape2) and phi = shape1+shape2. Fisher scoring is implemented.

### Value

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

### Note

The response must have values in the interval (A, B). The user currently needs to manually choose `lmu` to match the input of arguments `A` and `B`, e.g., with `extlogitlink`; see the example below.

### Author(s)

Thomas W. Yee

### References

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

### See Also

`betaR`, `Beta`, `dzoabeta`, `genbetaII`, `betaII`, `betabinomialff`, `betageometric`, `betaprime`, `rbetageom`, `rbetanorm`, `kumar`, `extlogitlink`, `simulate.vlm`.

### Examples

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

    # General A and B, and with a covariate
    bdata <- transform(bdata, x2 = runif(nn))
    bdata <- transform(bdata, mu   = logitlink(0.5 - x2, inverse = TRUE),
                              prec =   exp(3.0 + 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, data = bdata, trace = TRUE,
                betaff(A = 5, B = 13, lmu = extlogitlink(min = 5, max = 13)))
    coef(fit, matrix = TRUE)

[Package VGAM version 1.1-3 Index]