MixtureHannanQuinnCriterion

class MixtureHannanQuinnCriterion(worstValue: Double = defaultWorstValue) : LogLikelihoodCriterion(source)

The Hannan-Quinn information criterion of a fitted mixture, -2 * logLikelihood + 2 * p * ln(ln(n)).

Measured as the best single criterion for this method's component count. Scored on the identical fits of the count experiment, it recovers the true count on 41.1% of attempts against BIC's 36.6% and AIC's 29.5%, and its mean error is -0.36 components against BIC's -1.21 and AIC's +1.34. That it sits between them is the point rather than a coincidence: AIC over-selects and BIC under-selects for reasons that are theorems, so the useful penalty is between 2 and ln n.

It is the principled member of that interval rather than an interpolation. Hannan and Quinn (1979) derived 2 ln ln n from the law of the iterated logarithm as the smallest penalty that remains consistent, so it keeps as much of AIC's power as consistency allows.

Reported alongside the others rather than made the default. Being best here by four points on one designed experiment is not enough to enthrone a criterion, and the wider finding of that experiment is that no penalty rescues the component count — an oracle-tuned coefficient reaches only about 47%.

Requires at least sixteen observations. Below e to the power e, which is about 15.15, ln ln n falls under one and the penalty is lighter than AIC's 2p — which inverts the ordering this criterion exists to occupy, since it is meant to be the smallest penalty that is still consistent rather than a more lenient one than AIC. The penalty is positive from three observations and undefined at one, but neither of those is the binding constraint.

Constructors

Link copied to clipboard
constructor(worstValue: Double = defaultWorstValue)

Functions

Link copied to clipboard
protected open override fun compute(candidate: MixtureCandidate, data: DoubleArray, logLikelihood: Double): Double

Computes the criterion from a log-likelihood already known to be finite.

Link copied to clipboard

A fresh instance, for use where a criterion must not be shared.