KLdiv: Kullback-Leibler divergence and sample size for two bivariate...

Description Usage Arguments Value See Also Examples

Description

Kullback-Leibler divergence and sample size for two bivariate copula densities

Usage

1
2
3
4
5
KLcopvsbvn(rho,dcop2,param2,copname2="bivcop",UB=7,iprint=F)
KLcopvscop(copname1="cop1",param1,dcop1,copname2="cop2",param2,dcop2,UB=7,iprint=F)
KL12gl(par2,dcop2,par1,dcop1,parlb=0,gl)
KLoptgl(dcop1,dcop2,par1,par2,name1,name2,par2lb=0,gl,pcop1,pcop2,
   ccdf1a,ccdf1b,ccdf2a,ccdf2b,prlevel=0)

Arguments

dcop1

function for first bivariate copula density; form is dcop(u,v,param)

dcop2

function for second bivariate copula density

copname1

name of first bivariate copula density

copname2

name of second bivariate copula density

rho

parameter of dcop1 if it is bivariate normal

param1

parameter of dcop1

param2

parameter of dcop2

UB

limit to use for 2-dimensional integration with respect to bivariate normal density

iprint

print flag for intermediate results, FALSE by default

par1

copula parameter for family 1

par2

copula parameter for family 2

parlb

lower bound for copula parameter for family 2

par2lb

lower bound for copula parameter for family 2

gl

Gauss-Legendre quadrature object with $nodes and $weights

name1

name of first bivariate copula density

name2

name of second bivariate copula density

pcop1

function for first bivariate copula cdf; form is pcop(u,v,param)

pcop2

function for second bivariate copula cdf

ccdf1a

function for C_{2|1} for pcop1

ccdf1b

function for C_{1|2} for pcop1

ccdf2a

function for C_{2|1} for pcop2

ccdf2b

function for C_{1|2} for pcop2

prlevel

print.level for nlm

Value

For KLcopvsbvn and KLcopvscop, a vector with 5 elements: KLcop1true, KLcop2true, Jeffreys, sampsize1, sampsize2, where KLcop1true (KLcop2true) is the KL divergence when copula 1 (respectively copula 2) is the true model; Jeffreys=KLcop1true+KLcop2true is Jeffreys' divergence, sampsize1 (sampsize2) is the sample size needed to distinguish with the other copula family wth probability 0.95 when copula 1 (respectively copula 2) is the true model.

For KL12gl, a single value for divergence; this function is optimized by KLoptgl.

For KLoptgl, a list with $cpar2 for the parameter of copula2 leading to small KL divergence with copula1 with parameter param1, $depm1=c(be1,tau1,rhoS1,rhoN1) is a vector of beta,tau,rhoS,rhoN for copula1 with parameter param1, $depm2=c(be2,tau2,rhoS2,rhoN12 is a vector of beta,tau,rhoS,rhoN for copula2 with parameter cpar2.

See Also

pcop pcond deppar2taurhobetalambda

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
rho=bvn.b2cpar(0.5)
par.gum=gum.b2cpar(0.5)
par.gal=gal.b2cpar(0.5)
KLcopvsbvn(rho,dcop2=dgum,param2=par.gum,copname2="Gumbel",UB=6,iprint=TRUE) 
KLcopvscop("Gumbel",par.gum,dgum,"Galambos",par.gal,dgal,UB=6,iprint=TRUE)
# parameter from Plackett family closed to bivariate Gaussian copula with 
#   rhoS=0.5 
cpar1=bvn.rhoS2cpar(.5)
cpar2=pla.rhoS2cpar(.5)  # 5.115661
gl25=gausslegendre(25)
kl=KLoptgl(dbvncop,dpla,cpar1,cpar2,"bvn","plackett",0,gl25,pbvncop,ppla,
   pcondbvncop,pcondbvncop,pcondpla,pcondpla)
print(kl$cpar2)  # 4.671857

YafeiXu/CopulaModel documentation built on May 9, 2019, 11:07 p.m.