Class
NumCosmoMathStatsDistKernelST
Description [src]
final class NumCosmoMath.StatsDistKernelST : NumCosmoMath.StatsDistKernel
{
/* No available fields */
}
Multivariate Student’s t kernel for NcmStatsDist.
The kernel of NcmStatsDistKernel with $\nu$ degrees of freedom,
\begin{equation}
\bar{K}(\chi^2) = \left(1 + \frac{\chi^2}{\nu}\right)^{-(\nu + d)/2}, \qquad
u(\Sigma) = \frac{\Gamma(\nu/2)\,(\nu\pi)^{d/2}}{\Gamma\left((\nu + d)/2\right)}\sqrt{\det\Sigma},
\end{equation}
that is, the density of the multivariate t distribution with location $\mu$ and scale
matrix $h^2\Sigma$. For $\nu > 2$ its covariance is $\kappa h^2\Sigma$ with
$\kappa = \nu/(\nu - 2)$; for $\nu \leq 2$ it has none. A sample is
$x = \mu + h\sqrt{\nu/W}\,U^T z$, where $z$ holds $d$ independent standard normal
variables, $W$ is a chi-squared variable with $\nu$ degrees of freedom and
$\Sigma = U^T U$; see On Sampling from the Multivariate t Distribution, Marius
Hofert. As
$\nu \to \infty$ the kernel tends to NcmStatsDistKernelGauss; for finite $\nu$ it
decays as a power of $\chi^2$.
The rule-of-thumb bandwidth is \begin{equation} h = \left[\frac{16 (\nu - 2)^2 (1 + d + \nu)(3 + d + \nu)} {(2 + d)(d + \nu)(2 + d + \nu)(d + 2\nu)(2 + d + 2\nu)\,n}\right]^{1/(d + 4)}, \end{equation} which minimizes the asymptotic mean integrated squared error for $n$ points drawn from a t density with $\nu$ degrees of freedom and scale matrix $\Sigma$. It is evaluated at $\nu = 3$ when $\nu < 3$, and tends to the Gaussian rule as $\nu \to \infty$.
Constructors
ncm_stats_dist_kernel_st_new
Creates a new NcmStatsDistKernelST of dimension dim with nu degrees of freedom.
Functions
ncm_stats_dist_kernel_st_clear
Decreases the reference count of sdkst by one and sets sdkst to NULL.
Instance methods
Methods inherited from NcmStatsDistKernel (10)
ncm_stats_dist_kernel_eval_gamma_lambda
Computes the weighted sum of kernels (the mixture density at one point), $$ e^\gamma (1+\lambda) = \sum_i w_i\bar{K} (\chi^2_i) / u_i,$$ where $\gamma = \ln(w_a\bar{K} (\chi^2_a) / u_a)$ and $a$ labels the largest term of the sum. The three vectors must have the same length and unit stride.
ncm_stats_dist_kernel_eval_unnorm
ncm_stats_dist_kernel_eval_unnorm_vec
Computes the unnormalized kernel $\bar{K}$ at every element of chi2 and stores
the results in Ku.
ncm_stats_dist_kernel_free
Decreases the reference count of sdk by one.
ncm_stats_dist_kernel_get_dim
ncm_stats_dist_kernel_get_lnnorm
Computes $\ln u(\Sigma)$, the logarithm of the kernel normalization at $h = 1$.
ncm_stats_dist_kernel_get_rot_bandwidth
Computes the rule-of-thumb bandwidth $h$ for a mixture of n kernels: the $h$
that minimizes the asymptotic mean integrated squared error when the estimated
density is the kernel itself with the scale matrix $\Sigma$ of the mixture. See
the implementations for the closed forms.
ncm_stats_dist_kernel_get_var_factor
Computes the factor $\kappa$ relating the kernel covariance to its scale matrix $\Sigma$, that is $\mathrm{Cov} = \kappa \Sigma$. It is one for the Gaussian kernel and $\nu / (\nu - 2)$ for the Student-t kernel with $\nu$ degrees of freedom, which is infinite for $\nu \leq 2$ since such kernels have no covariance.
ncm_stats_dist_kernel_ref
Increases the reference count of sdk by one.
ncm_stats_dist_kernel_sample
Draws a point from the kernel with location mu, scale matrix $\Sigma$ and
bandwidth href, and stores it in y.
Signals
Signals inherited from GObject (1)
GObject::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.