BiCopEst(u1, u2, family, method="mle", se=FALSE, max.df=30,
max.BB=list(BB1=c(5,6),BB6=c(6,6),BB7=c(5,6),BB8=c(6,1)),weights=NA)
0
= independence copula
1
= Gaussian copula
2
= Student t copula (t-copula)
3
= Clayton copula
4
= Gumbel copula
5
= Frankmethod = "mle"
; default) or inversion of Kendall's tau (method = "itau"
).
For method = "itau"
only one parameter bivariate copulase = FALSE
).max.df = 30
).max.BB = list(BB1=c(5,6),BB6=c(6,6),BB7=c(5,6),BB8=c(6,1))
).se = TRUE
).method = "itau"
, the function computes the empirical Kendall's tau of the given copula data and exploits the one-to-one relationship of copula parameter and Kendall's tau
which is available for many one parameter bivariate copula families (see BiCopPar2Tau
and BiCopTau2Par
).
The inversion of Kendall's tau is however not available for all bivariate copula families (see above).
If a two parameter copula family is chosen and method = "itau"
, a warning message is returned and the MLE is calculated.
For method = "mle"
copula parameters are estimated by maximum likelihood using starting values obtained
by method = "itau"
.
If no starting values are available by inversion of Kendall's tau, starting values have to be provided given expert knowledge and the boundaries
max.df
and max.BB
respectively.
Note: The MLE is performed via numerical maximazation using the L_BFGS-B method. For the Gaussian, the t- and the one-parametric Archimedean copulas
we can use the gradients, but for the BB copulas we have to use finite differences for the L_BFGS-B method.
A warning message is returned if the estimate of the degrees of freedom parameter of the t-copula is larger than max.df
.
For high degrees of freedom the t-copula is almost indistinguishable from the Gaussian
and it is advised to use the Gaussian copula in this case.
As a rule of thumb max.df = 30
typically is a good choice.
Moreover, standard errors of the degrees of freedom parameter estimate cannot be estimated in this case.BiCopPar2Tau
, BiCopTau2Par
RVineSeqEst
, BiCopSelect
## Example 1: bivariate Gaussian copula
dat = BiCopSim(500,1,0.7)
u1 = dat[,1]
v1 = dat[,2]
# empirical Kendall's tau
tau1 = cor(u1,v1,method="kendall")
# inversion of empirical Kendall's tau
BiCopTau2Par(1,tau1)
BiCopEst(u1,v1,family=1,method="itau")$par
# maximum likelihood estimate for comparison
BiCopEst(u1,v1,family=1,method="mle")$par
## Example 2: bivariate Clayton and survival Gumbel copulas
# simulate from a Clayton copula
dat = BiCopSim(500,3,2.5)
u2 = dat[,1]
v2 = dat[,2]
# empirical Kendall's tau
tau2 = cor(u2,v2,method="kendall")
# inversion of empirical Kendall's tau for the Clayton copula
BiCopTau2Par(3,tau2)
BiCopEst(u2,v2,family=3,method="itau",se=TRUE)
# inversion of empirical Kendall's tau for the survival Gumbel copula
BiCopTau2Par(14,tau2)
BiCopEst(u2,v2,family=14,method="itau",se=TRUE)
# maximum likelihood estimates for comparison
BiCopEst(u2,v2,family=3,method="mle",se=TRUE)
BiCopEst(u2,v2,family=14,method="mle",se=TRUE)
Run the code above in your browser using DataLab