gen.betaIImr | R Documentation |
Maximum likelihood estimation of the 4-parameter generalized beta II distribution using Fisher scoring.
gen.betaIImr(lscale = "loglink",
lshape1.a = "loglink",
lshape2.p = "loglink",
lshape3.q = "loglink",
iscale = NULL,
ishape1.a = NULL,
ishape2.p = NULL,
ishape3.q = NULL,
imethod = 1,
lss = TRUE,
gscale = exp(-5:5),
gshape1.a = exp(-5:5),
gshape2.p = exp(-5:5),
gshape3.q = exp(-5:5),
probs.y = c(0.25, 0.50, 0.75),
zero = "shape" )
lscale, lshape1.a, lshape2.p, lshape3.q |
Parameter link functions applied to the
shape parameter |
iscale, ishape1.a, ishape2.p, ishape3.q |
Optional initial values for |
imethod |
Initializing method to internally compute the initial values.
Currently, only |
gscale, gshape1.a, gshape2.p, gshape3.q |
Grid search initial values.
See |
zero |
Numeric or Character vector. Position(s) or name(s) of the
parameters/linear predictors to be modeled as intercept-only.
Details at
|
lss, probs.y |
See |
This distribution is most useful for unifying a substantial number of size distributions. For example, the Singh-Maddala, Dagum, Fisk (log-logistic), Lomax (Pareto type II), inverse Lomax, beta distribution of the second kind distributions are all special cases. Full details can be found in Kleiber and Kotz (2003), and Brazauskas (2002). The argument names given here are used by other families that are special cases of this family. Fisher scoring is used here and for the special cases too.
The 4-parameter generalized beta II distribution has density
f(y) = a y^{ap-1} / [b^{ap} B(p,q) \{1 + (y/b)^a\}^{p+q}]
for a > 0
, b > 0
, p > 0
, q > 0
,
y \geq 0
.
Here B
is the beta function, and
b
is the scale parameter scale
,
while the others are shape parameters.
The mean is
E(Y) = b \, \Gamma(p + 1/a) \, \Gamma(q - 1/a) /
(\Gamma(p) \, \Gamma(q))
provided -ap < 1 < aq
; these are returned as the fitted values.
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
,
and vgam
.
zero
can be a numeric or a character vector
specifying the position(s) or the name(s) (partially or not) of the linear
predictors modeled as intercept–only. Numeric values can be
entered as usual. If names are used, note that the linear predictors in
this family function are
c("scale", "shape1.a", "shape2.p", "shape3.q")
.
For simplicity, using names rather than numeric vectors is recommended.
Paramaters "shape1.a", "shape2.p", "shape3.q"
are modeled
as intercept only, by default.
If the self-starting initial values fail, try experimenting
with the initial value arguments, iscale
, ishape1.a
,
ishape2.p
and ishape3.q
whose default is NULL
.
Also, the constraint -ap < 1 < aq
may be violated as the
iterations progress so it is worth monitoring convergence, e.g.,
set trace = TRUE
.
Successful convergence depends on choosing good initial values. This
process might be difficult for this distribution, since 4 parameters are
involved. Presently, only method = 1
is internally handled to set
initial values. It involves grid search, an internal implementation
of the well-known grid search algorithm for exhaustive searching through
a manually specified subset of the hyperparameter space.
Default value of lss
is TRUE
standing for the
following order: location (b), shape1.a (a), shape2.p (p),
shape3.q (q). In order to match the arguments of existing R functions,
the option lss = FALSE
might be set leading to switch the
position of location (b) and shape1.a (a), only.
T. W. Yee and V. Miranda.
Brazauskas, V. (2002) Fisher information matrix for the Feller-Pareto distribution. Statistics & Probability Letters, 59, 159–167.
Kleiber, C. and Kotz, S. (2003) Statistical Size Distributions in Economics and Actuarial Sciences. Wiley Series in Probability and Statistics. Hoboken, New Jersey, USA.
McDonald, J. B. and Xu, Y. J. (1995) A generalization of the beta distribution with applications. Journal of Econometrics. 66, p.133–152.
McDonald, J. B. (1984) Some generalized functions for the size distribution of income. Econometrica, 52, 647–663.
betaff
,
betaII
,
dagum
,
sinmad
,
fisk
,
lomax
,
inv.lomax
,
paralogistic
,
inv.paralogistic
,
genbetaIIDist
.
#----------------------------------------------------------------------- #
# An example.- In this data set parameters 'shape1.a' and 'shape3.q' are
# generated in terms of x2.
set.seed(1003)
nn <- 200
gdata1 <- data.frame(x2 = runif(nn))
gdata <- transform(gdata1,
y1 = rgen.betaII(nn, scale = exp(1.1), shape1.a = exp(1.2 + x2),
shape2.p = exp(0.7) , shape3.q = exp(2.1 - x2)),
y2 = rgen.betaII(nn, scale = exp(2.0), shape1.a = exp(1.8 + x2),
shape2.p = exp(2.3) , shape3.q = exp(1.9 - x2)),
y3 = rgen.betaII(nn, scale = exp(1.5), shape1.a = exp(1.8),
shape2.p = exp(2.3) , shape3.q = exp(1.3)))
#------------------------------------------------------------------------#
# A single intercept-only model. No covariates.
# Note the use of (optional) initial values.
fit <- vglm(y2 ~ 1, #y3 ~ 1
gen.betaIImr(lss = TRUE,
# OPTIONAL INITIAL VALUES
#iscale = exp(1.5),
#ishape1.a = exp(1.8),
#ishape2.p = exp(2.3),
#ishape3.q = exp(1.3),
imethod = 1),
data = gdata, trace = TRUE, crit = "loglik")
Coef(fit)
coef(fit, matrix = TRUE)
summary(fit)
#------------------------------------------------------------------------#
# An intercept-only model. Two responses.
fit1 <- vglm(cbind(y2, y2) ~ 1, # cbind(y1, y2)
gen.betaIImr(lss = TRUE),
data = gdata, trace = TRUE, crit = "loglik")
Coef(fit1)
coef(fit1, matrix = TRUE)
summary(fit1)
vcov(fit1, untransform = TRUE)
#------------------------------------------------------------------------#
# An example incorporating one covariate. Constraints are set accordingly.
# x2 affects shape1.a and shape3.q.
# Note that the first option uses 'constraints', whilst in the second
# choice we use the argument 'zero' to 'set' the same constraints.
### Option 1.
c1 <- rbind(0, 1, 0, 0)
c2 <- rbind(0, 0, 0, 1)
mycons <- matrix( c(c1, c2), nc = 2, byrow = FALSE)
fit2 <- vglm(y1 ~ x2, gen.betaIImr(lss = TRUE, zero = NULL),
data = gdata, trace = TRUE, crit = "loglik",
constraints = list(x2 = mycons ))
coef(fit2, matrix = TRUE)
summary(fit2)
vcov(fit2)
constraints(fit2)
### Option 2.
fit3 <- vglm(y1 ~ x2,
gen.betaIImr(lss = TRUE,
zero = c("scale", "shape2.p")),
data = gdata, trace = TRUE, crit = "loglik")
coef(fit3, matrix = TRUE)
summary(fit3)
vcov(fit3)
constraints(fit3)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.