Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

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

See CommonVGAMffArguments.

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 Y1 has a gamma(shape1) distribution and Y2 has a gamma(shape2) distribution then Y1/Y2 has a Betaprime(shape1,shape2) distribution.

Value

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

Note

The response must have positive values only.

The beta-prime distribution is also known as the beta distribution of the second kind or the inverted beta distribution.

Author(s)

Thomas W. Yee

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

Examples

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

VGAM

Vector Generalized Linear and Additive Models

v1.1-5
GPL-3
Authors
Thomas Yee [aut, cre], Cleve Moler [ctb] (author of several LINPACK routines)
Initial release
2021-01-13

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.