gpd(threshold = 0, lscale = "loge", lshape = logoff(offset = 0.5),
percentiles = c(90, 95), iscale = NULL, ishape = NULL,
tolshape0 = 0.001, giveWarning = TRUE, imethod = 1, zero = -2)
Links
for more choices.Links
for more choices.
The default constrains the parameter to be greater than $-0.5$
because if $\xi \leq -0.5$ then Fisher
scoring does nopercentiles = NULL
then the mean
$\mu + \sigma / (1-\xi)$ is returned;
this is only deimethod
and compute a value internally for
each parameter.
Values of ishape
should be between $-0.5$ and $1$.
Values of iscale
dgpd
when computing the log-likelihood.ishape
and/or iscale
."vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
and vgam
.
However, for this vglm
is probably preferred over vgam
when there is smoothing.vgam
with s
is used. Then smoothing is best done with
vglm
with regression splines (bs
or ns
) because vglm
implements
half-stepsizing whereas vgam
doesn't. Half-stepsizing
helps handle the problem of straying outside the parameter space.threshold
),
$\sigma > 0$ is the scale parameter,
$\xi$ is the shape parameter, and
$h_+ = \max(h,0)$.
The function $1-G$ is known as the survivor function.
The limit $\xi \rightarrow 0$
gives the shifted exponential as a special case:
Smith (1985) showed that if $\xi <= -0.5$="" then="" this="" is="" known="" as="" the="" nonregular="" case="" and="" problems="" difficulties="" can="" arise="" both="" theoretically="" numerically.="" for="" (regular)="" $\xi=""> -0.5$ the classical asymptotic theory of maximum likelihood estimators is applicable; this is the default.
Although for $\xi < -0.5$ the usual asymptotic properties do not apply, the maximum likelihood estimator generally exists and is superefficient for $-1 < \xi < -0.5$, so it is ``better'' than normal. When $\xi < -1$ the maximum likelihood estimator generally does not exist as it effectively becomes a two parameter problem.
The mean of $Y$ does not exist unless $\xi < 1$, and
the variance does not exist unless $\xi < 0.5$. So if
you want to fit a model with finite variance use lshape = "elogit"
.
Coles, S. (2001) An Introduction to Statistical Modeling of Extreme Values. London: Springer-Verlag.
Smith, R. L. (1985) Maximum likelihood estimation in a class of nonregular cases. Biometrika, 72, 67--90.
rgpd
,
meplot
,
gev
,
paretoff
,
vglm
,
vgam
,
s
.# Simulated data from an exponential distribution (xi = 0)
threshold <- 0.5
gdata <- data.frame(y1 = threshold + rexp(n = 3000, rate = 2))
fit <- vglm(y1 ~ 1, gpd(threshold = threshold), gdata, trace = TRUE)
head(fitted(fit))
coef(fit, matrix = TRUE) # xi should be close to 0
Coef(fit)
summary(fit)
fit@extra$threshold # Note the threshold is stored here
# Check the 90 percentile
ii <- depvar(fit) < fitted(fit)[1, "90%"]
100 * table(ii) / sum(table(ii)) # Should be 90%
# Check the 95 percentile
ii <- depvar(fit) < fitted(fit)[1, "95%"]
100 * table(ii) / sum(table(ii)) # Should be 95%
plot(depvar(fit), col = "blue", las = 1,
main = "Fitted 90% and 95% quantiles")
matlines(1:length(depvar(fit)), fitted(fit), lty = 2:3, lwd = 2)
# Another example
gdata <- data.frame(x2 = runif(nn <- 2000))
threshold <- 0; xi <- exp(-0.8) - 0.5
gdata <- transform(gdata, y2 = rgpd(nn, scale = exp(1 + 0.1*x2), shape = xi))
fit <- vglm(y2 ~ x2, gpd(threshold), gdata, trace = TRUE)
coef(fit, matrix = TRUE)
# Nonparametric fits
gdata <- transform(gdata, yy = y2 + rnorm(nn, sd = 0.1))
# Not so recommended:
fit1 <- vgam(yy ~ s(x2), gpd(threshold), gdata, trace = TRUE)
par(mfrow = c(2,1))
plotvgam(fit1, se = TRUE, scol = "blue")
# More recommended:
fit2 <- vglm(yy ~ bs(x2), gpd(threshold), gdata, trace = TRUE)
plotvgam(fit2, se = TRUE, scol = "blue")
Run the code above in your browser using DataLab