gen.betaIImr  R Documentation 
Maximum likelihood estimation of the 4parameter 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 interceptonly.
Details at

lss, probs.y 
See 
This distribution is most useful for unifying a substantial number of size distributions. For example, the SinghMaddala, Dagum, Fisk (loglogistic), 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 4parameter generalized beta II distribution has density
f(y) = a y^{ap1} / [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 vglmffclass
).
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 selfstarting 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 wellknown 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 FellerPareto 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 interceptonly 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 interceptonly 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.