kfuncCOPlmoms {copBasic} | R Documentation |
The L-moments of the Kendall Function of a Copula
Description
Compute the L-moments of the Kendall Function () of a copula
where the
is the joint probability of the
. The Kendall Function (or Kendall Distribution Function) is the cumulative distribution function (CDF) of the joint probability
of the coupla. The expected value of the
(mean, first L-moment
), because
has nonzero probability for
, is
where for circumstances here . The
is mentioned only because expectations of such CDFs are usually shown using
limits, whereas integration of quantile functions (CDF inverses) use limits
. Because the support of
is
, like the probability
, showing just it (
) as the upper limit could be confusing—statements such as “probabilities of probabilities” are rhetorically complex. So, pursuit of word precision is made herein.
An expression for for
in terms of the
is
where because of these circumstances the limits of integration are and not
as in the usual definition of L-moments in terms of a distribution's CDF. (Note, such expressions did not make it into Asquith (2011), which needs rectification if that monograph ever makes it to a 2nd edition.)
The mean, L-scale, coefficient of L-variation (, LCV, L-scale/mean), L-skew (
, TAU3), L-kurtosis (
, TAU4), and
(TAU5) are computed. In usual nomenclature, the L-moments are
whereas the L-moment ratios are
It is common amongst practitioners to lump the L-moment ratios into the general term “L-moments” and remain inclusive of the L-moment ratios. For example, L-skew then is referred to as the 3rd L-moment when it technically is the 3rd L-moment ratio. There is no first L-moment ratio (meaningless); so, results from
kfuncCOPlmoms
function will canoncially show a NA
in that slot. The coefficient of L-variation is (subscript 2) and not Kendall Tau (
). Sample L-moments are readily computed by several packages in R (e.g. lmomco, lmom, Lmoments, POT).
Usage
kfuncCOPlmom(r, cop=NULL, para=NULL, ...)
kfuncCOPlmoms(cop=NULL, para=NULL, nmom=5, begin.mom=1, ...)
Arguments
r |
The |
cop |
A copula function; |
para |
Vector of parameters or other data structure, if needed, to pass to the copula; |
nmom |
The number of L-moments to compute; |
begin.mom |
The |
... |
Additional arguments to pass. |
Value
An R list
is returned by kfuncCOPlmoms
and only the scalar value of by
kfuncCOPlmom
.
lambdas |
Vector of the L-moments. First element is |
ratios |
Vector of the L-moment ratios. Second element is |
source |
An attribute identifying the computational source of the L-moments: “kfuncCOPlmoms”. |
Note
The L-moments of Kendall Functions appear to be not yet fully researched. An interesting research direction would be the trajectories of the L-moments or L-moment ratio diagrams for the Kendall Function and the degree to which distinction between copulas becomes evident—such diagrams are in wide-spread use for distinquishing between univariate distributions. It is noted, however, that Kendall Function L-moment ratio diagrams might be of less utility that in the univariate world—recalling that a univariate distribution is unique characteristized by its L-moments—because different copulas can have the same , such as all bivariate extreme value copulas (see also Examples).
Rhos <- c(0.001, 0.01, seq(0.05, 0.95, by=0.05), 0.99, 0.999) L1 <- T2 <- T3 <- T4 <- Thetas <- vector(mode="numeric", length(Rhos)) for(i in 1:length(Thetas)) { Thetas[i] <- uniroot(function(p) Rhos[i] - rhoCOP(cop=PARETOcop, para=p), c(0,200))$root message("Rho = ", Rhos[i], " and Pareto theta = ", round(Thetas[i], digits=4)) lmr <- kfuncCOPlmoms(cop=PARETOcop, para=Thetas[i], nmom=4) L1[i] <- lmr$lambdas[1]; T2[i] <- lmr$ratios[2] T3[i] <- lmr$ratios[3]; T4[i] <- lmr$ratios[4] } LMR <- data.frame(Rho=Rhos, Theta=Thetas, L1=L1, T2=T2, T3=T3, T4=T4) plot(LMR$Rho, LMR$T2, ylim=c(-0.04, 0.5), xlim=c(0, 1), xlab="Spearman Rho or coefficient of L-variation", ylab="L-moment ratio", type="l", col="black") lines(LMR$Rho, LMR$T3, lty=1, col="red" ) lines(LMR$Rho, LMR$T4, lty=1, col="green" ) lines(LMR$T2, LMR$T3, lty=2, col="blue" ) lines(LMR$T2, LMR$T4, lty=2, col="deepskyblue2") lines(LMR$T3, LMR$T4, lty=2, col="purple" )
Author(s)
W.H. Asquith
References
Asquith, W.H., 2011, Distributional analysis with L-moment statistics using the R environment for statistical computing: Createspace Independent Publishing Platform, ISBN 978–146350841–8.
See Also
Examples
## Not run:
kfuncCOPlmom(1, cop=P) # 0.5 * 0.5 = 0.25 is expected joint prob. of independence
#[1] 0.2499999 (in agreement with theory)
ThetaGH <- 4.21
Rho <- rhoCOP(cop=GHcop, para=ThetaGH)
ThetaHR <- uniroot(function(p) Rho - rhoCOP(cop=HRcop, para=p), c(0, 100))$root
ThetaHR <- uniroot(function(p) Rho - rhoCOP(cop=HRcop, para=p), c(0, 100))$root
ThetaGL <- uniroot(function(p) Rho - rhoCOP(cop=GLcop, para=p), c(0, 100))$root
ls.str(kfuncCOPlmoms(cop=GHcop, para=ThetaGH)) # Gumbel-Hougaard copula
# lambdas : num [1:5] 0.440617 0.169085 0.011228 -0.000797 0.000249
# ratios : num [1:5] NA 0.383750 0.066400 -0.004720 0.001470
# L-skew = 0.066400
ls.str(kfuncCOPlmoms(cop=HRcop, para=ThetaHR)) # Husler-Reiss copula
# lambdas : num [1:5] 0.439627 0.169052 0.011427 -0.000785 0.000249
# ratios : num [1:5] NA 0.384540 0.067590 -0.004640 0.001470
# L-skew = 0.067590
ls.str(kfuncCOPlmoms(cop=GLcop, para=ThetaGL)) # Galambos copula
# lambdas : num [1:5] 0.440415 0.169079 0.011268 -0.000795 0.000248
# ratios : num [1:5] NA 0.383910 0.066650 -0.004700 0.001470
# L-skew = 0.066650
# These L-moments are extremely similar and within the numerics used.
# Extreme value copula all have the same Kendall Distribution function.
## End(Not run)
## Not run:
UV <- simCOP(200, cop=PLcop, para=1/pi, graphics=FALSE)
theta <- PLpar(UV[,1], UV[,2])
zs <- c(0.001, seq(0.01, 0.99, by=0.01), 0.999) # for later
# Take the sample estimated parameter and convert to joint probabilities Z
# Convert the Z to the Kendall Function estimates again with the sample parameter
Z <- PLcop(UV[,1], UV[,2], para=theta); KF <- kfuncCOP(Z, cop=PLcop, para=theta)
# Compute L-moments of the "Kendall function" and the sample versions
# and again see that the L-moment are for the distribution of the Z!
KNFlmr <- kfuncCOPlmoms(cop=PLcop, para=theta); SAMlmr <- lmomco::lmoms(Z)
knftxt <- paste0("Kendall L-moments: ",
paste(round(KNFlmr$lambdas, digits=4), collapse=", "))
samtxt <- paste0("Sample L-moments: " ,
paste(round(SAMlmr$lambdas, digits=4), collapse=", "))
plot(Z, KF, xlim=c(0,1), ylim=c(0,1), col="black",
xlab="COPULA(u,v) VALUE [JOINT PROBABILITY]",
ylab="KENDALL DISTRIBUTION FUNCTION (KDF), AS NONEXCEEDANCE PROBABILITY")
rug(Z, side=1, col="red", lwd=0.5); rug(KF, side=2, col="red", lwd=0.5) # rug plots
lines(zs, kfuncCOP(zs, cop=PLcop, para=1/pi), col="darkgreen")
knf_meanZ <- KNFlmr$lambdas[1]; sam_meanZ <- SAMlmr$lambdas[1]
knf_mean <- kfuncCOP(knf_meanZ, cop=PLcop, para=theta) # theo. Kendall function
sam_mean <- kfuncCOP(sam_meanZ, cop=PLcop, para=theta) # sam. est. of Kendall func
points(knf_meanZ, knf_mean, pch=16, col="blue", cex=3)
points(sam_meanZ, sam_mean, pch=16, col="cyan", cex=2)
lines(zs, zs-zs*log(zs), lty=2, lwd=0.8) # dash ref line for independence
text(0.2, 0.30, knftxt, pos=4, cex=1); text(0.2, 0.25, samtxt, pos=4, cex=1)
text(0.2, 0.18, paste0("Notice uniform distribution of vertical axis rug.\n",
"A Critical remark with respect to to KDFs."), cex=1, pos=4)
legend("bottomright", c("Independence copula", "KDF of Plackett copula",
"Theoretical mean", "Sample mean"), bty="n", y.intersp=1.5,
lwd=c(1, 1, NA, NA), lty=c(2, 1, NA, NA), pch=c(NA, NA, 16, 16),
col=c("black", "darkgreen", "blue", "cyan"), pt.cex=c(NA, NA, 3, 2)) #
## End(Not run)