使用 Python 中的目标变量构建包含线性和非线性预测变量的广义回归模型

数据挖掘 线性回归 机器学习模型
2022-02-13 05:57:01

想象一个有五个预测变量和一个目标变量的数据集,通过散点图我观察到三个预测变量与目标变量具有线性关系,另外两个具有非线性关系。

如何建立广义线性回归模型,以便解释两个变量的非线性以及其他三个变量的线性关系?

1个回答

我建议使用“广义加法模型”。这些类型的模型是线性的,但可以处理狂野的非线性。这个想法是——例如使用回归样条曲线——许多线性回归是“堆叠的”,因此它们可以共同解释高度非线性的影响。

这是一个 Python 实现:https ://pygam.readthedocs.io/en/latest/

当您绑定到线性回归 (OLS) 时,您可以将多项式添加到回归中。在这种情况下,您只需在数据框中生成一个新的“列”,其中包含例如x2. 您可以将此变量直接添加到回归中,因为线性回归是相加的:

例子:

y=β0+β1x+u

...可以通过平方项来增加x...

y=β0+β1x+β2x2+u

...这也适用于x3(等等)或者你可以采取log()等等

使用 GAM,您不必决定如何对非线性进行建模。这就是 GAM 的巨大优势。当您坚持使用 OLS 时,您需要检查非线性(由您强加)是否真的有助于改善拟合和/或预测。

GAM 在“ Introduction to Statistical Learning ”中有很好的解释,请看第 7 章书中还有实验室的Python 代码