在实际中,常常希望根据已有数据,确定因变量(数值变量)与自变量(可以是类别变量)的关系,在此关系的基础上对未知数据进行预测。这种方法叫回归分析
一般情况下可以按照模型的形式分为线性回归和非线性回归两种形式

分类

线性模型

线性回归是在研究相关关系时优先考虑(最为直观)的一种模型,它假定所有解释变量对被解释变量的影响是线性叠加的,一般假设总体存在如下关系(矩阵形式):

\begin{equation} \boldsymbol{Y}=\boldsymbol{X} \boldsymbol{\beta}+\boldsymbol{\mu} \end{equation}

在统计学习的视角下,不同的线性模型则是从不同的假设出发建立不同的目标函数/约束条件,进而求解得到不同的估计结果,常见的线性模型有最小二乘法、岭回归、套索回归、弹性网络回归等。对于线性回归的线性也可以从多个角度理解,通过适当放松线性条件则可以得到其它的回归方法,如多项式回归(变量非线性)、

OLS

最小二乘法是用于拟合回归线最常用的方法。对于观测数据,它通过最小化每个数据点到线的垂直偏差平方和来计算最佳拟合线。
在计算总偏差时,偏差先平方,所以正值和负值没有抵消。
线性回归-统计学视角
多元线性回归-计量视角

岭回归(Ridge Regression)

岭回归是解决OLS回归中多重共线性问题时提出的一种方法,后被进一步延伸和Lasso回归并称为线性模型的正则化方法,岭回归的具体介绍见文章岭回归

套索回归(Lasso Regression)

详情见文章
套索回归类似于岭回归,Lasso(Least Absolute Shrinkage and Selection Operator)也会就回归系数向量给出惩罚值项。此外,它能够减少变化程度并提高线性回归模型的精度。套索回归的损失函数:

L1=argmin{yβx+λβ}L1=arg\hspace{5pt} min\{\left||y-\beta x\right||+\lambda||\beta||\}

使用的惩罚函数(β||\beta||)是l1范数。这导致惩罚值使一些参数估计结果等于零。
使用惩罚值越大,对模型的惩罚力度越大,从而获得一个特征较少的模型。参数的确定可以借助交叉验证法。
点击查看【bilibili】
优缺点:

  • 弥补最小二乘和逐步回归的不足,可以很好的进行特征选择
  • 很好解决了特征多重共线性的问题
  • 特征高度相关,模型倾向于选择一个特征忽略其它特征,会导致结果的不稳定

弹性网络回归(ElasticNet)

ElasticNet是Lasso和Ridge回归技术的混合体。它使用L1来训练并且L2优先作为正则化矩阵。
当有多个相关的特征时,ElasticNet是很有用的。Lasso 会随机挑选他们其中的一个,而ElasticNet则会选择两个。

多项式回归(Polynomial Regression)

对于一个回归方程,如果自变量的指数大于1,那么它就是多项式回归方程。
通常,多项式回归的方法是通过增加特征的方法,将高次项变换为1次项,从而将多项式回归问题转化为线性回归问题

逐步回归(Stepwise Regression)

在处理多个自变量时,可以使用逐步回归。在这种技术中,自变量的选择是在一个自动的过程中完成的,其中包括非人为操作。
image.png
通过观察统计的值,来识别重要变量。逐步回归通过增删制定标准的协变量来拟合模型。
(1)标准逐步回归法。该方法做两件事情,即增加和删除每个步骤所需的预测。
(2)向前选择法。该方法从模型中最显著的预测开始,然后为每一步添加变量(依据AIC值)。
(3)向后剔除法。该方法与模型的所有预测同时开始,然后在每一步消除最小显著性的变量。
使用最少的预测变量数来最大化预测能力。是处理高维数据集的方法之一。
image.png

支持向量机回归(SVR)

image.png
优点:

  • 不仅支持线性模型,对于数据和特征之间的非线性关系也能很好抓住;
  • 不需要担心多重共线性问题,可以避免局部极小化问题,提高泛化性能,解决高维问题;
  • 支持向量回归虽然不会在过程中直接排除异常点,但会使得由异常点引起的偏差更小。

缺点:计算复杂度高,在面临数据量大的时候,计算耗时长。

模型评价

回归分析在数据量远大于特征数量时往往能表现出比较优良的效果,但是需要注意的是线性模型对于特征之间的共线性非常敏感,当特征之间存在共线性时,数据稍微有一些变动(噪声的存在)都会对回归结果产生巨大影响。

python实现

回归分析实战