Learn R Programming

VineCopula (version 1.6-1)

BiCopEst: Parameter Estimation for Bivariate Copula Data

Description

This function estimates the parameter(s) for a bivariate copula using either inversion of empirical Kendall's tau for single parameter copula families or maximum likelihood estimation for one and two parameter copula families supported in this package.

Usage

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)

Arguments

u1,u2
Data vectors of equal length with values in [0,1].
family
An integer defining the bivariate copula family: 0 = independence copula 1 = Gaussian copula 2 = Student t copula (t-copula) 3 = Clayton copula 4 = Gumbel copula 5 = Frank
method
Character indicating the estimation method: either maximum likelihood estimation (method = "mle"; default) or inversion of Kendall's tau (method = "itau"). For method = "itau" only one parameter bivariate copula
se
Logical; whether standard error(s) of parameter estimates is/are estimated (default: se = FALSE).
max.df
Numeric; upper bound for the estimation of the degrees of freedom parameter of the t-copula (default: max.df = 30).
max.BB
List; upper bounds for the estimation of the two parameters (in absolute values) of the BB1, BB6, BB7 and BB8 copulas (default: max.BB = list(BB1=c(5,6),BB6=c(6,6),BB7=c(5,6),BB8=c(6,1))).
weights
Numerical; weights for each observation (opitional).

Value

  • An object of class BiCop, i.e., a list containing
  • familyCopula family
  • par, par2Estimated copula parameter(s).
  • se, se2Standard error(s) of the parameter estimate(s) (if se = TRUE).

Details

If 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.

References

Joe, H. (1997). Multivariate Models and Dependence Concepts. Chapman and Hall, London.

See Also

BiCopPar2Tau, BiCopTau2Par, RVineSeqEst, BiCopSelect, BiCop

Examples

Run this code
## 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