在之前的文章《机器学习---线性回归(Machine Learning Linear Regression)》中说到,使用最小二乘回归模型需要满足一些假设条件。但是这些假设条件却往往是人们容易忽略的地方。如果不考虑模型的适用情况,就只会得到错误的模型。下面来看一下,使用最小二乘回归模型需要满足哪些假设,以及如果不满足这些假设条件会产生怎样的后果。

最小二乘回归模型的5个基本假设:

  • 自变量(X)和因变量(y)线性相关
  • 自变量(X)之间相互独立
  • 误差项(ε)之间相互独立
  • 误差项(ε)呈正态分布,期望为0,方差为定值
  • 自变量(X)和误差项(ε)之间相互独立

第一个假设:自变量(X)和因变量(y)线性相关

线性相关(linearly dependent)是最基本的假设。如果自变量和因变量之间没有关系或者是非线性关系,那么就无法使用线性回归模型进行预测,或者无法预测出准确的结果。

第二个假设:自变量(X)之间相互独立

如果我们发现本应相互独立的自变量出现了一定程度(甚至高度)的相关性,那么我们就无法知道自变量和因变量之间的真正关系,这称之为共线性(collinearity)。当共线性出现的时候,变量之间的联动关系会导致我们估计的参数的标准差变大,置信区间变宽,由此来看,参数的估计值会变得不稳定,对参数的假设检验也会变得不准确。

(注:两个特征之间相互关联被称之为共线性,但是也有可能三个或更多的特征之间相互关联,即使这些特征两两之间并没有很高的关联,这被称之为多重共线性(multicollinearity)

第三个假设:误差项(ε)之间相互独立

随机误差项的各期望值之间存在着相关关系,称随机误差项之间存在自相关性(autocorrelation)。自相关性通常出现在时间序列里,后一项依赖于前一项;也可能出现在有偏差的样本里,比如样本搜集自同一个家庭的成员。当自相关性出现的时候,预测值的标准差往往比真实的小,进而会导致置信区间变窄,同时,较低的标准差会导致p值较小,这会让我们得到错误的假设检验结果。

第四个假设:误差项(ε)呈正态分布,期望为0,方差为定值

误差项服从均值为0的正态分布,方差为定值。如果违反了这一假设,意味着异常点增多,置信区间会变宽,这称之为异方差性(heteroscedasticity)。当异方差性出现的时候,如果仍采用最小二乘法估计参数,会导致参数的t检验值被高估,可能造成本来不显著的某些参数变为显著,使假设检验失去意义。

第五个假设:自变量(X)和误差项(ε)之间相互独立

模型中一个或多个自变量与随机误差项存在相关关系,这称之为内生性(endogeneity)。内生性通常由于遗漏变量而导致,因此是一个普遍存在的问题。内生性会导致模型参数估计不准确。

机器学习---最小二乘线性回归模型的5个基本假设(Machine Learning Least Squares Linear Regression Assumptions)的更多相关文章

  1. 机器学习---用python实现最小二乘线性回归算法并用随机梯度下降法求解 (Machine Learning Least Squares Linear Regression Application SGD)

    在<机器学习---线性回归(Machine Learning Linear Regression)>一文中,我们主要介绍了最小二乘线性回归算法以及简单地介绍了梯度下降法.现在,让我们来实践 ...

  2. 机器学习案例学习【每周一例】之 Titanic: Machine Learning from Disaster

     下面一文章就总结几点关键: 1.要学会观察,尤其是输入数据的特征提取时,看各输入数据和输出的关系,用绘图看! 2.训练后,看测试数据和训练数据误差,确定是否过拟合还是欠拟合: 3.欠拟合的话,说明模 ...

  3. 机器学习---用python实现朴素贝叶斯算法(Machine Learning Naive Bayes Algorithm Application)

    在<机器学习---朴素贝叶斯分类器(Machine Learning Naive Bayes Classifier)>一文中,我们介绍了朴素贝叶斯分类器的原理.现在,让我们来实践一下. 在 ...

  4. 机器学习---朴素贝叶斯与逻辑回归的区别(Machine Learning Naive Bayes Logistic Regression Difference)

    朴素贝叶斯与逻辑回归的区别: 朴素贝叶斯 逻辑回归 生成模型(Generative model) 判别模型(Discriminative model) 对特征x和目标y的联合分布P(x,y)建模,使用 ...

  5. 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)

    ##机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)---#####注:机器学习资料[篇目一](https://github.co ...

  6. (原创)(三)机器学习笔记之Scikit Learn的线性回归模型初探

    一.Scikit Learn中使用estimator三部曲 1. 构造estimator 2. 训练模型:fit 3. 利用模型进行预测:predict 二.模型评价 模型训练好后,度量模型拟合效果的 ...

  7. 多重线性回归 (multiple linear regression) | 变量选择 | 最佳模型 | 基本假设的诊断方法

    P133,这是第二次作业,考察多重线性回归.这个youtube频道真是精品,用R做统计.这里是R代码的总结. 连续变量和类别型变量总要分开讨论: 多重线性回归可以写成矩阵形式的一元一次回归:相当于把多 ...

  8. 机器学习---三种线性算法的比较(线性回归,感知机,逻辑回归)(Machine Learning Linear Regression Perceptron Logistic Regression Comparison)

    最小二乘线性回归,感知机,逻辑回归的比较:   最小二乘线性回归 Least Squares Linear Regression 感知机 Perceptron 二分类逻辑回归 Binary Logis ...

  9. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

随机推荐

  1. 盘点 Python 中的那些冷知识(一)

    小明在日常Code中遇到一些好玩,冷门的事情,通常都会记录下来. 现在已经积攒了一些了,最近打算整理一波,发出来给大家补补.一篇只分享五个,有时间了就整理.不想错过的,千万记得关注一下. 1. 省略号 ...

  2. Spring异常分析

    异常报错 2019-01-14 10:40:18.427 ERROR 11776 --- [ost-startStop-1] o.s.b.w.e.t.TomcatStarter : Error sta ...

  3. svn 卡死住,关闭后,用CleanUp报错解决

    一.问题描述: 经常用SVN的人都知道,有时候更新文件更新着更新一般,突然卡顿住,死在那边动都不动出现提示:svn cleanup failed–previous operation has not ...

  4. vs2017和vs2019专业版和企业版

    步骤:打开vs2017,依次点击--->帮助----->注册产品 专业版: Professional: KBJFW-NXHK6-W4WJM-CRMQB-G3CDH 企业版: Enterpr ...

  5. revit二次开发wpf里button按钮无法实现事务

    不能在revit提供的api外部使用事务,解决此方法, 1.把button里要实现的功能写到外部事件IExternalEventHandler中,注册外部事件,在button事件中.raise()使用 ...

  6. Linux高级运维 第二章 Linux基本操作和自己动手组装服务器

    2.1  Linux网络相关概念和修改IP地址的方法 2.1.1  网卡的命名规则       Centos 6的网卡命名方式:它会根据情况有所改变而非唯一且固定,在CENTOS6之前,网络接口使用连 ...

  7. Linux系列

    Linux入门及进阶学习. 目录 Linux的安装 GNOME图形界面的基本操作 命令行BASH的基本操作 Linux文件系统的基本结构 Linux文件基本操作管理 Linux系统目录架构 Linux ...

  8. 四、Snapman多人协作电子表格之——Exprtk脚本

    Snapman多人协作电子表格是一个即时工作系统. Snapman中嵌入了Exprtk脚本进行公式数据运算.Exprtk是一种高性能的脚本,经测试它的数据运算性能只比C#和java底20%. 一.Ex ...

  9. HandlerThread原理分析

    HandlerThread是一个内部拥有Handler和Looper的特殊Thread,可以方便地在子线程中处理消息. 简单使用 HandlerThread的使用比较简单. mHandlerThrea ...

  10. Python3 调试技巧 —— 死循环

    说下Python3不使用gdb的自身调试 前情提要:服务器莫名卡死,用网上的方法用gdb,下载了很多组件,包括那个libpython.py,都没什么用,看不到堆栈,也试了保存core文件等等 大事找官 ...