Singh-Maddala Distribution Family Function
Maximum likelihood estimation of the 3-parameter Singh-Maddala distribution.
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")
lss |
See |
lshape1.a, lscale, lshape3.q |
Parameter link functions applied to the
(positive) parameters a, |
iscale, ishape1.a, ishape3.q, imethod, zero |
See |
gscale, gshape1.a, gshape3.q |
See |
probs.y |
See |
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 >= 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.
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
,
and vgam
.
See the notes in genbetaII
.
T. W. Yee
Kleiber, C. and Kotz, S. (2003). Statistical Size Distributions in Economics and Actuarial Sciences, Hoboken, NJ, USA: Wiley-Interscience.
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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.