Archimedean Copulae
Functions for ealuating densities of Archimedean copulae, generating random variates and fitting data to AC
dcopula.AC(u, theta, name = c("clayton", "gumbel"), log = TRUE) dcopula.clayton(u, theta, log = FALSE) dcopula.gumbel(u, theta, log = FALSE) rAC(name = c("clayton", "gumbel", "frank", "BB9", "GIG"), n, d, theta) rACp(name = c("clayton", "gumbel", "frank", "BB9", "GIG"), n, d, theta, A) rcopula.gumbel(n, theta, d) rcopula.clayton(n, theta, d) rcopula.frank(n, theta, d) rstable(n, alpha, beta = 1) rFrankMix(n, theta) rBB9Mix(n, theta) rcopula.Gumbel2Gp(n = 1000, gpsizes = c(2, 2), theta = c(2, 3, 5)) rcopula.GumbelNested(n, theta) fit.AC(Udata, name = c("clayton", "gumbel"), initial = 2, ...)
A |
|
alpha |
|
beta |
|
d |
|
gpsizes |
|
initial |
|
log |
|
n |
|
name |
|
theta |
|
u |
|
Udata |
|
... |
ellipsis, arguments are passed down to |
The function dcopula.AC()
is a generic function, designed such
that additional copulae, or expressions for densities of
higher-dimensional copulae may be added. Clayton copula works in any
dimension at present but Gumbel is only implemented for d =
2. To extend, one must calculate the d-th derivative of the generator
inverse and take the logarithm of absolute value; this is the term
called loggfunc
. In addition, for other copulae, one needs the
generator phi and the log of the negative value of its
first derivative lnegphidash
.
The random variates from rAC()
with arbitrary dimension are
generated by using the mixture construction of Marshall and Olkin. It
may be used in place of the other functions rcopula.clayton()
,
rcopula.gumbel()
, and rcopula.frank()
. In addition, it
allows simulation of BB9 and GIG copulas which don't have individual
simulation routines.
For the Clayton and Gumbel copulae, see page 192 and 222–224 in
QRM. The random variates for the BB9 and Frank copula are obtained from
a mixing distribution using a Laplace transform method (see page 224 of
QRM). The function rcopula.Gumbel2Gp()
generates sample from a
Gumbel copula with two-group structure constructed using three Gumbel
generators (see pages 222-224 and 227 of QRM). The function
rcopula.gumbelNested()
generates sample from a d-dimensional
Gumbel copula with nested structure constructed using
(d-1) Gumbel generators.
For the random variates of the Stable distribution, a default value
beta = 1 is used; combined with a value for
alpha < 1 yields a positive stable distribution,
which is required for Gumbel copula generation; the case alpha = 1 has not been implemented.
vector or matrix in case of the density and random-generator related functions and a list object for the fitting function.
## Gumbel r1 <- rAC("gumbel", n = 50, d = 7, theta = 3) head(r1) ## Weighted Gumbel alpha <- c(0.95,0.7) wtmatrix <- cbind(alpha, 1 - alpha) r2 <- rACp(name = "gumbel", n = 1000, d = 2, theta = c(4, 1), A = wtmatrix) head(r2) ## Gumbel with two-group structure r3 <- rcopula.Gumbel2Gp(n = 3000, gpsizes = c(3, 4), theta = c(2, 3, 5)) pairs(r3) ## Nested Gumbel r4 <- rcopula.GumbelNested(n=3000,theta=1:6) pairs(r4) ## Frank r5 <- rcopula.frank(1000, 2, 4) pairs(r5) ## Fitting of Gumbel and Clayton data(smi) data(ftse100) s1 <- window(ftse100, "1990-11-09", "2004-03-25") s1a <- alignDailySeries(s1) s2a <- alignDailySeries(smi) idx <- merge(s1a, s2a) r <-returns(idx) rp <- series(window(r, "1994-01-01", "2003-12-31")) rp <- rp[(rp[, 1] != 0) & (rp[, 2] !=0), ] Udata <- apply(rp, 2, edf, adjust = 1) mod.gumbel <- fit.AC(Udata, "gumbel") mod.clayton <- fit.AC(Udata, "clayton") mod.clayton
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.