Learn R Programming

VGAM (version 0.9-4)

betaprime: The Beta-Prime Distribution

Description

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

Usage

betaprime(link = "loge", i1 = 2, i2 = NULL, zero = NULL)

Arguments

link
Parameter link function applied to the two (positive) shape parameters. See Links for more choices.
i1, i2
Initial values for the first and second shape parameters. A NULL value means it is obtained in the initialize slot. Note that i2 is obtained using i1.
zero
An integer-valued vector specifying which linear/additive predictors are modelled as intercepts only. The value must be from the set {1,2} corresponding respectively to shape1 and shape2 respectively. If zero=NULL

Value

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.

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

See Also

betaff, Beta.

Examples

Run this code
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