Learn R Programming

CondCopulas (version 0.2.0)

estimateParCondCopula: Estimation of parametric conditional copulas

Description

The function estimateParCondCopula computes an estimate of the conditional parameters in a conditional parametric copula model, i.e. $$C_{X_1, X_2 | X_3 = x_3} = C_{\theta(x_3)},$$ for some parametric family \((C_\theta)\), some conditional parameter \(\theta(x_3)\), and a three-dimensional random vector \((X_1, X_2, X_3)\). Remember that \(C_{X_1,X_2 | X_3 = x_3}\) denotes the conditional copula of \(X_1\) and \(X_2\) given \(X_3 = x_3\).

The function estimateParCondCopula_ZIJ is an auxiliary function that is called when conditional pseudos-observations are already available when one wants to estimate a parametric conditional copula.

Usage

estimateParCondCopula(
  X1 = NULL,
  X2 = NULL,
  X3 = NULL,
  newX3,
  family,
  method = "mle",
  h,
  observedX1 = NULL,
  observedX2 = NULL,
  observedX3 = NULL
)

estimateParCondCopula_ZIJ(Z1_J, Z2_J, observedX3, newX3, family, method, h)

Value

a vector of size length(newX3) containing the estimated conditional copula parameters for each value of newX3.

Arguments

X1

a vector of n observations of the first conditioned variable

X2

a vector of n observations of the second conditioned variable

X3

a vector of n observations of the conditioning variable

newX3

a vector of new observations of \(X3\)

family

an integer indicating the parametric family of copulas to be used, following the conventions of the VineCopula package, see e.g. VineCopula::BiCop.

method

the method of estimation of the conditional parameters. Can be "mle" for maximum likelihood estimation or "itau" for estimation by inversion of Kendall's tau.

h

bandwidth to be chosen

observedX1, observedX2, observedX3

old parameter names for X1, X2, X3. Support for this will be removed at a later version.

Z1_J

the conditional pseudos-observations of the first variable, i.e. \(\hat F_{1|J}( x_{i,1} | x_J = x_{i,J})\) for \(i=1,\dots, n\).

Z2_J

the conditional pseudos-observations of the second variable, i.e. \(\hat F_{2|J}( x_{i,2} | x_J = x_{i,J})\) for \(i=1,\dots, n\).

References

Derumigny, A., & Fermanian, J. D. (2017). About tests of the “simplifying” assumption for conditional copulas. Dependence Modeling, 5(1), 154-197. tools:::Rd_expr_doi("10.1515/demo-2017-0011")

See Also

estimateNPCondCopula for estimating a conditional copula in a nonparametric setting ( = without parametric assumption on the conditional copula). simpA.param for a test that this conditional copula is constant with respect to the value \(x_3\) of the conditioning variable.

Examples

Run this code

# We simulate from a conditional copula
N = 500

X3 = rnorm(n = N, mean = 5, sd = 2)
conditionalTau = 0.9 * pnorm(X3, mean = 5, sd = 2)
simCopula = VineCopula::BiCopSim(
    N=N , family = 1, par = VineCopula::BiCopTau2Par(1 , conditionalTau ))
X1 = qnorm(simCopula[,1])
X2 = qnorm(simCopula[,2])

gridnewX3 = seq(2, 8, by = 1)
conditionalTauNewX3 = 0.9 * pnorm(gridnewX3, mean = 5, sd = 2)

vecEstimatedThetas = estimateParCondCopula(
  X1 = X1, X2 = X2, X3 = X3,
  newX3 = gridnewX3, family = 1, h = 0.1)

# Estimated conditional parameters
vecEstimatedThetas
# True conditional parameters
VineCopula::BiCopTau2Par(1 , conditionalTauNewX3 )

# Estimated conditional Kendall's tau
VineCopula::BiCopPar2Tau(1 , vecEstimatedThetas )
# True conditional Kendall's tau
conditionalTauNewX3


Run the code above in your browser using DataLab