Sample and Population Version of Blomqvist's Beta for Archimedean Copulas
Compute the population (beta.()
) and sample
(betan()
) version of Blomqvist's beta for an Archimedean
copula.
See the reference below for definitions and formulas.
beta.(cop, theta, d, scaling=FALSE) betan(u, scaling=FALSE)
cop |
an Archimedean copula (of dimension d) to be estimated. |
theta |
copula parameter. |
d |
dimension. |
scaling |
logical, if true, the factors 2^(d-1)/(2^(d-1)-1) and 2^(1-d) in Blomqvist's beta are omitted. |
u |
For |
beta.
:a number, being the population version of Blomqvist's beta for the corresponding Archimedean copula;
betan
:a number, being the sample version of Blomqvist's beta for the given data.
Schmid and Schmidt (2007), Nonparametric inference on multivariate versions of Blomqvist's beta and related measures of tail dependence, Metrika 66, 323–354.
beta.(copGumbel, 2.5, d = 5) d.set <- c(2:6, 8, 10, 15, 20, 30) cols <- adjustcolor(colorRampPalette(c("red", "orange", "blue"), space = "Lab")(length(d.set)), 0.8) ## AMH: for(i in seq_along(d.set)) curve(Vectorize(beta.,"theta")(copAMH, x, d = d.set[i]), 0, .999999, main = "Blomqvist's beta(.) for AMH", xlab = quote(theta), ylab = quote(beta(theta, AMH)), add = (i > 1), lwd=2, col=cols[i]) mtext("NB: d=2 and d=3 are the same") legend("topleft", paste("d =",d.set), bty="n", lwd=2, col=cols) ## Gumbel: for(i in seq_along(d.set)) curve(Vectorize(beta.,"theta")(copGumbel, x, d = d.set[i]), 1, 10, main = "Blomqvist's beta(.) for Gumbel", xlab = quote(theta), ylab = quote(beta(theta, Gumbel)), add=(i > 1), lwd=2, col=cols[i]) legend("bottomright", paste("d =",d.set), bty="n", lwd=2, col=cols) ## Clayton: for(i in seq_along(d.set)) curve(Vectorize(beta.,"theta")(copClayton, x, d = d.set[i]), 1e-5, 10, main = "Blomqvist's beta(.) for Clayton", xlab = quote(theta), ylab = quote(beta(theta, Gumbel)), add=(i > 1), lwd=2, col=cols[i]) legend("bottomright", paste("d =",d.set), bty="n", lwd=2, col=cols) ## Joe: for(i in seq_along(d.set)) curve(Vectorize(beta.,"theta")(copJoe, x, d = d.set[i]), 1, 10, main = "Blomqvist's beta(.) for Joe", xlab = quote(theta), ylab = quote(beta(theta, Gumbel)), add=(i > 1), lwd=2, col=cols[i]) legend("bottomright", paste("d =",d.set), bty="n", lwd=2, col=cols) ## Frank: for(i in seq_along(d.set)) curve(Vectorize(beta.,"theta")(copFrank, x, d = d.set[i]), 1e-5, 50, main = "Blomqvist's beta(.) for Frank", xlab = quote(theta), ylab = quote(beta(theta, Gumbel)), add=(i > 1), lwd=2, col=cols[i]) legend("bottomright", paste("d =",d.set), bty="n", lwd=2, col=cols) ## Shows the numeric problems: curve(Vectorize(beta.,"theta")(copFrank, x, d = 29), 35, 42, col="violet")
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.