我们应该如何使用模型的自由度?

机器算法验证 回归 预测模型 自由程度
2022-04-12 13:15:30

在网上看了很多文章和教程之后,我大概可以了解某种模型(例如回归模型)的自由度。

但是,我还有另一个问题。知道了一个模型的df之后,我们应该怎么用呢?为什么这个数字有用?

使用 Python 包statsmodels汇总数据集时,此工具会同时输出残差的 df 和模型的 df。为什么我们在评估模型时需要这些信息?

1个回答

在处理预测模型时,从某种意义上说,考虑模型中参数的数量可能会更好。参数的数量在某种意义上显示了模型的灵活性。参数可能是相关的,例如在分层模型中,因此您需要查看参数的有效数量,这是量化模型灵活性的另一种方法。

这主要是为了解释过度拟合(尽管这不是全部事实)。

想象一下,您正在将 n 次多项式拟合到 n+1 个数据点。多项式有 n+1 个参数,将命中您的每一个数据点。多项式可能具有巨大的参数并且上下波动非常高。在大多数情况下,这可能不是真正的基础模型。

因此,您可以例如规范化参数,例如通过惩罚参数的范数。这减少了参数的有效数量,从而限制了模型的自由度。另一种选择是拟合一个较低次数的多项式并查看它的外观。

如果模型具有自由度,您将需要至少个数据点来获得模型中参数的估计值,否则您将得到一个欠定系统。如果您要拟合一些数据点,您通常希望大得多否则你有过拟合的风险。接近是“可以的”的情况是,当误差非常小并且您真正了解真正的基础模型时,在大多数情况下这不是真的ppnnpnp

测试统计的自由度是数字,因此它们并不完全相同,而是密切相关。ν=np

总结

因此,如果您的模型中的自由度与数据点的数量成正比,那么您很可能会过度拟合并且做出非常糟糕的预测。

这个博客很好地总结了这一点。

要完全了解自由度,在测试和参数估计的意义上,请查看CV 帖子