Learn R Programming

VGAM (version 0.7-1)

beta.ab: The Two-parameter Beta Distribution Family Function

Description

Estimation of the shape parameters of the two-parameter beta distribution.

Usage

beta.ab(lshape1="loge", lshape2="loge",
        eshape1=list(), eshape2=list(),
        i1 = NULL, i2 = NULL, trim = 0.05,
        A = 0, B = 1, parallel=FALSE, zero=NULL)

Arguments

Value

Details

The two-parameter beta distribution is given by $f(y) =$ $$(y-A)^{shape1-1} \times (B-y)^{shape2-1} / [Beta(shape1,shape2) \times (B-A)^{shape1+shape2-1}]$$ for $A < y < B$, and $Beta(.,.)$ is the beta function (see beta). The shape parameters are positive, and here, the limits $A$ and $B$ are known. The mean of $Y$ is $E(Y) = A + (B-A) \times shape1 / (shape1 + shape2)$, and these are the fitted values of the object.

For the standard beta distribution the variance of $Y$ is $shape1 \times shape2 / [(1+shape1+shape2) \times (shape1+shape2)^2]$. If $\sigma^2= 1 / (1+shape1+shape2)$ then the variance of $Y$ can be written $\sigma^2 \mu (1-\mu)$ where $\mu=shape1 / (shape1 + shape2)$ is the mean of $Y$.

Another parameterization of the beta distribution involving the mean and a precision parameter is implemented in betaff.

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

References

Johnson, N. L. and Kotz, S. and Balakrishnan, N. (1995) Chapter 25 of: Continuous Univariate Distributions, 2nd edition, Volume 2, New York: Wiley.

Gupta, A. K. and Nadarajah, S. (2004) Handbook of Beta Distribution and Its Applications, New York: Marcel Dekker. Documentation accompanying the VGAM package at http://www.stat.auckland.ac.nz/~yee contains further information and examples.

See Also

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

Examples

Run this code
betadat = data.frame(y = rbeta(n=1000, shape1=exp(0), shape2=exp(1)))
fit = vglm(y ~ 1, beta.ab(lshape1="identity", lshape2="identity"),
           data=betadat, trace=TRUE, crit="c")
fit = vglm(y ~ 1, beta.ab, data=betadat, trace=TRUE, crit="c")
coef(fit, matrix=TRUE)
Coef(fit)  # Useful for intercept-only models

betadat = transform(betadat, Y = 5 + 8 * y)   # From 5 to 13, not 0 to 1
fit = vglm(Y ~ 1, beta.ab(A=5, B=13), data=betadat, trace=TRUE)
Coef(fit)
c(meanY=with(betadat, mean(Y)), head(fitted(fit),2))

Run the code above in your browser using DataLab