Learn R Programming

VGAM (version 1.1-9)

sinmad: Singh-Maddala Distribution Family Function

Description

Maximum likelihood estimation of the 3-parameter Singh-Maddala distribution.

Usage

sinmad(lscale = "loglink", lshape1.a = "loglink", lshape3.q = "loglink",
       iscale = NULL, ishape1.a = NULL, ishape3.q = NULL, imethod = 1,
       lss = TRUE, gscale = exp(-5:5), gshape1.a = exp(-5:5),
       gshape3.q = exp(-5:5), probs.y = c(0.25, 0.5, 0.75),
       zero = "shape")

Value

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

Arguments

lss

See CommonVGAMffArguments for important information.

lshape1.a, lscale, lshape3.q

Parameter link functions applied to the (positive) parameters \(a\), scale, and \(q\). See Links for more choices.

iscale, ishape1.a, ishape3.q, imethod, zero

See CommonVGAMffArguments for information. For imethod = 2 a good initial value for ishape3.q is needed to obtain good estimates for the other parameters.

gscale, gshape1.a, gshape3.q

See CommonVGAMffArguments for information.

probs.y

See CommonVGAMffArguments for information.

Author

T. W. Yee

Details

The 3-parameter Singh-Maddala distribution is the 4-parameter generalized beta II distribution with shape parameter \(p=1\). It is known under various other names, such as the Burr XII (or just the Burr distribution), Pareto IV, beta-P, and generalized log-logistic distribution. More details can be found in Kleiber and Kotz (2003).

Some distributions which are special cases of the 3-parameter Singh-Maddala are the Lomax (\(a=1\)), Fisk (\(q=1\)), and paralogistic (\(a=q\)).

The Singh-Maddala distribution has density $$f(y) = aq y^{a-1} / [b^a \{1 + (y/b)^a\}^{1+q}]$$ for \(a > 0\), \(b > 0\), \(q > 0\), \(y \geq 0\). Here, \(b\) is the scale parameter scale, and the others are shape parameters. The cumulative distribution function is $$F(y) = 1 - [1 + (y/b)^a]^{-q}.$$ The mean is $$E(Y) = b \, \Gamma(1 + 1/a) \, \Gamma(q - 1/a) / \Gamma(q)$$ provided \(-a < 1 < aq\); these are returned as the fitted values. This family function handles multiple responses.

References

Kleiber, C. and Kotz, S. (2003). Statistical Size Distributions in Economics and Actuarial Sciences, Hoboken, NJ, USA: Wiley-Interscience.

See Also

Sinmad, genbetaII, betaII, dagum, fisk, inv.lomax, lomax, paralogistic, inv.paralogistic, simulate.vlm.

Examples

Run this code
sdata <- data.frame(y = rsinmad(n = 1000, shape1 = exp(1),
                    scale = exp(2), shape3 = exp(0)))
fit <- vglm(y ~ 1, sinmad(lss = FALSE), data = sdata, trace = TRUE)
fit <- vglm(y ~ 1, sinmad(lss = FALSE, ishape1.a = exp(1)),
            data = sdata, trace = TRUE)
coef(fit, matrix = TRUE)
Coef(fit)
summary(fit)

# Harder problem (has the shape3.q parameter going to infinity)

set.seed(3)
sdata <- data.frame(y1 = rbeta(1000, 6, 6))
# hist(with(sdata, y1))
if (FALSE) {
# These struggle
  fit1 <- vglm(y1 ~ 1, sinmad(lss = FALSE), data = sdata, trace = TRUE)
  fit1 <- vglm(y1 ~ 1, sinmad(lss = FALSE), data = sdata, trace = TRUE,
               crit = "coef")
  Coef(fit1)
}
# Try this remedy:
fit2 <- vglm(y1 ~ 1, data = sdata, trace = TRUE, stepsize = 0.05, maxit = 99,
             sinmad(lss = FALSE, ishape3.q = 3, lshape3.q = "logloglink"))
             
coef(fit2, matrix = TRUE)
Coef(fit2)

Run the code above in your browser using DataLab