View source: R/EllDistrEstDeriv.R
| EllDistrDerivEst | R Documentation |
A continuous elliptical distribution has a density of the form
f_X(x) = {|\Sigma|}^{-1/2}
g\left( (x-\mu)^\top \, \Sigma^{-1} \, (x-\mu) \right),
where x \in \mathbb{R}^d,
\mu \in \mathbb{R}^d is the mean,
\Sigma is a d \times d positive-definite matrix
and a function g: \mathbb{R}_+ \rightarrow \mathbb{R}_+, called the
density generator of X.
The goal is to estimate the derivatives of g at some point \xi,
by kernel smoothing, following Section 3 of (Ryan and Derumigny, 2024).
EllDistrDerivEst(
X,
mu = 0,
Sigma_m1 = diag(NCOL(X)),
grid,
h,
Kernel = "gaussian",
a = 1,
k,
mpfr = FALSE,
precBits = 100,
dopb = TRUE
)
X |
a matrix of size |
mu |
mean of X. This can be the true value or an estimate. It must be
a vector of dimension |
Sigma_m1 |
inverse of the covariance matrix of X.
This can be the true value or an estimate. It must be
a matrix of dimension |
grid |
grid of values on which to estimate the density generator. |
h |
bandwidth of the kernel. Can be either a number or a vector of the
size |
Kernel |
name of the kernel. Possible choices are
|
a |
tuning parameter to improve the performance at 0. |
k |
highest order of the derivative of the generator that is to be
estimated. For example, |
mpfr |
if |
precBits |
number of precBits used for floating point precision
(only used if |
dopb |
a Boolean value.
If |
Note that this function may be rather slow for higher-order derivatives. Furthermore, it is likely that the number of observations needs to be quite high for the higher-order derivatives to be estimated well enough.
a matrix of size length(grid) * (kmax + 1)
with the estimated value of the generator and all its derivatives
at all orders until and including kmax, at all points of the grid.
Alexis Derumigny, Victor Ryan
Victor Ryan, Alexis Derumigny
Ryan, V., & Derumigny, A. (2024). On the choice of the two tuning parameters for nonparametric estimation of an elliptical distribution generator arxiv:2408.17087.
EllDistrEst for the nonparametric estimation of the
elliptical distribution density generator itself,
EllDistrSim for the simulation of elliptical distribution samples.
This function uses the internal functions compute_etahat
and compute_matrix_alpha.
# Comparison between the estimated and true generator of the Gaussian distribution
n = 50000
d = 3
X = matrix(rnorm(n * d), ncol = d)
grid = seq(0, 5, by = 0.1)
a = 1.5
gprimeEst = EllDistrDerivEst(X = X, grid = grid, a = a, h = 0.09, k = 1)[,2]
plot(grid, gprimeEst, type = "l")
# Computation of true values
g = exp(-grid/2)/(2*pi)^{3/2}
gprime = (-1/2) * exp(-grid/2)/(2*pi)^{3/2}
lines(grid, gprime, col = "red")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.