与 AIC、BIC 和似然检验相比,交叉验证误差是否更具“信息性”?

机器算法验证 回归 可能性 分布 推理 错误
2022-04-03 12:09:54

与 AIC、BIC 和似然检验相比,交叉验证误差是否更具“信息性”?

据我所理解:

  • 似然检验用于确定:给定某些数据,与某些“替代统计模型”相比,某些拟合统计模型(即某些特定模型参数)是否更“可能”被观察到?(在实践中,这种“替代统计模型”通常采用前一种模型的形式,但所有模型参数均为 0)。这通常被表述为“假设检验”,据说似然检验统计量渐近地遵循卡方分布(似然检验比的卡方近似

  • 与该拟合统计模型的“复杂性”相比,AIC 和 BIC 都提供了拟合统计模型的性能指标。AIC 和 BIC 都松散地传达了与“奥卡姆剃刀”相同的想法 - (哲学中的一个概念)鉴于选择更简单的模型(具有更少参数的模型)和复杂的模型(具有更多参数的模型):如果两个模型提供相同的性能,更简单的模型更可取。这也与过拟合的想法有关(传统上,人们认为具有良好性能但具有许多参数的模型可能会过拟合并且很难预测新数据,即偏差-方差权衡)。据说“更好”的模型具有较低的 AIC 和 BIC 值——但没有关于“多低”的统计阈值,模型 1 AIC = 234,841 和模型 2 AIC = 100,089:模型 2 是否明显优于模型 1,或者两种模型都无法接受? )

在此处输入图像描述

另一方面,据说交叉验证(例如 K 折交叉验证、留出交叉验证)能够看到统计模型过度拟合可用数据的严重程度——如果统计模型过度拟合可用数据,(在启发式水平)认为这种统计模型可能很难预测新数据。交叉验证将一系列相似的统计模型拟合到随机选择的可用数据子集 - 模型误差记录在每个子集上,并且平均模型误差(即性能,例如 MSE、F-Score、准确度)记录在所有子集上(交叉验证错误)。因此,我们可以从交叉验证中获得与我们从似然检验和 AIC/BIC 中获得的统计模型类似的见解。

在此处输入图像描述

这引出了我的问题:与 AIC、BIC 和似然检验相比,交叉验证错误是否更具“信息性”?

以下是我的一般想法:

1)当您拥有大型数据集和具有许多参数的统计模型(例如深度神经网络)时,交叉验证过程的计算成本可能非常高(即可能需要拟合数千个模型)。50 年前,当计算机性能较弱时,可能无法对统计模型执行交叉验证——而似然检验、AIC 和 BIC 的计算成本较低。因此,最初,研究人员可能更喜欢似然检验、AIC 和 BIC 而不是交叉验证。

2) AIC 和 BIC 仅在相对度量中进行解释,例如模型 1 AIC = 234,841 和模型 2 AIC = 100,089:模型 2 是否明显优于模型 1,或者这两个模型都无法接受?另一方面,您可以对简单模型与复杂模型(例如,具有 3 个参数与 5 个参数的回归模型)执行交叉验证,并测量两个模型的交叉验证误差。从本质上讲,这应该允许您比较模型复杂性与模型性能 - 类似于 AIC 和 BIC 提供的信息。

3)当涉及到基于推理的模型时,实现交叉验证在概念上变得困难。

在此处输入图像描述

例如,假设您没有将回归模型拟合到您的数据中,而是决定将整个概率分布拟合到您的数据中。模型参数不再是回归系数 beta-0、beta-1、beta-2 等,而是现在的模型参数是不同变量的均值、方差和协方差(例如多元正态分布):

在此处输入图像描述

概率分布比回归模型提供更多信息:假设您想使用体重和身高来预测长颈鹿的年龄。

  • 回归模型只能让您预测不同体重和身高组合的年龄;并提供有关体重和身高的参数估计的置信区间。

  • 概率分布(即基于推理的模型)还可以让您预测不同体重和身高组合的年龄 - 但此外还可以让您回答更深入的问题,例如“长颈鹿最可能的体重是多少那是20岁,15英尺高?” (通过 MCMC 抽样对条件分布的预期)或“观察到体重小于 500 磅的长颈鹿的概率是多少”(边际概率分布)?

我想在理论上,可以创建交叉验证程序测量概率分布模型的误差(在 70% 的数据上拟合概率分布,并且对于测试集中的每个测量值(30%):看看预期的接近程度条件分布的值来自真实测量......然后重复“k”次)。但一般来说,似然检验更常用于评估给定某些数据的概率分布函数的拟合度。

我的结论有些正确吗?与 AIC、BIC 和似然检验(反之亦然)相比,在某些情况下,交叉验证被证明更具信息性吗?

谢谢!

参考:

注意:我从未遇到过任何性能指标(例如 AIC、BIC、似然检验)可以让您确定统计模型(例如高斯过程回归或高斯过程回归)的误差。我一直认为,也许手动创建交叉验证循环将是衡量高斯过程模型的错误/过拟合的唯一方法。

2个回答

除了已经存在的答案之外,还要提出另一件事:AIC、BIC 等在特定情况下可能非常好(即评估成本低,使用所有数据,让你做 AIC 模型平均等事情)当您可以定义它们并且它们有效时。这个限制是什么意思?例如,对于某些模型类,尤其是具有大量正则化的模型类,甚至很难定义这些(例如,什么是 AIC 或 BIC - 特别是在参数数量方面 - 对于 XGBoost、随机森林或卷积神经网络) , 即使有像 DIC 这样的各种扩展。此外,您的模型可能在重要方面指定错误(例如,您正在使用某种时间序列模型,如 ARIMA,但您知道您错误指定了随着时间的推移记录的真正潜在相关性)。

交叉验证对于优化指标也非常有用,这些指标不容易作为似然函数直接优化。一个例子是优化 AuROC:虽然有一些技巧和尝试来定义直接优化它的损失函数,但这并不简单,但您可以使用一些标准似然函数拟合一些模型,然后根据交叉优化 AuROC 的因素做出选择验证。

上述这些因素意味着,例如在 Kaggle 形式的交叉验证等预测竞赛中,通常是模型评估/建模选择的首选方法。

我可能对似然比检验过于消极,而且,是的,我意识到您可以根据具有特定 alpha 水平的模型选择来重新表述 AIC 模型选择(但无论如何我不推荐模型选择,而是模型平均),但出于考虑 AIC、BIC 或交叉验证的目的,我发现它们并不是那么有用。当然,当您有一个预先指定的实验模型(例如,药物 A 与安慰剂对疾病 X 的随机对照试验)时,零假设检验很有用,但它对于构建一个表现良好的良好模型的用处要小得多一些指标。

在这一点之外,我真的没有看到推理模型的区别。您可以为您描述的示例清楚地定义一个有意义的交叉验证指标。

我怀疑许多使用一种技术而另一种技术可能同样好(甚至更好)的例子,归结为某些研究社区的历史先例。例如,在某些领域,AIC 非常受欢迎,在其他领域,训练测试拆分和/或交叉验证,其他人非常热衷于假设检验,以及另一个尚未提及的选项,还有各种形式的引导。

@RichardHardy 已经给出了部分答案

1) AIC 的解释确实是负预期对数似然的两倍(如此所述)。因此,它不仅仅是一个相对的衡量标准。此外,它在某种意义上是对误差的衡量。2)交叉验证过去对于一些复杂的模型在计算上是不可行的,但是 AIC/BIC 在代数上是不可行的,因为模型的可能性和自由度可能很难获得。

扩展它,注意像 LR 测试或 AIC 之类的东西是在你的训练数据上测量的,与样本外方法(比如为验证保留测试集)相比,k- 折叠交叉验证、LOOCV 等。当使用前一种指标时,您假设它们测量的内容告诉您一些与判断模型的潜在样本外性能相关的东西。当使用某种形式的交叉验证时,您正在直接测量样本外的性能。当然,您的测试集是您收集的数据的子样本,因此如果您的数据不能代表总体,交叉验证指标也会有偏差。

此外,正如 Richard 所指出的,使用交叉验证可能更简单(它适用于您想要的任何模型,不需要数学),但计算成本更高,因此在某些情况下,您会更喜欢其中一种方法给另一个。

您并不总是关心样本外的性能。机器学习关注的是做出预测,它有利于交叉验证,统计关注的是推理,它经常使用样本内指标。请参阅两种文化:统计与机器学习?详情。

最后,指标在机器学习场景中不一定有意义,例如,AIC 会惩罚参数的数量,对于参数数量总是很大且不是你最关心的深度学习模型,你不会这样做。