estimateParCondCopula: Estimation of parametric conditional copulas

View source: R/estimationCondCopulas.R

estimateParCondCopulaR Documentation

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)

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.

Value

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

References

Derumigny, A., & Fermanian, J. D. (2017). About tests of the “simplifying” assumption for conditional copulas. Dependence Modeling, 5(1), 154-197. \Sexpr[results=rd]{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


# 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



CondCopulas documentation built on Sept. 11, 2024, 9:10 p.m.