简单或多元线性回归的交叉验证有意义吗?

机器算法验证 回归 多重回归 交叉验证 线性模型
2022-02-26 05:31:23

将训练测试拆分或 k 折交叉验证应用于简单的线性回归模型或多元线性回归模型是否有意义?

我对此感到非常困惑,因为我看到了这个问题:How to Evaluate Results of Linear Regression,其中赞成的评论和答案表明否。

@octern 评论:

我不认为这种评估通常与简单的回归模型一起使用。它会告诉您什么是您无法从使用整个数据集生成回归参数中发现的?通常使用评估数据集的原因是为了防止过度拟合,但是当您已经知道您的模型将只包含一个自变量时,这不是问题。

@MattKrause 的最佳答案:

我同意@Octern 的观点,很少有人看到人们对线性模型使用训练/测试拆分(甚至交叉验证之类的东西)。对于像这样一个非常简单的模型,过度拟合(几乎)肯定不是问题。

2个回答

首先,过度拟合可能并不总是一个真正的问题。没有变量选择(或使用响应来决定如何指定预测变量的任何其他方式),估计参数很少,观察结果很多,只有弱相关的预测变量,以及低误差方差可能导致有人认为验证模型拟合过程得不偿失。很公平; 尽管您可能会问为什么,如果他们对此如此确定,他们没有指定更多参数以允许预测变量和响应之间的非线性关系或交互。

其次,分析的目的可能是参数估计而不是预测。如果您使用回归来估计材料的杨氏模量,那么一旦您有了点估计和置信区间,工作就完成了。

第三,使用普通的最小二乘回归(并且没有变量选择),您可以分析地计算预测性能的估计值:调整后的确定系数和预测的残差平方和统计量(请参阅调整后的 R 平方是否寻求估计固定分数或随机分数人口 r 平方?为什么不使用交叉验证来估计线性模型的误差?

我总是会执行交叉验证。即使您正在拟合一个只有一个解释变量的简单线性模型,例如

Y=X1a1+b

原因是,交叉验证不仅是对抗过度拟合的工具,也是评估算法性能的工具。过拟合绝对是性能的一个方面。然而,性能不仅包括是否发生过拟合的问题。另一方面是模型参数的方差。

假设您为上面的模型做了一个 2 折 CV,有一次拟合参数是,而另一半数据是在这种情况下,我不会相信线性模型。a1=1a1=1

另一个方面是预测和测试集上的真实值我会比较不同折叠的残差,以了解预测误差的偏差有多高。如果一个折叠产生一个完美的预测,而另一个折叠的误差真的很高,我会担心模型......Y^=X1a1+bY