您何时以及为什么不想使用 GAM?

机器算法验证 广义加法模型 毫克CV
2022-03-26 04:18:12

我知道 mgcv 中的 GAM 能够减少s(x)与响应变量的线性关系。如果是这种情况,您为什么不使用 GAM?

gam()使用s(x)我的理解来拟合平滑项时,如果x和 响应变量之间的关系是线性的,那么将拟合线性关系。类似地,如果x和 响应变量之间的关系是非线性的,则将拟合适当的非线性关系。这在查看时得到证明summary(my_gam)- 如果s(x)与响应变量具有线性关系,则有效自由度 (edf) insummary(my_gam)为 1 或大约为 1,表示线性关系。

因此,我不明白为什么如果 GAM 可以对存在的线性关系进行建模,但如果存在非线性关系,那么您为什么不使用它。换句话说,如果必须使用 GLM 而不是 GAM,为什么对响应和预测变量之间的关系做出额外的假设 - 使用 GAM 时不需要做出的假设?

似乎 GAM 可以做 GLM 可以做的所有事情以及更多,但除非需要,否则它不会做“更多”位(即拟合非线性关系)。

1个回答

你可以把它极端化,问 -NN 回归这样的非参数模型?k实际上,相反的问题为什么有人会使用 KNN 进行回归?被问到了,你可以查看它以获得更详细的讨论。你也可以让问题更广泛,问为什么我们不使用更复杂的模型而不是更简单的模型?例如,如果可以使用神经网络,为什么有人会使用逻辑回归或线性回归?

选择简单模型的两个主要原因是:

  • 可解释性。像线性回归这样的简单模型可以直接解释,而更复杂的模型则不一定如此。这在某些学科(例如医学)中可能是可取的,甚至在其他学科(金融)中是强制性的。
  • 过拟合。更复杂的模型更容易过拟合,尤其是对于小样本量。复杂的模型可能只是简单地记住训练数据集而不是泛化。

正如评论中所注意到的,这似乎也在以下线程中进行了讨论:何时使用 GAM 与 GLM

作为评论,请注意使用参数线性的模型并不是一个很大的限制。您可以使用多项式组件轻松扩展线性模型来模拟复杂关系,在某些情况下这甚至可能优于神经网络(参见Cheng 等人,2018 [arXiv:1806.0685])。