Class InformationCriteria
java.lang.Object
com.quantfinlib.volatility.InformationCriteria
AIC / BIC — the two numbers that keep model shopping honest. Every extra
parameter raises the maximized log-likelihood by construction; these
criteria charge admission for it:
AIC = 2k - 2 ln L (Akaike: prediction-oriented) BIC = k ln n - 2 ln L (Schwarz: consistency-oriented)LOWER is better for both. BIC's penalty grows with the sample size, so on large samples it picks smaller models than AIC — BIC will recover the true model as n grows (consistency) while AIC minimizes out-of-sample prediction error even when no candidate is "true". The rule of thumb: AIC for forecasting, BIC for identifying structure.
Both criteria only rank models fitted to the SAME data with likelihoods
on the same scale — comparing an AIC computed on returns against one
computed on squared returns is meaningless, and this class cannot detect
that for you. Made for the volatility-model zoo here (Garch11 vs
GjrGarch11 vs Egarch11: does the leverage parameter pay
its way?), but the arithmetic is model-agnostic. Research lane.
-
Method Summary
-
Method Details
-
aic
public static double aic(double logLikelihood, int parameters) Akaike information criterion2k - 2 ln L.- Parameters:
logLikelihood- maximized log-likelihood ln L (finite)parameters- number of fitted parameters k, ≥ 0
-
bic
public static double bic(double logLikelihood, int parameters, int observations) Bayesian (Schwarz) information criterionk ln n - 2 ln L.- Parameters:
logLikelihood- maximized log-likelihood ln L (finite)parameters- number of fitted parameters k, ≥ 0observations- sample size n the likelihood was computed over, ≥ 1
-