关于回归模型及其评价方法的一些问题

促使我写这篇文章的原因是某项实验中发现一些先进的预测模型尽管在MAE、MAPE、RMSE指标上的表现远超其他模型,但却具有非常低的R2和EVAR值,再加上对实际数据与预测数据的观察,让我对「什么是”好“的回归模型」以及「各项回归评价指标具体能告诉你什么信息」蒙上了一层疑问。所以写这篇文章整理一下思路。

0x00 回归分析溯源

何时应该使用回归分析?回归分析可以做什么?

在统计机器学习中,除了回归分析以外还有聚类、分类等分析方法。那么何时应该使用回归分析?可以从回归分析的能力角度回答这个问题。 回归分析评估响应变量(因变量)与解释变量(自变量、特征)的关系,从而让你能够在指定解释变量取值的时候预测响应变量的取值(期望)(获得对未观测到的数据的预测能力),便于决策或者增加对某复杂问题的认识。 回归系数也可以表示响应变量与各个维度解释变量的关系。

以具体问题为例,回归分析可以用于回答如下问题:

  • 教育背景与智商是否对收入有影响?
  • 社会经济地位是否影响教育上的成就?
  • 锻炼身体和节食是否会影响体重?
  • 喝咖啡和吸烟是否影响寿命?

一言以蔽之,就是要回答“某些变量是否与另一个变量是否有关系”。实际进行分析的时候,如果希望回归分析的结果更能说明问题,还需要进行控制变量,排除除了回归模型所考虑的解释变量以外还能够对响应变量产生影响的变量(混淆变量)的干扰,从而避免得到“伪相关”的结论。比如你想探讨“瑶辅助(技能机制以及强度)是否与队伍陷入逆风是否有关系”这个问题,那你要尽量排除有玩家明演的对局,并基于双方队伍除辅助位置外的其他位置强度尽量一致的对局去进行分析。

回归模型有什么分类?如何选择正确的回归分析类型?

回归模型有多种类别,如何选择取决于你的数据(数据的类型、复杂程度)。 通常我们说的回归是在响应变量为连续取值的情况下评估响应变量与解释变量的关系,当响应变量为离散值时的回归即为分类。

线性回归vs非线性回归

线性回归

线性回归通过线性函数对响应变量与解释变量的关系进行建模。“线性”是针对待估计参数而言的,线性回归函数是一个或多个参数(回归系数)的线性组合。

这里可能容易被误解,认为线性回归是关于解释变量X的线性函数,可以这么想:通常我们进行回归分析的时候,解释变量的取值我们是知道的,待估参数才是未知数,我们是通过已观测到的解释变量和响应变量取值去估计未知的参数/回归系数,考虑解释变量的线性与否意义不大,因为总可以通过一种变换把“线性”形式的解释变量转换成“非线性”形式,反之亦可,但不管怎样转换我们都是能够确定解释变量取值的(从样本中取)。再引用Jim的统计学博客中一段话,体会体会:

Statisticians say that this type of regression equation is linear in the 
parameters.However, it is possible to model curvature with this type of 
model. While the function must be linear in the parameters, you can raise 
an independent variable by an exponent to fit a curve. For example, if 
you square an independent variable, the model can follow a U-shaped curve.

While the independent variable is squared, the model is still linear in 
the parameters. Linear models can also contain log terms and inverse terms
 to follow different kinds of curves and yet continue to be linear in the
 parameters.

线性回归通常通过“最小化经验误差(如SSE)”的策略来估计参数。通过求解方程解得模型参数。

线性回归也有多种类别,比如:

  • 岭回归(*) 多变量线性回归中,变量间可能存在高度相关关系(多重共线性,一个解释变量的变化引起另一个解释变量的变化)导致回归估计不准确。岭回归尝试解决如上问题。
  • Lasso回归
  • ……
非线性回归

不符合线性回归规则的回归即为非线性回归,即待估参数是“非线性”的回归即为非线性回归。

非线性回归的求解通常也通过最小化经验误差的思想来估计参数,但往往使用迭代算法来求解优化问题。因此求解非线性回归问题时,会涉及到优化算法选择,初始值选择,收敛性(是否不收敛或收敛到局部最小值)等问题。

何时选择线性回归?何时选择非线性回归?

对于任何一份数据,你都可以用线性回归或者非线性回归进行拟合,但是应该如何选择呢?从实践的角度来说,你可以先使用线性回归看看能否很好地拟合观测数据,如果无法使用线性回归无法获得足够的拟合程度,这时候就可以考虑使用非线性回归。但这又需要我们思考,什么是好的回归模型,我们拟合数据的目的是什么?这个问题在下一节进行讨论。

参考文献

0x01 如何获得“好”的回归模型?

什么是好的回归模型?

从我们建立回归模型的动机出发,我们一般希望建立的模型能够帮助我们预测未来的数据,如此则需要模型从历史数据中捕捉到数据的变化规律,这至少要求模型能较好地拟合历史数据,最好要在历史数据存在噪声的情况下仍然对未来数据有较高的预测参考性。因此评价回归模型好坏的基本指导思想就确定了:

  1. 对历史数据的拟合优度(模型预测值与实际观测值的差异尽量小);
  2. 对噪声/异常值的敏感程度小。(*)

我们先从拟合优度的视角来看看如何具体评估模型优劣。

如何拟合出一个好的回归模型?

一个直观的想法是考虑基于回归模型所得到的响应变量(因变量)的拟合值与实际值的误差的总和,使得总误差最小的模型应该对数据具有较好的拟合。我们在中学学线性回归时所接触的“最小二乘法”(普通)(最小化所有样本预测值与实际值之差的平方和)就是基于这么一种思想的一种具体实践。实际上“最小一乘”(最小化所有样本预测值与实际值之差的绝对值的总和)也是有被考虑过的,甚至"最小三乘",但从求解难度来看,求解“最小一乘”要比“最小二乘”更难(最小一乘在数值上难以求解),所以我们才转而考虑“最小二乘”。最早选择最小二乘的原因只是因为其相对容易优化且解唯一,后来,数学家高斯提出“高斯-马尔可夫定理”,更严谨地证明了“最小二乘”相比其他“乘”的所优势,明确解释了最小二乘估计是最佳无偏线性估计。

简单理解,使用“最小二乘法”来拟合线性回归模型的直觉在于:每一个样本的误差平方都能度量对于该样本实际值与模型拟合值的差距,“平方”保证了度量出的差距是非负、有意义的,因此误差平方和可以作为评估模型优劣的一个依据。在求解上,我们可以使用微积分或者线性代数的工具求解“使得预测值与实际值误差平方和最小”的回归系数,并且确保只会找到唯一的“最佳拟合线”。

当然,也要注意:最小二乘并不一定是最优的选择,因为“二乘”实际上对误差具有一个放大效应,所以“普通最小二乘法”对于异常值比较敏感,可能数据中一到2个与均值偏差较大异常值就会对最小二乘分析的结果造成很大影响;在外推的时候,效果可能也不理想;了解更多最小二乘的信息(直觉、潜在假设、求解方法、局限性),可阅读参考资料

如何评价已有回归模型的优劣

要获得“好”的回归模型,我们除了在构建回归模型的过程中考虑“如何提高模型质量”,还要考虑如何评价现有模型的优劣。

回归标准误差和R2

回归标准误差和R2是两个常见的指标。

回归标准误差表示观测值与回归模型拟合值的平均距离,以响应变量的单位告诉你模型有多大的“错误”;回归标准差越小表示模型越好,拟合值与实际观测值越接近。

R2表示响应变量的偏差能被,衡量你的模型对响应变量的拟合值与实际值的关系强度,是一个表示百分比的量(0-1范围内)。

R2不能用于评价非线性模型的优劣?会产生什么问题?

首先,对于非线性模型,由于SST=SSR+SSE这个关系不一定成立,所以不能保证R2的取值范围在0-100%, 一些统计学家认为,由于有可能出现负数的百分比取值,R2不太能解释成其在评价线性模型时所表示的含义(模型对响应变量所能解释的偏差占响应变量的总偏差的百分比)。

其次,R2有时候难以提供有效的信息。高的R2不一定意味着模型很好,低的R2不一定意味着模型很差。 盲目追求高的R2可能会导致我们选择出一个具有误导性的模型,比如过拟合的模型。实际上对于任何一份数据,只要我们的非线性模型足够复杂,不断添加变量总能对数据进行很好的拟合,从而导致较高的R2值,但添加的变量可能与事实无关或者说不可解释。因此也产生了一些Adjusted R2的指标通过惩罚多余的非显著解释变量来防止过拟合,可参考资料

但如果建立回归模型的目的是为了预测响应变量,R2就相当于指示着误差(对同一份数据而言,SST是常数,SSE越小R2就越大),但其物理意义并不能直接表示对响应变量预测的精度。希望获得更直接的对误差的表示,可以考虑回归标准差这样的指标:直接在响应变量的量纲上告诉你模型预测的精确性,这样也便于你按照根据精度要求去获取模型。

常见指标意义及区别(MAE、MAPE、MSE、RMSE、R2、EVAR)

(1)MAE

平均绝对误差。 MAE对所有误差项一视同仁。对异常值不那么敏感。

(2)MAPE

平均绝对百分比误差,[0,+oo)。

真实值有数据为0时,MAPE无意义。

(3)MSE

均方误差 与MAE相比,MSE对较大的预测误差有更大的惩罚项。这会导致对异常值更敏感.

(4)RMSE

均方根误差。 与MSE相比,RMSE多了一个开根号操作,使得其与响应变量处于同一个量纲,物理意义上更容易解释。

(5)R2

与MSE、RMSE、MAE相比,R2是相对性的评价指标,不能从绝对水平告诉你预测的精度。

(6)EVAR

(暂略)

(7)Huber Loss

思考
  • 我们在评价模型时,应该对所有误差项一视同仁吗?
  • 什么情况下我们无法容忍“明显较大”的误差,从而更偏向用MSE这种评价指标?
  • 什么情况下我们更需要“百分比”的误差表示?(如MAPE)
  • 实际计算误差时,我们需要进行“异常值”的检测并对其特殊处理吗?

参考资料

关于最小二乘法

关于回归标准误差

关于R2

CoolCats
CoolCats
理学学士

我的研究兴趣是时空数据分析、知识图谱、自然语言处理与服务端开发

comments powered by Disqus