fbvevd | R Documentation |
Fit models for one of nine parametric bivariate extreme value distributions, including linear modelling of the marginal location parameters, and allowing any of the parameters to be held fixed if desired.
fbvevd(x, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog",
"negbilog", "ct", "amix"), start, ..., sym = FALSE,
nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc,
cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS",
warn.inf = TRUE)
x |
A matrix or data frame, ordinarily with two columns,
which may contain missing values. A data frame may also
contain a third column of mode |
model |
The specified model; a character string. Must be
either |
start |
A named list giving the initial values for the
parameters over which the likelihood is to be maximized.
If |
... |
Additional parameters, either for the bivariate extreme
value model or for the optimization function |
sym |
Logical; if |
nsloc1 , nsloc2 |
A data frame with the same number of rows as
|
cshape |
Logical; if |
cscale |
Logical; if |
cloc |
Logical; if |
std.err |
Logical; if |
corr |
Logical; if |
method |
The optimization method (see |
warn.inf |
Logical; if |
The dependence parameter names are one or more of dep
,
asy1
, asy2
, alpha
and beta
, depending on
the model selected (see rbvevd
). The marginal parameter
names are loc1
, scale1
and shape1
for the first
margin, and loc2
, scale2
and shape2
for the
second margin.
If nsloc1
is not NULL
, so that a linear model is
implemented for the first marginal location parameter, the parameter
names for the first margin are loc1
, loc1
x1,
..., loc1
xn, scale
and shape
, where
x1, ..., xn are the column names of nsloc1
,
so that loc1
is the intercept of the linear model, and
loc1
x1, ..., loc1
xn are the
ncol(nsloc1)
coefficients.
When nsloc2
is not NULL
, the parameter names for the
second margin are constructed similarly.
It is recommended that the covariates within the linear models for
the location parameters are (at least approximately) centered and
scaled (i.e. that the columns of nsloc1
and nsloc2
are centered and scaled), particularly if automatic starting values
are used, since the starting values for the associated parameters are
then zero. If cloc
is TRUE
, both nsloc1
and
nsloc2
must be identical, since a common linear model is
then implemented on both margins.
If cshape
is true, the models are constrained so that
shape2 = shape1
. The parameter shape2
is then
taken to be specified, so that e.g. the common shape
parameter can only be fixed at zero using shape1 = 0
,
since using shape2 = 0
gives an error. Similar
comments apply for cscale
and cloc
.
If sym
is TRUE
, the asymmetric logistic and
asymmetric negative logistic models are constrained so that
asy2 = asy1
, and the Coles-Tawn model is constrained
so that beta = alpha
. The parameter asy2
or
beta
is then taken to be specified, so that e.g.
the parameters asy1
and asy2
can only
be fixed at 0.8
using asy1 = 0.8
, since
using asy2 = 0.8
gives an error.
Bilogistic and negative bilogistic models constrained to symmetry are logistic and negative logistic models respectively. The (symmetric) mixed model (e.g. Tawn, 1998) can be obtained as a special case of the asymmetric logistic or asymmetric mixed models (see Examples).
The value Dependence
given in the printed output
is 2(1-A(1/2))
, where A
is the estimated dependence
function (see abvevd
). It measures the strength of
dependence, and lies in the interval [0,1]; at independence and
complete dependence it is zero and one respectively (Coles,
Heffernan and Tawn, 1999). See chiplot
for
further information.
Returns an object of class c("bvevd","evd")
.
The generic accessor functions fitted
(or
fitted.values
), std.errors
,
deviance
, logLik
and
AIC
extract various features of the
returned object.
The functions profile
and profile2d
can be
used to obtain deviance profiles.
The function anova
compares nested models, and the
function AIC
compares non-nested models.
The function plot
produces diagnostic plots.
An object of class c("bvevd","evd")
is a list containing
the following components
estimate |
A vector containing the maximum likelihood estimates. |
std.err |
A vector containing the standard errors. |
fixed |
A vector containing the parameters that have been fixed at specific values within the optimization. |
fixed2 |
A vector containing the parameters that have been set to be equal to other model parameters. |
param |
A vector containing all parameters (those optimized, those fixed to specific values, and those set to be equal to other model parameters). |
deviance |
The deviance at the maximum likelihood estimates. |
dep.summary |
The estimate of |
corr |
The correlation matrix. |
var.cov |
The variance covariance matrix. |
convergence , counts , message |
Components taken from the
list returned by |
data |
The data passed to the argument |
tdata |
The data, transformed to stationarity (for non-stationary models). |
nsloc1 , nsloc2 |
The arguments |
n |
The number of rows in |
sym |
The argument |
cmar |
The vector |
model |
The argument |
call |
The call of the current function. |
If x
is a data frame with a third column of mode
logical
, then the model is fitted using the likelihood
derived by Stephenson and Tawn (2004). This is appropriate
when each bivariate data point comprises componentwise maxima
from some underlying bivariate process, and where the
corresponding logical value denotes whether or not the maxima
were caused by the same event within that process.
Under this scheme the diagnostic plots that are produced
using plot
are somewhat different to those described
in plot.bvevd
: the density, dependence function
and quantile curves plots contain fitted functions for
observations where the logical case is unknown, and the
conditional P-P plots condition on both the logical case and
the given margin (which requires numerical integration at each
data point).
For numerical reasons parameters are subject to artificial
constraints. Specifically, these constraints are: marginal
scale parameters not less than 0.01; dep
not less
than [0.1] [0.2] [0.05] in [logistic] [Husler-Reiss]
[negative logistic] models; dep
not greater
than [10] [5] in [Husler-Reiss] [negative logistic] models;
asy1
and asy2
not less than 0.001;
alpha
and beta
not less than [0.1] [0.1]
[0.001] in [bilogistic] [negative bilogistic] [Coles-Tawn]
models; alpha
and beta
not greater than [0.999]
[20] [30] in [bilogistic] [negative bilogistic] [Coles-Tawn]
models.
The standard errors and the correlation matrix in the returned
object are taken from the observed information, calculated by a
numerical approximation.
They must be interpreted with caution when either of the
marginal shape parameters are less than -0.5
, because
the usual asymptotic properties of maximum likelihood estimators
do not then hold (Smith, 1985).
Coles, S. G., Heffernan, J. and Tawn, J. A. (1999) Dependence measures for extreme value analyses. Extremes, 2, 339–365.
Smith, R. L. (1985) Maximum likelihood estimation in a class of non-regular cases. Biometrika, 72, 67–90.
Stephenson, A. G. and Tawn, J. A. (2004) Exploiting Occurence Times in Likelihood Inference for Componentwise Maxima. Biometrika 92(1), 213–217.
Tawn, J. A. (1988) Bivariate extreme value theory: models and estimation. Biometrika, 75, 397–415.
anova.evd
, optim
,
plot.bvevd
, profile.evd
,
profile2d.evd
, rbvevd
bvdata <- rbvevd(100, dep = 0.6, model = "log", mar1 = c(1.2,1.4,0.4))
M1 <- fbvevd(bvdata, model = "log")
M2 <- fbvevd(bvdata, model = "log", dep = 0.75)
anova(M1, M2)
par(mfrow = c(2,2))
plot(M1)
plot(M1, mar = 1)
plot(M1, mar = 2)
## Not run: par(mfrow = c(1,1))
## Not run: M1P <- profile(M1, which = "dep")
## Not run: plot(M1P)
trend <- (-49:50)/100
rnd <- runif(100, min = -.5, max = .5)
fbvevd(bvdata, model = "log", nsloc1 = trend)
fbvevd(bvdata, model = "log", nsloc1 = trend, nsloc2 = data.frame(trend
= trend, random = rnd))
fbvevd(bvdata, model = "log", nsloc1 = trend, nsloc2 = data.frame(trend
= trend, random = rnd), loc2random = 0)
bvdata <- rbvevd(100, dep = 1, asy = c(0.5,0.5), model = "anegl")
anlog <- fbvevd(bvdata, model = "anegl")
mixed <- fbvevd(bvdata, model = "anegl", dep = 1, sym = TRUE)
anova(anlog, mixed)
amixed <- fbvevd(bvdata, model = "amix")
mixed <- fbvevd(bvdata, model = "amix", beta = 0)
anova(amixed, mixed)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.