Learn R Programming

robFitConGraph (version 0.4.1)

find_eta: The proportionality constant \(\eta\) of the t-MLE for scatter

Description

The proportionality constant \(\eta\) of the t-MLE for scatter

Usage

find_eta(df_data, df_est, p)

Value

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}\).

Arguments

df_data

A positive real number or Inf. The degrees of freedom of the data-generationg t-distribution. Inf means normal distribution.

df_est

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).

p

An integer, at least 2.

Author

Daniel Vogel

Details

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.

References

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

Examples

Run this code
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