回归分析初学者指南

作者:chen_h
微信号 & QQ:862251340
微信公众号:coderpai


介绍

机器学习之路从回归开始,这是我们每个人都知道的道路。

如果你想成为数据科学家,回归是你需要学习掌握的第一个算法。直到今天,许多咨询公司还是使用更大规模的回归技术来帮助他们的客户解决问题,毫无疑问,它是最容易学习和解释的算法之一,但是你要用好还是非常难的。回归模型的初始化非常容易,但是优化模型以获得更高的准确性是一项珍珍的挑战。加入你的模型给出了调整后的 R2=0.678R^{2} =0.678 ,你不会如何改进它。

在本文中,我将想你介绍回归分析的关键概念和R中的一些时间。在学完这篇文章之后,你将能够自己构建,改进和优化回归模型,回归有非常多的类型,但是在本文中,我将重点关注线性和多元回归。

什么是回归?它是如何工作的?

回归是一种参数优化技术,用于在给定一组自变量的情况下预测连续变量。它本质是参数化的,因为它基于数据集做出某些假设。如果数据集遵循这些假设,则回归会产生令人难以置信的结果。否则,它难以提供令人信服的准确性。别担心,我们马上就会学习几种优化技巧。

在数学上,回归使用线性函数来近似给定的因变量:

Y=β0+β1x+ϵY = \beta_{0} + \beta_{1} x + \epsilon ​

其中,Y 是因变量,X是自变量,β0\beta_{0}​ 是截距,β1\beta_{1} ​ 是斜率,ϵ\epsilon​ 是误差项。

β0\beta_{0}β1\beta_{1} 称为系数。这是简单线性回归的等式。它被称为线性,是因为它值设计一个独立变量 X 。在多元回归中,我们有许多自变量 X。如果你还记得,上面的等式只是我们在学校学习的线性方程 y=mx+c。让我们来理解这些参数的含义:

  • Y 是我们预测的变量
  • X 是我们用来做预测的变量
  • β0\beta_{0} 这是截距,当 x=0 时取得值
  • β1\beta_{1} 这是斜率。当 x 改变一个单位时 Y 的改变量
  • ϵ\epsilon​ 这是误差项。即实际值和预测值之间的差值

误差是预测过程中不可避免的一部分。无论我们选择的算法多么强大,总会存在一个 ϵ\epsilon ,它会提醒我们未来是不确定的。

然而,我们人类具有一个独特的能力,即虽然我们不知道我们不能完全消除误差项,但是我们仍然可以尝试将其降低到最低。为此,回归算法中经常使用普通最小二乘(OLS)技术来实现这一点。

所以下次有人说他使用线性回归或者多元回归时,其实他指的就是使用 OLS 技术。从概念上将,OLS 技术试图通过找到回归系数的最佳可能值 β0\beta_{0}β1\beta_{1} 来减少平方误差之和 [Actural(y)Predicted(y)]2\sum[Actural(y) - Predicted(y)]^{2}

OLS 是回归可以使用的唯一技术嘛?当然不是,还有很多其他技术,如广义最小二乘法,百分比最小二重,总最小二乘法,最小绝对偏差等等。那么为什么 OLS用的最广泛呢?

  1. 它使用平方误差,具有良好的数学属性,从而更容易区分和计算梯度下降;
  2. OLS 易于分析并且计算速度更快,即它可以快速应用于具有成百上千特征;
  3. OLS的可解释性比其他回归技术容易很多;

让我们通过一个例子详细了解 OLS:

我们给出了一个包含 100 个观测值和 2 个变量的数据集,即高度和重量。我们需要预测给定高度 x1 的重量 y。我们可以将 OLS 等式写成:

Y=β0+β1(Height)+ϵY = \beta_{0} + \beta_{1}(Height)+\epsilon​

使用 R,Python或任何计算语言时,你不需要知道如何计算这些系数和误差。计算这些系数的公式很简单。假设你获得了数据,并且你无法访问任何统计工具进行计算。你还能做出任何预测吗?当然能。

Y 的最直观预测应该是 Y 的平均值,但是即使在最坏的情况下,我们的预测模型应该至少给出比平均预测更高的准确度。计算系数的公式如下:

β1=(xixmean)(yiymean)/(xixmean)2\beta_{1} = \sum(x_i - x_{mean})(y_i - y_{mean}) / \sum (x_{i} - x_{mean})^2

β0=ymeanβ1(xmean)\beta_{0} = y_{mean} - \beta_{1}(x_{mean})

现在你知道 ymeany_{mean} 在确定回归系数和准确性方面起着至关重要的作用。在 OLS中,误差估计可分为三个部分:

  • RSS=[Actual(y)Predicted(y)]2RSS = \sum[Actual(y) - Predicted(y)]^{2}
  • ESS=[Predicted(y)Mean(ymean)]2ESS = \sum[Predicted(y) - Mean(y_{mean})]^{2}
  • TSS=[Actual(y)Mean(ymean)]2TSS = \sum[Actual(y) - Mean(y_{mean})]^{2}

回归分析初学者指南

这些误差项的最重要用途是用于计算测定系数 R2R^{2}

R2=1(ESS/TSS)R^{2} = 1 - (ESS/TSS)

R2R^{2} 指标告诉我们模型中自变量解释的方差量。在接下来的部分中,我们将学习并了解此系数的重要性以及更多指标来计算模型的准确性。

在统计学中对变量进行线行回归分析,采用最小二乘法进行参数估计时,R平方为回归平方和与总离差平方和的比值,表示总离差平方和中可以由回归平方和解释的比例,这一比例越大越好,模型越精确,回归效果越显著。R平方介于0~1之间,越接近1,回归拟合效果越好,一般认为超过0.8的模型拟合优度比较高。

回归中的假设是什么?

如上所述,回归是一种参数化技术,因此它做出了假设,让我们看看它做出的假设:

  • 在依赖(DV)和独立变量(IV)之间存在线性和相加关系。通过线性,这意味着 IV 中一个单位变化的 DV 变化是恒定的。
  • 独立变量之间必须没有相关性。独立变量中存在相关性导致多重共线性。如果变量是相关的,则模型很难确定 IV 对 DV 的真实影响。
  • 误差项必须具有恒定的方差。缺乏核定的方差导致异质性。
  • 误差项必须是不相关的,即 ϵt\epsilon_{t} 处的误差不得表示 ϵt+1\epsilon_{t+1} 处的误差。误差术语中存在相关性称为自相关。它极大的影响回归系数和标准误差值,因为它们基于不相关误差项的假设。
  • 因变量和误差项必须具有正态分布。

这些假设的存在使得回归具有相当大的限制性。我的意思是回归模型的表现取决于这些假设的实现。

我如何知道我的数据中违反了这些假设?

一旦这些假设被违反,回归就会产生有偏见的,不稳定的预测。我相信你很像问我,”我怎么知道这些假设被侵犯了?“

当然你可以检查性能指标以估计违规情况。但真正的宝藏存在于诊断图中,让我们看看重要的一些:

1. 残差与拟合值图

理想情况下,此图不应显示任何模式。但是如果你看到任何形状(曲线,U形),它表明数据集中的非线性。此外,如果你看到漏斗形状模式,则表明你的数据存在异方差性,即错误项具有非恒定方差。

回归分析初学者指南

2. 正态 Q-Q 图

顾名思义,此图用于确订错误的正态分布。它使用残差的标准值。理想情况下,该图应显示一条直线。如果你发现弯曲的,扭曲的线条,则你的残差具有非正态分布。

回归分析初学者指南

3. 比例位置图

该图也可用于确订异方差性。理想情况下,此图不应显示任何模式。模式的存在决定了异方差性。不要忘记用残差与拟合值中的漏斗形状来证实该图的发现。

回归分析初学者指南

如果你不能画出图,你还可以执行一些快速测试方法来检查假设违规:

  • Durbin Watson Statistic(DW)- 该测试用于检查自相关。它的值介于 0 和 4 之间。DW=2 值表示没有自相关。然而,0<DW<2之间的值意味着正自相关,而 2<DW<4意味着负自相关。
  • 方差膨胀因子(VIF)- 该度量用于检查多重共线性。VIF <= 4 意味着没有多重共线性,但 VIF >=10表明高多重共线性。或者,你还可以查看容差(1/VIF)值以确定 IV 中的相关性。此外,你还可以创建相关矩阵以确定共线变量。
  • Breusch-Pagan / Cook Weisberg 测试 - 该测试用于确定异方差性的存在。如果你发现 p<0.05,则拒绝原假设并推断存在异方差性。

如何提高回归模型 的准确性?

当你的数据违反了回归假设时,你几乎无能为力。一个明显的解决方案是使用基于树的算法,它可以很好的捕获非线性。但如果你坚持使用回归,以下是你可以实现的一些提示:

  • 如果你的数据受到非线性影响,请使用 sqrt,log,square 等转换 IV。
  • 如果你的数据存在异方差性,请使用 sqrt,log,square 等转换 DV。此外,你可以使用加权最小二乘法来解决此问题。
  • 如果你的数据存在多重共线性,请使用相关矩阵检查相关变量。假设变量A和B高度相关。现在,使用此方法,而不是删除其中一个;找出A和B与其余变量的平均相关性。无论哪个变量与其他变量相比具有更高的平均值,请将其删除。或者,你可以使用惩罚回归犯法。比如L1正则,L2正则等等。
  • 你可以根据 p 值进行变量选择。如果变量显示 p 值>0.05,我们可以从模型中删除该变量,因为在 p > 0.05 时,我们总是不能拒绝原假设。

你如何判断回归模型的拟合效果?

确定模型拟合的能力是一个棘手的过程。用于确定模型拟合的度量可以基于数据类型具有不同的值。因此,在解释回归分析时,我们需要非常小心。以下是你可以用来评估回归模型的一些指标:

  • R平方(确定系数)- 如上所述,该指标解释了由模型中的协变量解释的方差百分比。它的范围在 0 到 1 之间。通常,需要更高的值,但它取决于数据质量和域。例如,如果数据有噪音,你会很乐意接受低 R2R^2 值的模型。但是考虑Adjusted R2R^2 而不是R2R^2 来确定模型的拟合程度。
  • Adjusted R平方 - R2R^2 的问题在于,随着变量数量的增加它不断增加,无论新变量实际上是否向模型添加新信息这一事实。为了克服这一点,我们使用 Adjusted R平方,它不会增加(保持相同或者减少),除非新添加的变量确实真正有用。
  • F统计 - 它评估模型的整体重要性。它是由不明原因方差的模型解释的方差比率。当然,F统计数据越高,模型越好。
  • RMSE/MSE/MAE - 错误度量时我们必须检查的关键评估数。让我们一个一个来了解这几个参数:
    • MSE - 这是均方误差。它倾向于放大异常值对模型准确性的影响。例如,假设实际 y 为 10 且预测 y 为30,则 MSE=(3010)2=400MSE=(30-10)^2 = 400
    • MAE - 这是绝对误差。它可以抵抗异常值的影响。使用前面的例子我们可以得到 MAE = 30-10=20
    • RMSE - 这是均方根误差。它被解释为平均有多远,残差来自零。它通过平方根消除 MSE 的平方效应,并将原始单位的结果作为数据提供。在这里,得到的 RMSE=(3010)2=20RMSE = \sqrt{(30-10)^2} = 20 。当你看到相同的 MAE 和 RMSE 值时,不要感到困惑,他们的含义是完全不一样的。