cens.gumbel {VGAM} | R Documentation |
Censored Gumbel Distribution
Description
Maximum likelihood estimation of the 2-parameter Gumbel distribution when there are censored observations. A matrix response is not allowed.
Usage
cens.gumbel(llocation = "identitylink", lscale = "loglink",
iscale = NULL, mean = TRUE, percentiles = NULL,
zero = "scale")
Arguments
llocation , lscale |
Character.
Parameter link functions for the location and
(positive) |
iscale |
Numeric and positive.
Initial value for |
mean |
Logical. Return the mean? If |
percentiles |
Numeric with values between 0 and 100.
If |
zero |
An integer-valued vector specifying which linear/additive
predictors are modelled as intercepts only. The value
(possibly values) must be from the set {1,2} corresponding
respectively to |
Details
This VGAM family function is like gumbel
but handles observations that are left-censored (so that
the true value would be less than the observed value) else
right-censored (so that the true value would be greater than
the observed value). To indicate which type of censoring,
input
extra = list(leftcensored = vec1, rightcensored = vec2)
where vec1
and vec2
are logical vectors
the same length as the response.
If the two components of this list are missing then the
logical values are taken to be FALSE
. The fitted
object has these two components stored in the extra
slot.
Value
An object of class "vglmff"
(see
vglmff-class
). The object is used by modelling
functions such as vglm
and vgam
.
Warning
Numerical problems may occur if the amount of censoring is excessive.
Note
See gumbel
for details about the Gumbel
distribution. The initial values are based on assuming all
uncensored observations, therefore could be improved upon.
Author(s)
T. W. Yee
References
Coles, S. (2001). An Introduction to Statistical Modeling of Extreme Values. London: Springer-Verlag.
See Also
gumbel
,
gumbelff
,
rgumbel
,
guplot
,
gev
,
venice
.
Examples
# Example 1
ystar <- venice[["r1"]] # Use the first order statistic as the response
nn <- length(ystar)
L <- runif(nn, 100, 104) # Lower censoring points
U <- runif(nn, 130, 135) # Upper censoring points
y <- pmax(L, ystar) # Left censored
y <- pmin(U, y) # Right censored
extra <- list(leftcensored = ystar < L, rightcensored = ystar > U)
fit <- vglm(y ~ scale(year), data = venice, trace = TRUE, extra = extra,
fam = cens.gumbel(mean = FALSE, perc = c(5, 25, 50, 75, 95)))
coef(fit, matrix = TRUE)
head(fitted(fit))
fit@extra
# Example 2: simulated data
nn <- 1000
ystar <- rgumbel(nn, loc = 1, scale = exp(0.5)) # The uncensored data
L <- runif(nn, -1, 1) # Lower censoring points
U <- runif(nn, 2, 5) # Upper censoring points
y <- pmax(L, ystar) # Left censored
y <- pmin(U, y) # Right censored
## Not run: par(mfrow = c(1, 2)); hist(ystar); hist(y);
extra <- list(leftcensored = ystar < L, rightcensored = ystar > U)
fit <- vglm(y ~ 1, trace = TRUE, extra = extra, fam = cens.gumbel)
coef(fit, matrix = TRUE)