EllCopEst {ElliptCopulas}  R Documentation 
Estimate the density generator of a (meta)elliptical copula
Description
This function estimates the density generator of a (meta)elliptical copula
using the iterative procedure described in (Derumigny and Fermanian, 2022).
This iterative procedure consists in alternating a step of estimating the data
via Liebscher's procedure EllDistrEst()
and estimating the quantile function
of the underlying elliptical distribution to transform the data back to the unit cube.
Usage
EllCopEst(
dataU,
Sigma_m1,
h,
grid = seq(0, 10, by = 0.01),
niter = 10,
a = 1,
Kernel = "epanechnikov",
verbose = 1,
startPoint = "identity",
prenormalization = FALSE
)
Arguments
dataU 
the data matrix on the 
Sigma_m1 
the inverse of the correlation matrix of the components of data 
h 
bandwidth of the kernel for Liebscher's procedure 
grid 
the grid at which the density generator is estimated. 
niter 
the number of iterations 
a 
tuning parameter to improve the performance at 0. See Liebscher (2005), Example p.210 
Kernel 
kernel used for the smoothing.
Possible choices are 
verbose 
if 1, prints the progress of the iterations.
If 2, prints the normalization constants used at each iteration,
as computed by 
startPoint 
is the given starting point of the procedure

prenormalization 
if 
Value
a list of two elements:

g_d_norm
: the estimated elliptical copula generator at each point of the grid; 
list_path_gdh
: the list of estimated elliptical copula generator at each iteration.
References
Derumigny, A., & Fermanian, J. D. (2022). Identifiability and estimation of metaelliptical copula generators. Journal of Multivariate Analysis, article 104962. doi:10.1016/j.jmva.2022.104962.
Liebscher, E. (2005). A semiparametric density estimator based on elliptical distributions. Journal of Multivariate Analysis, 92(1), 205. doi:10.1016/j.jmva.2003.09.007
See Also
EllDistrEst
for the estimation of elliptical distributions,
EllCopSim
for the simulation of elliptical copula samples,
EllCopLikelihood
for the computation of the likelihood of a given generator,
DensityGenerator.normalize
to compute the normalized version of a given generator.
Examples
# Simulation from a Gaussian copula
grid = seq(0,10,by = 0.01)
g_d = DensityGenerator.normalize(grid, grid_g = exp(grid), d = 3)
n = 10
# To have a nice estimation, we suggest to use rather n=200
# (around 20s of computation time)
U = EllCopSim(n = n, d = 3, grid = grid, g_d = g_d)
result = EllCopEst(dataU = U, grid, Sigma_m1 = diag(3),
h = 0.1, a = 0.5)
plot(grid, g_d, type = "l", xlim = c(0,2))
lines(grid, result$g_d_norm, col = "red", xlim = c(0,2))
# Adding missing observations
n_NA = 2
U_NA = U
for (i in 1:n_NA){
U_NA[sample.int(n,1), sample.int(3,1)] = NA
}
resultNA = EllCopEst(dataU = U_NA, grid, Sigma_m1 = diag(3),
h = 0.1, a = 0.5)
lines(grid, resultNA$g_d_norm, col = "blue", xlim = c(0,2))