Learn R Programming

VGAM (version 1.1-5)

betaprime: The Beta-Prime Distribution

Description

Estimation of the two shape parameters of the beta-prime distribution by maximum likelihood estimation.

Usage

betaprime(lshape = "loglink", ishape1 = 2, ishape2 = NULL, zero = NULL)

Arguments

lshape

Parameter link function applied to the two (positive) shape parameters. See Links for more choices.

ishape1, ishape2, zero

Value

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

Details

The beta-prime distribution is given by $$f(y) = y^{shape1-1} (1+y)^{-shape1-shape2} / B(shape1,shape2)$$ for \(y > 0\). The shape parameters are positive, and here, \(B\) is the beta function. The mean of \(Y\) is \(shape1 / (shape2-1)\) provided \(shape2>1\); these are returned as the fitted values.

If \(Y\) has a \(Beta(shape1,shape2)\) distribution then \(Y/(1-Y)\) and \((1-Y)/Y\) have a \(Betaprime(shape1,shape2)\) and \(Betaprime(shape2,shape1)\) distribution respectively. Also, if \(Y_1\) has a \(gamma(shape1)\) distribution and \(Y_2\) has a \(gamma(shape2)\) distribution then \(Y_1/Y_2\) has a \(Betaprime(shape1,shape2)\) distribution.

References

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

See Also

betaff, Beta.

Examples

Run this code
# NOT RUN {
nn <- 1000
bdata <- data.frame(shape1 = exp(1), shape2 = exp(3))
bdata <- transform(bdata, yb = rbeta(nn, shape1, shape2))
bdata <- transform(bdata, y1 = (1-yb) /    yb,
                          y2 =    yb  / (1-yb),
                          y3 = rgamma(nn, exp(3)) / rgamma(nn, exp(2)))

fit1 <- vglm(y1 ~ 1, betaprime, data = bdata, trace = TRUE)
coef(fit1, matrix = TRUE)

fit2 <- vglm(y2 ~ 1, betaprime, data = bdata, trace = TRUE)
coef(fit2, matrix = TRUE)

fit3 <- vglm(y3 ~ 1, betaprime, data = bdata, trace = TRUE)
coef(fit3, matrix = TRUE)

# Compare the fitted values
with(bdata, mean(y3))
head(fitted(fit3))
Coef(fit3)  # Useful for intercept-only models
# }

Run the code above in your browser using DataLab