'information criteria for lagorder selection'

@cache_readonly
def info_criteria(self):

    nobs = self.nobs
    neqs = self.neqs
    lag_order = self.k_ar
    free_params = ((lag_order * (neqs ** 2)) + (neqs * self.k_trend))
    ld = logdet_symm(self.sigma_u_mle)
    aic = (ld + ((2.0 / nobs) * free_params))
    bic = (ld + ((np.log(nobs) / nobs) * free_params))
    hqic = (ld + (((2.0 * np.log(np.log(nobs))) / nobs) * free_params))
    fpe = ((((nobs + self.df_model) / self.df_resid) ** neqs) * np.exp(ld))
    return {'aic': aic, 'bic': bic, 'hqic': hqic, 'fpe': fpe}
