View source: R/EllDistrEst-adaptive.R
| EllDistrEst.adapt | 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 g at some point \xi, by
\widehat{g}_{n,h,a}(\xi)
:= \dfrac{\xi^{\frac{-d+2}{2}} \psi_a'(\xi)}{n h s_d}
\sum_{i=1}^n
K\left( \dfrac{ \psi_a(\xi) - \psi_a(\xi_i) }{h} \right)
+ K\left( \dfrac{ \psi_a(\xi) + \psi_a(\xi_i) }{h} \right),
where
s_d := \pi^{d/2} / \Gamma(d/2),
\Gamma is the Gamma function,
h and a are tuning parameters (respectively the bandwidth and a
parameter controlling the bias at \xi = 0),
\psi_a(\xi) := -a + (a^{d/2} + \xi^{d/2})^{2/d},
\xi \in \mathbb{R}, K is a kernel function and
\xi_i := (X_i - \mu)^\top \, \Sigma^{-1} \, (X_i - \mu),
for a sample X_1, \dots, X_n.
This function computes "optimal asymptotic" values for the bandwidth h
and the tuning parameter a from a first step bandwidth that the user
needs to provide.
EllDistrEst.adapt(
X,
mu = 0,
Sigma_m1 = diag(NCOL(X)),
grid,
h_firstStep,
grid_a = NULL,
Kernel = "gaussian",
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 |
vector containing the values at which we want the generator to be estimated. |
h_firstStep |
a vector of size If |
grid_a |
the grid of possible values of |
Kernel |
name of the kernel. Possible choices are
|
mpfr |
if |
precBits |
number of precBits used for floating point precision
(only used if |
dopb |
a Boolean value.
If |
a list with the following elements:
g a vector of size n1 = length(grid).
Each component of this vector is an estimator of g(x[i])
where x[i] is the i-th element of the grid.
best_a a vector of the same size as grid indicating
for each value of the grid what is the optimal choice of a found by
our algorithm (which is used to estimate g).
best_h a vector of the same size as grid indicating
for each value of the grid what is the optimal choice of h found by
our algorithm (which is used to estimate g).
first_step_g first step estimator of g, computed using
the tuning parameters best_a and h_firstStep[2].
AMSE_estimated an estimator of the part of the asymptotic MSE
that only depends on a.
Alexis Derumigny, Victor Ryan
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,
EllDistrSim for the simulation of elliptical distribution samples.
estim_tilde_AMSE which is used in this function. It estimates
a component of the asymptotic mean-square error (AMSE) of the nonparametric
estimator of the elliptical density generator assuming h has been optimally
chosen.
n = 500
d = 3
X = matrix(rnorm(n * d), ncol = d)
grid = seq(0, 5, by = 0.1)
result = EllDistrEst.adapt(X = X, grid = grid, h = 0.05)
plot(grid, result$g, type = "l")
lines(grid, result$first_step_g, col = "blue")
# Computation of true values
g = exp(-grid/2)/(2*pi)^{3/2}
lines(grid, g, type = "l", col = "red")
plot(grid, result$best_a, type = "l", col = "red")
plot(grid, result$best_h, type = "l", col = "red")
sum((g - result$g)^2, na.rm = TRUE) < sum((g - result$first_step_g)^2, na.rm = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.