The proportionality constant \(\eta\) of the t-MLE for scatter
find_eta(df_data, df_est, p)A real value. Returns the constant \(\eta\) (cf. Vogel and Tyler 2014, p. 870, Example 2). This first appeared in Tyler (1982, p. 432, Example 3) as \(\sigma^{-1}\). It is also stated in Tyler (1983, p. 418) as \(\sigma^{-1}_{u,g}\).
A positive real number or Inf. The degrees of freedom of the
data-generationg t-distribution. Inf means normal distribution.
A positive real number or Inf. The degrees of freedom of the
t-distribution the M-estimator is derived from. Inf is the usual sample covariance
(i.e. the MLE under normality).
An integer, at least 2.
Daniel Vogel
Let \(X_1,...,X_n\) be an i.i.d.\ sample from \(t_{\nu,p}(\mu, S)\), i.e.,
a p-variate t-distribution with \(\nu\) degrees of freedom, location parameter \(\mu\)
and shape matrix \(S\). The limit case \(\nu=\infty\) is allowed, where \(t_{\infty,p}(\mu,S)\) is
\(N_p(\mu,S)\).
Let \(\hat{S}_n\) be the \(t_m\) MLE for scatter. Also here, \(m=\infty\) is allowed:
This is the sample covariance matrix.
If \(\hat{S}_n\) is applied to \(X_1,...,X_n\), then, as \(n \to \infty\),
\(\hat{S}_n\) converges in probability to \(\eta S\).
The function find_eta() returns the proportionality constant \(\eta\)
for inputs \(\nu, m\) and \(p\).
(Note: if \(\nu \neq m\), \(\hat{S}_n\) is technically not an MLE, but an M-estimator.)
Some specific values:
If \(\nu = m\) (also for \(\infty = \infty\)), then \(\eta = 1\) (i.e., the MLE at the corresponding population distribution consistently estimates its population value).
If \(m = \infty\) and \(2 < \nu < \infty\), then \(\eta = \nu/(\nu-2)\).
If \(m = \infty\) and \(\nu <= 2\), then \(\eta = \infty\). Precisely: \(\hat{S}_n\) does not converge in this case.
The general expressions: \(\eta\) is the solution to
\(F(\eta) = E(\phi(R/\eta)) - p = 0\),
where \(\phi(y) = y(m+p)/(m+y)\) and \(R = (X - \mu)^\top S^{-1} (X-\mu)\) for
\(X \sim t_{\nu,p}(\mu,S)\).
For the integral, stats::integrate is used, for finding the root the
function stats::uniroot.
In general, \(\nu\) (df_data) and \(m\) (df_est) can take on any
positive value, including \(\infty\). The function works well for \(p <= 100\) and
\(\nu >= 1\). For larger values of \(p\), setting \(\eta = 1\) provides a good approximation
(unless df_data is very small and df_est is rather large).
For smaller values of \(\nu\), try the following potential remedies:
Re-consider if \(\nu < 1\) is really necessary. This is VERY heavy-tailed.
Adaptation of the search interval.
By a suitable substitution, transform the integral to numerically more stable one (bounded support).
\(F(\eta)\) is a decreasing function.
The larger df_est, the larger \(\eta\).
The larger df_data, the smaller \(\eta\).
The larger \(p\), the closer \(\eta\) is to 1.
Tyler, D. E. (1982): Radial estimates and the test for sphericity,
Biometrika, 69, 2, pp. 429-36
Tyler, D. E. (1983): Robustness and efficiency properties of scatter matrices,
Biometrika, 70, 2, pp. 411-20
Vogel, D., Tyler, D. E. (2014): Robust estimators
for nondecomposable elliptical graphical models, Biometrika, 101, 865-882
find_eta(df_data = Inf, df_est = 3, p = 10)
find_eta(df_data = 4.5, df_est = 4.5, p = 2)
Run the code above in your browser using DataLab