使用k折CV的原始(?)模型选择


9

当使用k-fold CV在回归模型中进行选择时,我通常会针对每个模型及其标准误差SE分别计算CV误差,并且我会在CV误差最低的模型的1 SE中选择最简单的模型(1标准错误规则,请参见此处的示例)。但是,最近有人告诉我,这样我就高估了可变性,并且在选择两个模型A和B之间的特定情况下,我确实应该以不同的方式进行:

  • 对于长度每个折叠,计算两个模型预测之间的逐点差异。然后计算折叠KNK
    MSDK=i=1NK(y^Aiy^Bi)2NK
  • 像往常一样在折痕上平均,并将此CV差值误差(及其标准误差)用作泛化误差的估计量。MSDK

问题:

  1. 你能理解这个吗?我知道使用CV错误作为广义错误的估计因素有理论上的原因(我不知道这些原因是什么,但我知道它们存在!)。我不知道使用此“差异” CV错误背后是否有理论上的原因。
  2. 我不知道这是否可以推广到两个以上模型的比较中。计算所有成对模型的差异似乎是冒险的(多次比较?):如果您拥有两个以上的模型,该怎么办?

编辑:我的公式是完全错误的,此处描述了正确的指标,而且复杂得多。好吧,我很高兴在盲目应用公式之前在这里问过!感谢@Bay帮助我理解他/她的启发性答案。所描述的正确方法是实验性的,因此我会坚持使用我信任的工作马,CV错误!

Answers:


2

该是泛化误差的一个奇怪的措施,因为抵抗组甚至没有进入画面。所有这些都将告诉您模型的预测之间的关联程度,但是与实际预测测试数据点的预测程度无关。MSDK

例如,我可以提出一个愚蠢的预测变量对:

y^A(x,θ)=1+x,1θ

y^B(x,θ):=1+x,1θ2

在这种情况下,对交叉验证进行调整会告诉我将设置得尽可能大,因为这会降低,但是我怀疑这些模型是否可以作为良好的预测指标。θMSDK

我看了一下链接,但是那里没有看到您的度量。安德鲁·盖尔曼(Andrew Gelman)是一位受人尊敬的统计学家,因此我怀疑他是否会赞同上述内容,但显然不能作为泛化误差的估计值。他的论文和链接讨论了“留一法(LOO)”交叉验证,该方法仍然需要与测试数据点(即,从培训中保留下来的)作为基准进行比较。该是一个纯粹的“向内”寻找指标不会告诉你预期的测试误差东西(也许除了这两种模式可能也有类似的错误...)。MSDKMSDK


对OP评论的回应

您评论中提出的公式需要一些上下文:

  1. 它是贝叶斯准确性的量度,因为elpd预期的对数逐点预测密度 -相当大,但是基本上,它是在某些先验预测下在每个数据点评估的后验预测对数的期望值的总和使用交叉验证估算的密度。
  2. 使用留一法交叉验证计算上述度量(elpd),其中预测密度在省略的点进行。
  3. 他们的公式(19)的作用是计算两个模型之间的预测准确性差异(使用elpd测量)的标准误差。这个想法是elpd的差是渐近正态的,因此标准误差具有推论性均值(并且可以用来检验基本差是否为零),或者模型A的预测误差小于模型B的预测误差。

因此,此措施有很多活动内容:您需要运行MCMC采样算法才能从后验参数密度中获取点。然后,您需要对其进行集成以获得预测密度。然后,您需要获取这些值的期望值(多次绘制)。这是一个相当大的过程,但是最后应该给出一个有用的标准错误。

注意:在等式(19)下面的第三个完整段落中,作者指出,需要更多的研究来确定这种方法是否可以很好地用于模型比较...因此,其方法尚未得到很好的测试(高度试验)。因此,在后续研究证实它可以可靠地识别出更好的模型之前(在elpd方面),您基本上相信此方法的实用性。


我明白你的意思:很明显,我(以及我的同事向我指出了这篇论文)对此一无所知。您能给我解释一下盖尔曼所说的“他们的[模型A和B]差异的标准误差”是什么意思吗,?链接文件的第18页,参数。5.2。如果您可以提供一个简单的示例来说明如何计算此术语,那将真的有帮助。这里肯定有很多我不理解的地方。se(elpd^LOOAelpd^LOOB)
DeltaIV

@DeltaIV好的...我将检查引用的部分并尝试为您解压缩该公式。

1
@DeltaIV好的,我进行了更改以进行检查。我已经扩大了我的职位。这似乎是用于比较两个预测模型的非常实验性(未经验证)的方法。我会谨慎使用它,除非您可以通过自己的蒙特卡洛研究验证其性能(即,如果您知道正确的答案,它是否可以选择更具预测性的模型?)。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.