Lambda-function (plot) for bivariate copula data

Share:

Description

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

Usage

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

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 (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).

...

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.

Note

The λ-function is characteristic for each bivariate copula family and defined by Kendall's distribution function K:

λ(v,θ) := v - K(v,θ)

with

K(v,θ) := P(C_{θ}(U_1,U_2) <= v), v \in [0,1].

For Archimedean copulas one has the following closed form expression in terms of the generator function φ of the copula C_{θ}:

λ(v,θ) = φ(v) / φ'(v),

where φ' is the derivative of φ. For more details see Genest and Rivest (1993) or Schepsmeier (2010).

For the bivariate Gaussian and t-copula no closed form expression for the theoretical λ-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 λ-function also shows the limits of the λ-function corresponding to Kendall's tau =0 and Kendall's tau =1 (λ=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 λ-functions for the corresponding non-rotated copula families can be considered.

Author(s)

Ulf Schepsmeier

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.
http://mediatum.ub.tum.de/doc/1079296/1079296.pdf.

See Also

BiCopMetaContour, BiCopKPlot, BiCopChiPlot

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
## Not run: 
# Clayton and rotated Clayton copulas
n = 1000
tau = 0.5

# simulate from Clayton copula
fam = 3	
theta = BiCopTau2Par(fam,tau)
dat = BiCopSim(n,fam,theta)

# create lambda-function plots
dev.new(width=16,height=5)
par(mfrow=c(1,3))
BiCopLambda(dat[,1],dat[,2])	# empirical lambda-function	
BiCopLambda(family=fam,par=theta)	# theoretical lambda-function
BiCopLambda(dat[,1],dat[,2],family=fam,par=theta)	# both

# simulate from rotated Clayton copula (90 degrees)
fam = 23  
theta = BiCopTau2Par(fam,-tau)
dat = BiCopSim(n,fam,theta)

# rotate the data to standard Clayton copula data
rot_dat = 1-dat[,1]

dev.new(width=16,height=5)
par(mfrow=c(1,3))
BiCopLambda(rot_dat,dat[,2])  # empirical lambda-function	
BiCopLambda(family=3,par=-theta)	# theoretical lambda-function
BiCopLambda(rot_dat,dat[,2],family=3,par=-theta)	# both

## End(Not run)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.