bCond.estParamCopula {CondCopulas} | R Documentation |
Estimation of the conditional parameters of a parametric conditional copula with discrete conditioning events.
Description
By Sklar's theorem, any conditional distribution function can be written as
F_{1,2|A}(x_1, x_2) = c_{1,2|A}(F_{1|A}(x_1), F_{2,A}(x_2)),
where A
is an event and
c_{1,2|A}
is a copula depending on the event A
.
In this function, we assume that we have a partition A_1,... A_p
of the probability space, and that for each k=1,...,p
,
the conditional copula is parametric according to the following model
c_{1,2|Ak} = c_{\theta(Ak)},
for some parameter \theta(Ak)
depending on the realized event Ak
.
This function uses canonical maximum likelihood to estimate
\theta(Ak)
and the corresponding copulas c_{1,2|Ak}
.
Usage
bCond.estParamCopula(U1, U2, family, partition)
Arguments
U1 |
vector of |
U2 |
vector of |
family |
the family of conditional copulas
used for each conditioning event |
partition |
matrix of size |
Value
a list of size p
containing the p
conditional copulas
References
Derumigny, A., & Fermanian, J. D. (2017). About tests of the “simplifying” assumption for conditional copulas. Dependence Modeling, 5(1), 154-197. doi:10.1515/demo-2017-0011
Derumigny, A., & Fermanian, J. D. (2022) Conditional empirical copula processes and generalized dependence measures Electronic Journal of Statistics, 16(2), 5692-5719. doi:10.1214/22-EJS2075
See Also
bCond.pobs
for the computation
of (conditional) pseudo-observations in this framework.
bCond.simpA.param
for a test of the simplifying assumption
that all these conditional copulas are equal
(assuming they all belong to the same parametric family).
bCond.simpA.CKT
for a test of the simplifying assumption
that all these conditional copulas are equal,
based on the equality of conditional Kendall's tau.
Examples
n = 800
Z = stats::runif(n = n)
CKT = 0.2 * as.numeric(Z <= 0.3) +
0.5 * as.numeric(Z > 0.3 & Z <= 0.5) +
- 0.8 * as.numeric(Z > 0.5)
simCopula = VineCopula::BiCopSim(N = n,
par = VineCopula::BiCopTau2Par(CKT, family = 1), family = 1)
X1 = simCopula[,1]
X2 = simCopula[,2]
partition = cbind(Z <= 0.3, Z > 0.3 & Z <= 0.5, Z > 0.5)
condPseudoObs = bCond.pobs(X = cbind(X1, X2), partition = partition)
estimatedCondCopulas = bCond.estParamCopula(
U1 = condPseudoObs[,1], U2 = condPseudoObs[,2],
family = 1, partition = partition)
print(estimatedCondCopulas)
# Comparison with the true conditional parameters: 0.2, 0.5, -0.8.