This function plots/returns the lambda-function of given bivariate copula data.

BiCopLambda(
  u1 = NULL,
  u2 = NULL,
  family = "emp",
  par = 0,
  par2 = 0,
  PLOT = TRUE,
  obj = NULL,
  ...
)

Arguments

u1, u2

Data vectors of equal length with values in \([0,1]\) (default: u1 and u2 = NULL).

family

An integer defining the bivariate copula family or indicating the empirical lambda-function:
"emp" = empirical lambda-function (default)
1 = Gaussian copula; the theoretical lambda-function is simulated (no closed formula available)
2 = Student-t copula; the theoretical lambda-function is simulated (no closed formula available)
3 = Clayton copula
4 = Gumbel copula
5 = Frank copula
6 = Joe copula
7 = BB1 copula
8 = BB6 copula
9 = BB7 copula
10 = BB8 copula

par

Copula parameter; if the empirical lambda-function is chosen, par = NULL or 0 (default).

par2

Second copula parameter for t-, BB1, BB6, BB7 and BB8 copulas (default: par2 = 0).

PLOT

Logical; whether the results are plotted. If PLOT = FALSE, the values
empLambda and/or theoLambda are returned (see below; default: PLOT = TRUE).

obj

BiCop object containing the family and parameter specification.

...

Additional plot arguments.

Value

empLambda

If the empirical lambda-function is chosen and PLOT = FALSE, a vector of the empirical lambda's is returned.

theoLambda

If the theoretical lambda-function is chosen and PLOT = FALSE, a vector of the theoretical lambda's is returned.

Details

If the family and parameter specification is stored in a BiCop() object obj, the alternative versions

BiCopLambda(obj, PLOT = TRUE, ...)

and

BiCopLambda((u1, u2, obj, PLOT = TRUE, ...)

can be used.

Note

The \(\lambda\)-function is characteristic for each bivariate copula family and defined by Kendall's distribution function \(K\): $$ \lambda(v,\theta) := v - K(v,\theta) $$ with $$K(v,\theta) := P(C_{\theta}(U_1,U_2) \leq v),\ \ v\in [0,1]. $$ For Archimedean copulas one has the following closed form expression in terms of the generator function \(\varphi\) of the copula \(C_{\theta}\): $$\lambda(v,\theta) = \frac{\varphi(v)}{\varphi '(v)}, $$ where \(\varphi '\) is the derivative of \(\varphi\). For more details see Genest and Rivest (1993) or Schepsmeier (2010).

For the bivariate Gaussian and Student-t copula no closed form expression for the theoretical \(\lambda\)-function exists. Therefore it is simulated based on samples of size 1000. For all other implemented copula families there are closed form expressions available.

The plot of the theoretical \(\lambda\)-function also shows the limits of the \(\lambda\)-function corresponding to Kendall's tau \(=0\) and Kendall's tau \(=1\) (\(\lambda=0\)).

For rotated bivariate copulas one has to transform the input arguments u1 and/or u2. In particular, for copulas rotated by 90 degrees u1 has to be set to 1-u1, for 270 degrees u2 to 1-u2 and for survival copulas u1 and u2 to 1-u1 and 1-u2, respectively. Then \(\lambda\)-functions for the corresponding non-rotated copula families can be considered.

References

Genest, C. and L.-P. Rivest (1993). Statistical inference procedures for bivariate Archimedean copulas. Journal of the American Statistical Association, 88 (423), 1034-1043.

Schepsmeier, U. (2010). Maximum likelihood estimation of C-vine pair-copula constructions based on bivariate copulas from different families. Diploma thesis, Technische Universitaet Muenchen.
https://mediatum.ub.tum.de/?id=1079296.

Author

Ulf Schepsmeier

Examples

set.seed(123)
# simulate from Clayton copula
cop <- BiCop(3, tau = 0.5)
dat <- BiCopSim(1000, cop)

# create lambda-function plots
op <- par(mfrow = c(1, 3))
BiCopLambda(dat[, 1], dat[, 2])  # empirical lambda-function
BiCopLambda(cop)  # theoretical lambda-function
BiCopLambda(dat[, 1], dat[, 2], cop)  # both

par(op)