Maximum likelihood estimation of the 3-parameter Singh-Maddala distribution.
sinmad(lscale = "loge", lshape1.a = "loge", lshape3.q = "loge",
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")
See CommonVGAMffArguments
for important information.
Parameter link functions applied to the
(positive) parameters \(a\), scale
, and \(q\).
See Links
for more choices.
See CommonVGAMffArguments
for information.
For imethod = 2
a good initial value for
ishape3.q
is needed to obtain good estimates for
the other parameters.
See CommonVGAMffArguments
for information.
See CommonVGAMffArguments
for information.
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
,
and vgam
.
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.
Kleiber, C. and Kotz, S. (2003) Statistical Size Distributions in Economics and Actuarial Sciences, Hoboken, NJ, USA: Wiley-Interscience.
Sinmad
,
genbetaII
,
betaII
,
dagum
,
fisk
,
inv.lomax
,
lomax
,
paralogistic
,
inv.paralogistic
,
simulate.vlm
.
# NOT RUN { 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, sinmad(lss = FALSE, ishape3.q = 3, lshape3.q = "loglog"), data = sdata, trace = TRUE, stepsize = 0.05, maxit = 99) coef(fit2, matrix = TRUE) Coef(fit2) # }
Run the code above in your browser using DataCamp Workspace