[转]如何正确的选择回归模型?

转自CSDN_杨志友  http://blog.csdn.net/yangzhiyouvl/article/details/53955073
原文标题:7 Types of Regression Techniques you should know! 
链接:https://www.analyticsvidhya.com/blog/2015/08/comprehensive-guide-regression/

Introduction

线性回归(Linear regressions)和对率回归(Logistic regressions)是人们学习算法的第一个预测模型。因此它们很常见,还有许多分析人员认为它们是仅有的回归模型,部分分析师认为它们是所有回归模型中最重要的。 
事实上有无数的回归模型都能被使用,每种形式的回归模型都有它独特且重要的应用场景。在这篇文章里我以简单的方式解释最常用的7种回归模型,通过这篇文章,我希望人们对回归模型有一种广泛性的了解,取而代之的是希望能在每个场景合适的使用linear / logistic regression。

Table of Contents

  1. 什么是回归分析?
  2. 为什么使用回归分析?
  3. 有什么类型的回归? 
    • Linear Regression
    • Logistic Regression
    • Polynomial Regression
    • Stepwise Regression
    • Ridge Regression
    • Lasso Regression
    • ElasticNet Regression
  4. 如何正确的选择回归模型?

什么是回归分析?

回归分析是预测模型技术中的一种形式,它探讨的是因变量(target)和独立变量(predictor)之间的关系。这个技术常用于进行预测、时间序列模型和在两变量之间寻找因果效应的关系。譬如,使用回归能最好的研究道路交通事故和司机鲁莽驾驶的关系。

回归分析是建模和分析数据的一类重要的工具。这里,我们使用曲线/直线来拟合这些数据点,某些方法是数据点到曲线/直线的距离偏差最小,在接下来的部分我将说明更多的细节。

这里写图片描述

为什么使用回归分析?

如上所述,回归分析是评估两个或更多变量之间的关系。让我们使用一个简单的例子进行理解:

如我所说,你想基于当前的经济状况去评估公司的销售额的增长,公司最近的数据表明在当前的经济条件下出现2到5倍的增长,利用这个发现,我们能基于当前或过去的信息来预测公司未来的销售情况。

这有使用回归分析的几点好处: 
1.它表明了因变量和独立变量之间的重要关系; 
2.它表明的是多个独立变量对因变量影响的强度。

回归分析还使我们能比较变量在不同程度上影响,如价格变动对促销活动的影响。这样有利于市场研究员/数据分析师/数据科学家在建立模型的时候排除并评估出最好的变量。

我们有多少种回归技术?

有很多的回归技术可用于预测中,大多数的回归由3个指标所衡量(自变量的数目,因变量的类型以及回归线的形状),在后面我们对这3个指标进行更加详细的讨论。

这里写图片描述 
对于有创造性的人,你可以创造新的回归,就需要组合以前没有使用过的参数。在你开始之前,让我们来了解最常用的回归:

1. 线性回归(Linear Regression)

它是广泛为人所知的模型技术之一。线性回归常被选用在线性预测模型中,在这个模型中,因变量是连续的,自变量可以是连续或离散的,回归线的性质是线性的。

线性回归使用最佳拟合直线建立因变量(Y)和一个或多个独立变量(X)之间的关系(也成为回归线)

它是被方程式:Y = a + b*X + e 所表示,这里 a 为截距,b 为斜率和 e 为误差项。这个方程式能基于给定的预测变量来预测目标变量的值。

这里写图片描述

简单的线性回归与多元线性回归的区别在于,多元线性回归有多个(>1)独立变量,而简单线性回归只有1个独立变量。现在,我们如何获得最佳拟合线?

1). 如何获得最佳拟合线(a和b的值)?

这个目标可以容易的由最小二乘法完成,最小二乘法是拟合回归线最常用的方法,它通过最小化每个数据点到线的垂直偏差的平方和来计算观察数据的最佳拟合线。因为偏差是一个平方,当相加时,在正值和负值之间没有抵消。

 

minωXωy22

 

这里写图片描述 
我们可以使用R平方来评估模型性能。要了解有关这些指标的更多详细信息,您可以阅读:模型性能指标第1部分第2部分

2). 要点: 
* 独立变量和因变量之间必须存在线性关系; 
* 多元回归具有多重共线性,自相关,异方差性; 
* 线性回归对异常值非常敏感。它可以严重影响回归线和最终的预测值; 
* 多重共线性可以增加系数估计值(系数)的方差,并使该估计值对模型中的微小变化非常敏感。结果是系数估计值不稳定; 
* 在多个独立变量的情况下,我们可以采用前向选择,反向消除和逐步方法来选择最重要的自变量。

2. 对率回归(Logistic Regression)

逻辑回归用于发现事件的概率=成功和事件的事件=失败。当因变量是二进制(0/1,True / False,是/否)时,我们应该使用逻辑回归。这里,Y的值的范围从0到1,并且它可以由以下等式表示。

odds= p/(1-p) = probability of event occurrence / probability of not event occurrence 
ln(odds) = ln(p/(1-p)) 
logit(p) = ln(p/(1-p)) = b0+b1X1+b2X2+b3X3….+bkXk

上面,p是有特征存在的概率。你应该问的是“为什么我们在方程中使用log?”。

因为我们这里用二项分布(因变量),我们需要选择最适合这种分布的链接函数。并且,它是logit函数。在上面的等式中,选择参数用来最大化这些观察样本的似然值,而不是最小化平方误差的和(类似于普通回归)。

这里写图片描述

要点 
* 它被广泛的用于分类问题; 
* 逻辑回归不需要依赖变量和自变量之间的线性关系。它可以处理各种类型的关系,因为它对预测的胜率使用非线性对数(log)变换; 
* 为了避免过拟合和欠拟合,我们应该使用所有的有意义的变量。确保这种做法的一个好方法是使用逐步法来估计逻辑回归; 
* 它需要大量的样本,因为最大似然估计在小样本上比普通最小二乘方更弱; 
* 自变量之间不应该彼此相关,即没有多共性。然而,我们在分析和模型时包含分类变量的交互效应(相互之间有影响); 
* 如果因变量的值是有序的,那么它被称为有序逻辑回归; 
* 如果因变量是多类,则称为多分类Logistic回归。

3. 多元回归

如果自变量的幂大于1,则回归方程是多项式回归方程。下面的方程式表示多项式方程:

 

y=a+bx2

 

在这种回归技术中,最佳拟合线并不是直线。它是一条拟合数据点的曲线。

这里写图片描述 
要点 
* 虽然可能存在用较高次多项式去拟合较低次多项式的误差,这可能导致过拟合。绘制出数据点与拟合曲线之间的拟合图来确保曲线拟合问题的性质。这里有一个如何绘制的例子可以帮助理解:

这里写图片描述

  • 特别注意曲线向两端,看看这些形状和趋势是否有意义。更高的多项式可以最终在外推上产生更多的结果。

4. 逐步回归

当我们处理多个自变量时常使用这种形式的回归。在这种技术中,独立变量的选择是借助于自动过程完成的,其不用涉及到人类干预。

它的专长是通过观察统计值,如R平方,t统计和AIC度量来辨别重要变量。逐步回归基本上适合回归模型,通过基于指定标准一次一个地添加/删除共变量。下面列出了一些最常用的逐步回归方法:

  • 标准逐步回归做两件事。它根据需要为每个步骤添加和删除预测变量;
  • 向前选择从模型中的最重要的预测变量开始,并为每个步骤添加变量;
  • 向后消除从模型中的所有预测变量开始,并删除每个步骤中的最低有效变量。

该建模技术的目的是利用最小数量的预测变量来最大化预测能力。它是处理更高维度数据集的方法之一。

5. Ridge Regression

Ridge回归是当数据受多重共线性(自相关变量高度相关)时常使用的技术。在多重共线性中,即使最小二乘估计(OLS)是无偏的,它们的方差很大,这偏离了观察值远离真实值。通过对回归估计增加一定程度的偏差,Ridge回归减小了标准误差。

上面,我们看到了线性回归方程,它可以表示为:

 

y=a+bx

 

这个方程也有一个误差项。完整方程式变为:

y=a+b*x+e (error term), [error term is the value needed to correct for a prediction error between the observed and predicted value] 
=> y=a+y= a+ b1x1+ b2x2+....+e, for multiple independent variables.

在线性方程中,预测误差可以分解为两个子分量。第一是由于偏差,第二是由于方差。由于这两个或两个分量中的任一个都可能发生预测误差。在这里,我们将讨论由于方差导致的错误。

Ridge回归通过收缩参数λ(lambda)来解决多重共线性问题。看看下面的方程。

 

=argminβRpyXβ22Loss+λβ22Penelty

 

在这个方程中,我们有两个组成部分。第一个是最小二乘项,另一个是β2(β平方)的总和乘以lambda,其中β是系数。这被添加到最小二乘项以便收缩具有非常低的方差参数。

要点 
* 该回归的假设与最小二乘回归相同,除非不假设数据集正态性; 
* 它收缩系数的值,但不会达到零,这表明没有特征选择特征; 
* 这是一个正则化方法,并使用l2正则化。

6. Lasso Regression

与Ridge回归类似,Lasso(最小绝对收缩和选择算子)也惩罚回归系数的绝对大小。此外,它能够减少变化性和提高线性回归模型的准确性。看看下面的方程:

 

β=argminβRpyXβ22Loss+λβ1Penelty

 

Lasso回归与Ridge回归的区别在于,它使用的是绝对值惩罚函数而不是平方惩罚函数。这使惩罚(或等价地约束估计的绝对值的和)值导致一些参数估计精确地为零。使用更大的惩罚会让估计进一步的收缩到绝对零。这导致在给定的n个变量中作变量选择。

要点 
* 该回归的假设与最小二乘回归相同,除非不假设正态性; 
* 它将系数收缩为零(正好为零),这有助于特征选择; 
* 这是一个正则化方法,使用l1正则化; 
* 如果一批预测变量是高度相关,则Lasso只挑选其中一个,并将其他缩减为零。

7. ElasticNet Regression

ElasticNet是Lasso和Ridge回归技术的混合模型。它是用L1和L2作为正则化训练的。当有多个相关的特征时,Elastic-net是有用的,Lasso可能随机选择其中一个,Elastic-net很可能选择两个。

 

β^=argminβ(yXβ2+λ2β2+λ1β1)

 

在Lasso和Ridge之间折衷的实际优点是它允许Elastic-Net继承一些Ridge的稳定性。

要点 
* 它鼓励在高度相关变量之间的群效应; 
* 对所选变量的数量没有限制; 
* 它可能遭受双倍收缩率。

如何正确的选择回归模型?

当你只知道一两种技术时生活通常很简。我知道一个培训机构告诉他们的学生:如果结果是连续的就应用线性回归。 如果是二元态的就使用逻辑回归!然而,我们可用的选项数量越多,选择正确的选项就越困难。类似的情况发生在回归模型。

在多种类型的回归模型中,重要的是基于独立和因变量的类型、数据的维度和数据的一些其他基本特征来选择最适合的技术。 以下是您应该练习选择正确回归模型的关键因素:

  1. 数据探索是建立预测模型的必要组成部分。它应该是你选择正确的模型之前的第一步,如识别变量的关系和影响;
  2. 为了比较不同模型的拟合程度,我们可以分析不同的指标,如参数的重要性统计、R平方、调整r平方、AIC、BIC和误差项。另一个是Mallow的Cp标准。这本质上是通过将模型与所有可能的子模型(或仔细选择它们)进行比较来检查模型中的可能偏差;
  3. 交叉验证是评估用于预测的模型的最佳方式。这里您将数据集分为两组(训练集和验证集)。观测值和预测值之间的简单均方差给出一个预测精度的指标;
  4. 如果您的数据集有多个混杂变量,您不应选择用自动模型选择的方法,因为您不想同时将它们放在一个模型中;
  5. 这也将取决于你的目标。与高度统计学显着的模型相比,一个相对不强大的模型更容易实现;
  6. 回归正则化方法(Lasso,Ridge和ElasticNet)在具有高维度和多重共线性的数据集变量上效果更好。

结束语

现在,我希望你对回归有一个总体概述。确定使用哪种技术的最佳方法之一是检查变量族,即离散或连续。

在本文中,我讨论了7种类型的回归和每种技术相关的一些关键点。作为这个行业的新人,我建议你学习这些技术,然后在你的模型中实现它们。

posted @ 2017-09-15 11:05  wisematch  阅读(13166)  评论(0编辑  收藏  举报