perks {VGAM} | R Documentation |
Perks Distribution Family Function
Description
Maximum likelihood estimation of the 2-parameter Perks distribution.
Usage
perks(lscale = "loglink", lshape = "loglink",
iscale = NULL, ishape = NULL,
gscale = exp(-5:5), gshape = exp(-5:5),
nsimEIM = 500, oim.mean = FALSE, zero = NULL,
nowarning = FALSE)
Arguments
nowarning |
Logical. Suppress a warning? Ignored for VGAM 0.9-7 and higher. |
lscale , lshape |
Parameter link functions applied to the
shape parameter |
iscale , ishape |
Optional initial values.
A |
gscale , gshape |
|
nsimEIM , zero |
|
oim.mean |
To be currently ignored. |
Details
The Perks distribution has cumulative distribution function
F(y; \alpha, \beta) =
1 -
\left\{
\frac{1 + \alpha}{1 + \alpha e^{\beta y}}
\right\}^{1 / \beta}
which leads to a probability density function
f(y; \alpha, \beta) =
\left[ 1 + \alpha \right]^{1 / \beta}
\alpha e^{\beta y} / (1 + \alpha e^{\beta y})^{1 + 1 / \beta}
for \alpha > 0
,
\beta > 0
,
y > 0
.
Here, \beta
is called the scale parameter scale
,
and \alpha
is called a shape parameter.
The moments for this distribution do
not appear to be available in closed form.
Simulated Fisher scoring is used and multiple responses are handled.
Value
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions such as
vglm
, and vgam
.
Warning
A lot of care is needed because
this is a rather difficult distribution for parameter estimation.
If the self-starting initial values fail then try experimenting
with the initial value arguments, especially iscale
.
Successful convergence depends on having very good initial values.
Also, monitor convergence by setting trace = TRUE
.
Author(s)
T. W. Yee
References
Perks, W. (1932). On some experiments in the graduation of mortality statistics. Journal of the Institute of Actuaries, 63, 12–40.
Richards, S. J. (2012). A handbook of parametric survival models for actuarial use. Scandinavian Actuarial Journal. 1–25.
See Also
Examples
## Not run: set.seed(123)
pdata <- data.frame(x2 = runif(nn <- 1000)) # x2 unused
pdata <- transform(pdata, eta1 = -1,
ceta1 = 1)
pdata <- transform(pdata, shape1 = exp(eta1),
scale1 = exp(ceta1))
pdata <- transform(pdata, y1 = rperks(nn, sh = shape1, sc = scale1))
fit1 <- vglm(y1 ~ 1, perks, data = pdata, trace = TRUE)
coef(fit1, matrix = TRUE)
summary(fit1)
## End(Not run)