我眼中的多元回归模型
多元回归与一元回归不同
与一元回归相比,多元回归有两点不同:
1、新增了一个假定,多元回归的假定为:
Y的平均值能够准确的被由X组成的线性函数模型呈现出来;
解释变量和随机扰动项不存在线性关系;
解释变量之间不存在线性关系或强相关;
假设随机误差项e是一个均值为0的正态分布;
假设随机误差项e的方差恒定;
误差独立。
2、多元线性回归会面临变量选择的问题
模型自变量增加后,即便使用聚类等手段进行变量压缩,也不能将自变量的相关性完全剔除,这便会导致具有相关性的自变量溜进模型。由于自变量间关系不同,建模所选择的策略也会不同,模型的结果相对也会有较大差异,SAS中一般会使用selection参数进行变量控制,这个参数即为变量选择提供准则与方法。
多元线性回归的多重共线性
多元线性回归的自变量间不能具有多重共线性,但实际构建模型时经常会遇到自变量间高度重叠的情况,即自自变量间高度相关,一般SAS中使用VIF参数进行自变量相关性的检验。
如下为多元线性回归的SAS实现代码及VIF检验参数解读:
VIF参数解读:
这里模型整体非常显著,但模型的自变量却只有一个是显著的,大部分自变量都没有显著,这种情况明显是模型的自变量间出现了多重共线性。或者换一个角度,我会通过查看方差膨胀值来观察共线性,膨胀值为10以下表示暂无共线性、膨胀值为10以上表示出现了多重共线性、如果方差膨胀值达到100甚至以上则表示严重共线性。这里出现了两个10以上的方差膨胀值,即当地人均收入与年收入这两个变量出现了共线性。
遇到多重共线性怎么办
遇到多重共线性一般会有两种处理办法:
- 最简单粗暴的方法,是将出现多重共线性的两个变量都从模型中去掉。如果想去掉其中的一个变量,这就会涉及到去掉哪个变量的问题,一般我会回过头去看变量间的相关系数矩阵图,反复查看确认这两个共线性的变量间到底是哪个变量和其他变量间相关性更强些,然后再删掉与其他变量相关性更强些的这个变量。一般,统计软件只能提示这两个变量出现了多重共线性,但是至于两个变量都去掉、去掉其中一个变量、去掉其中哪一个变量 这个过程统计软件是没法提供帮助的。
- 不去掉这些变量的情况下将模型构建起来,便涉及到了设置变量选择准则,也就是向前法、向后法等等。
还有一种情况,例如某个变量引起了多重共线性,理应删除,但是业务上这个变量又不能缺失,实际中这种情况是可以使用一些算法进行处理的,例如岭回归、LASSO、最小角度回归LAR、主成分回归、偏最小二乘回归等等。
变量选择及项目流程
建模选择变量时首先考虑的不应该是技术,而是业务。实际上,如果项目周期是三个月,那么跑模型的时间应该是不超过10天的,剩下的大量精力应该放在理解业务上。
例如预测酱油的需求量,基本的思路应该是:
- 了解业务:
每一个业务领域都会有自己的体系,建模前需深入了解对应领域、体系下业务相关的全部资料,总结出哪些因素可能会影响酱油销量。
假如查阅了大量资料后了解到 影响酱油销量的因素有商品价格、代用品价格、当地收入水平、消费者偏好这四个方面,那么接下来需要判断这些因素是否都可以进行数据量化,将不能量化描述的变量排除掉。
一般偏好较难进行量化描述,偏好比较适合作为因变量进行入模(例如买与不买),但不适合作为自变量,所以不会选择将偏好选为自变量进行入模,排除掉;酱油本身价格较低,生活中使用其替代品的情况较少,所以替代品价格这个自变量也排除掉。 故最终可以确定模型的因变量为酱油需求量,模型的自变量为酱油价格与收入水平;
- 反复沟通:
模型服务于业务,与业务人员反复沟通必不可少,沟通过程中需要非常非常高的情商,很可能在这个阶段耗费掉2个月的时间;
- 变量落地:
找出入模变量的替换变量,需求量Y可用上一期的销量所代替;收入难于获取,一般很难拿到一个人的真实收入,所以一般用人均消费水平去代替收入变量;价格变量需要考虑可比性的问题,即空间可比性(同城市的价格不同)与时间可比性(十年前和今天价格是不同的)。
故最终确定的模型落地变量为:Y为酱油销量,X为平均销售价格、不变价格的消费水平。
- 数据清洗与建模:
一般,剩余20天左右的时间进行数据清洗、剩余10天左右的时间去跑模型。
回归模型中多少个变量合适
SAS构建回归模型时,依据不同功能可以将模型划分为不同类别,一般模型可以分为三类:
- 机理模型:
机理模型追求将变量关系描述的越清楚越好,这类模型涉及到的变量比较多。物理定律一般都是机理模型,比较典型的如F=ma;
- 经验模型:
实际中变量间关系较为复杂,用机理模型无法描述。例如用模型去描述人口增长,这种情况只能提取历史数据去建立经验模型,而无法建立机理模型。因自变量自身存在误差,变量越多误差越大,从而导致预测越不准,所以经验模型为了追求预测准确度 模型的变量较少;
- 模拟模型:
模拟模型是所有建模人的终极愿望,这个模型需要将事物发生、发展的全过程都用数学语言再现出来。例如银行的压力测试即为模拟模型。
我选择变量的方式
变量选择在回归里是一个很麻烦的事情,我会依据实际情况,如果变量较少,我会使用全子集回归,然后从结果中去选择自己认为比较好的变量组合;如果变量数目较多,我更喜欢去使用逐步回归。
如下为全子集回归模型的SAS实现代码:
我的公众号:Data Analyst
个人网站:https://www.datanalyst.net/
我眼中的多元回归模型相关推荐
- R语言编写自定义函数计算R方、使用自助法Bootstrapping估计多元回归模型的R方的置信区间、可视化获得的boot对象、估计单个统计量的置信区间、分别使用分位数法和BCa法
R语言编写自定义函数计算R方.使用自助法Bootstrapping估计多元回归模型的R方的置信区间.可视化获得的boot对象.估计单个统计量的置信区间.分别使用分位数法和BCa法(Bootstrapp ...
- 【胡侃系列】基于多元回归模型的双十一购物狂欢节天猫商城销售额预测
引言 今年的双十一购物节,还是一如既往的火爆,同时也是一年N度的微博大V骗粉节日.由于周末无所事事,在刷微博的过程中看到了一个大V的"有奖竞猜"活动:如果可以在11.11早上8点之 ...
- R语言使用lm函数构建多元回归模型(Multiple Linear Regression)、并根据模型系数写出回归方程、使用fitted函数计算出模型的拟合的y值(响应值)向量
R语言使用lm函数构建多元回归模型(Multiple Linear Regression).并根据模型系数写出回归方程.使用fitted函数计算出模型的拟合的y值(响应值)向量 目录
- 统计基础(九)多元回归模型
multiple linear regression 1. 残差的诊断 2.多元回归模型 Multiple Regression Model 2.1一阶多元回归模型 First–Order Multi ...
- 一元回归及多元回归模型
目录 一.前言 二.案例分析求解 2.1问题一 2.1.1分析 2.1.2Matlab求解一元线性回归模型 2.1.3结果 2.2问题二 2.2.1分析 2.2.2Matlab求解 2.2.3结果 ...
- 【定量分析、量化金融与统计学】多元回归模型与回归推理
之前说过了一元线性回归并给出了程序,今天来说说多元回归模型(Multiple Regression Model) 目录 一.多元回归模型的简介 二.求解多元回归模型:我们使用最小二乘法为例 三.评判方 ...
- R语言使用lm函数构建多元回归模型(Multiple Linear Regression)、并根据模型系数写出回归方程、使用resid函数或者residuals计算出模型的残差值
R语言使用lm函数构建多元回归模型(Multiple Linear Regression).并根据模型系数写出回归方程.使用resid函数或者residuals计算出模型的残差值 目录
- 【计量经济学导论】02. 多元回归模型
文章目录 多元回归模型 经典线性回归模型的假定 排除其他变量影响的方法 无偏性的证明 估计量的方差计算 估计量方差的成份 多元回归模型 经典线性回归模型的假定 在这一节中,我们将把回归模型由一元扩展到 ...
- 基于多元回归模型的房产估价
1.情景问题提出及分析 随着网络时代的来临,越来越多的用户选择在互联网上了解房源信息并选购房屋,如何利用这些房源信息尽可能帮助我们选房和对房产估价成了一个值得研究的问题.在二手房购买的选择过程中,房源 ...
最新文章
- Microbiome:微生物组研究中优化方法和规避误区
- frame,iframe,frameset用法和区别
- gitlab远程提交
- ACDream - Dynamic Inversions II
- linux系统声卡安装教程,Linux系统下如何安装声卡驱动?
- char varchar nchar nvarchar 四者的区别是什么(为何SQL Server自动给字符串末尾加空格)...
- springboot 请求路径有后缀_SpringBoot中配置Web静态资源路径的方法
- 微信双开方法windows Mac iOS
- 团体程序设计天梯赛 L1-059 敲笨钟
- js中统一社会信用代码校验规则
- 任正非《一江春水向东流》
- 未来全世界油气的发展之路
- 【PR】简单一招教你使用蒙版做文字动画
- 如何在SQL Server 2005中修复损坏的数据库
- 孙陶然:有能力的第一个标准是解决问题
- linux系统怎么改回win7系统,linux系统怎么安装win7系统?
- ClassNotFoundException: org.codehaus.plexus.logging.LoggerManager
- 正则提取文本操作集(python和js)
- 美通企业日报 | 亚马逊AWS三项举措推进量子计算技术;海航渝富重组西部航空...
- MSVCR110.dll文件找不到修复