在网上看了很多文章和教程之后,我大概可以了解某种模型(例如回归模型)的自由度。
但是,我还有另一个问题。知道了一个模型的df之后,我们应该怎么用呢?为什么这个数字有用?
使用 Python 包statsmodels
汇总数据集时,此工具会同时输出残差的 df 和模型的 df。为什么我们在评估模型时需要这些信息?
在网上看了很多文章和教程之后,我大概可以了解某种模型(例如回归模型)的自由度。
但是,我还有另一个问题。知道了一个模型的df之后,我们应该怎么用呢?为什么这个数字有用?
使用 Python 包statsmodels
汇总数据集时,此工具会同时输出残差的 df 和模型的 df。为什么我们在评估模型时需要这些信息?
在处理预测模型时,从某种意义上说,考虑模型中参数的数量可能会更好。参数的数量在某种意义上显示了模型的灵活性。参数可能是相关的,例如在分层模型中,因此您需要查看参数的有效数量,这是量化模型灵活性的另一种方法。
这主要是为了解释过度拟合(尽管这不是全部事实)。
想象一下,您正在将 n 次多项式拟合到 n+1 个数据点。多项式有 n+1 个参数,将命中您的每一个数据点。多项式可能具有巨大的参数并且上下波动非常高。在大多数情况下,这可能不是真正的基础模型。
因此,您可以例如规范化参数,例如通过惩罚参数的范数。这减少了参数的有效数量,从而限制了模型的自由度。另一种选择是拟合一个较低次数的多项式并查看它的外观。
如果模型具有自由度,您将需要至少个数据点来获得模型中参数的估计值,否则您将得到一个欠定系统。如果您要拟合一些数据点,您通常希望大得多。否则你有过拟合的风险。接近是“可以的”的情况是,当误差非常小并且您真正了解真正的基础模型时,在大多数情况下这不是真的。
测试统计的自由度是数字,因此它们并不完全相同,而是密切相关。
总结
因此,如果您的模型中的自由度与数据点的数量成正比,那么您很可能会过度拟合并且做出非常糟糕的预测。
这个博客很好地总结了这一点。
要完全了解自由度,在测试和参数估计的意义上,请查看此CV 帖子