全面解析多元线性回归模型及其在Stata中的应用
多元线性回归模型及stata实现:总论
一、模型
Y=β0+β1X1+β2X2+⋯+βnXn+e
- Y: Dependent variable(因变量、应变量、反应变量、响应变量、被解释变量等)
-
X1、X2⋯Xn:Independent variable(自变量、解释变量、控制变量)
如果重点探究一个因素与另一个因素的作用时,纳入模型的其他X通常称为叫控制变量 - β1、β2⋯βn:偏回归系数、回归系数(每个βn表示控制其他X时,Xn每增加一个单位,对Y的边际效应)
- e: 残差项、残差、扰动项等(代表不包含在模型中的解释变量和其他一些随机因素对被解释变量的总影响项)
- β0,截距,常数项。表示所有自变量为0时的Y值。(有时候需要注意,如果自变量不可能等于0,这个值的意义需要考虑;如果需要真实的截距值,可以用Xi-Xmin,Xi-Xmean替代每个Xi。)
残差的性质非常重要
二、条件/假设
2.1 严格最小二乘估计(OLS)的条件和假设
- 假设1: 因变量为连续变量(二值、有序、计数等永其他模型)
- 假设2:Y与X1、X2⋯Xn之间存在线性关系(当然:X可以为分类)
- 假设3:独立性:因变量Y取值相互独立,即残差间相互独立,不存在自相关。主要和抽样、时间序列数据等有关 | 采用自回归模型(Autoregressive model,简称AR模型,用x预测 x(自己);所以叫做自回归)等解决。
- 假设4:残差方差齐性:标准化残差的大小不随变量取值的改变而改变(残差图)
-
假设5:正态性:就自变量的任何一个线性组合,应变量y均服从正态分布,即要求残差ei服从正态分布
个 - 假设6:自变量间不存在共线性
- 假设7:不受异常值影响
- 条件8:样本量至少为自变量个数的5~10倍,20倍以上为宜
注:学者认为,至少大于30个,最好100个以上就可以算大样本了
而且,以上部分假设和条件在一定条件下是可以放松的。
2.2 放松的OLS假设:大样本OLS
假设1、2、6、7、8是必须的(线性性、不存在共线性、不受强离群值影响、样本量充足是必须得);
假设3、4、5会做在一定程度的放松;即残差的球形假定(独立、正态、等方差)相对放松。
三、条件/假设的stata验证
stata回归命令
regression Y X1 X2 X3……Xn
reg Y X1 i.X2 X3……Xn / 若存在分类变量,在变量名称前加上i. 即可,如i.X2;stata 里面的命令可以缩写,只要缩写不产生歧义即可;
条件/假设
1. 假设1的判断:直接看,possion回归等需要验证(已经不属于简单的多元线性回归了);
2.线性性的判断: 分别做Y与每个X之间的散点图、拟合图。不满足时可以转换数据,加平方项、三次方项、分段回归等;
scatter Y X1
scatter Y X2
……
lowess Y X1
lowess Y X2
3. 自相关的判断:如果抽样没问题,不是时间序列数据,一般不会有自相关。若针对时间序列数据,可以如下检验;
如果原数据不是时间序列数据,则需要自行定义一个:
gen n=_n / 生成一个时间序列的标志变量n
tsset n / 将这个数据集定义为依据时间序列标志变量n定义的时间序列数据
检验方法
(1) 绘制残差图
predict e,r / 生成残差值
scatter eLe / 生成残差散点图
(2) DW检验(杜宾-瓦特森检验)
estat dwatson / 杜宾-瓦特森检验
若DW值在1.8-2.2之间时接受原假设,说明模型不存在一阶自相关,若DW值接近0或4,则拒绝原假设,认为存在一阶自相关。若落在模糊区域,则无法判断。
DW接近2,残差间相关性差
DW接近0,残差间正相关
DW接近4,残差负相关
(3)BG检验
estat bgodfrey / BG检验
若输出的P-Value显著小于0.05,则拒绝原假设,认为存在序列相关。
4. 残差方差齐性的判断:残差的方差齐下,用异方差检验、绘制残差图等;
white检验
imtest,white / white检验
如果输出的P-Value显著小于0.05,则拒绝原假设,认为存在异方差性。
残差图
reg Y X1 X2…… / 先做完回归
rvfplot
5. 残差正态性:绘制标准化残差的直方图、茎叶图、正态概率分布图(PP图)等;
残差的偏度、峰度等
predict residual_1 , residual / 得到残差,取名residual_1
histogram residual_1 / 方法1. 绘制直方图看看
sum residual_1 ,detail / 方法2. 可以选择通过偏度、峰度来看
qnorm residual_1 / 方法3 ,QQ图
sktest residual_1 / 正态性检验 也可以用 swilk residual_1, sfrancia residual_1等
6. 多重共线性:VIF检验;
estat vif / 方差扩大因子法检验
VIF需要用在线性回归之后,若为logistic回归,先替换为线性回归,做完再做vif检验。
一般认为:
VIF≥3,有多重共线性;
VIF≥6,比较严重多重共线性
VIF≥10,非常严重的多重共线性;
7. 异常值检验:变量描述、箱式图;
graph box Y / 方法1 , 绘制Y的箱式图
sum Y,detail / 方法2 , 对Y进行详细描述
当然,绘制散点图的时候就能发现异常值。
四、不满足条件 / 假设的解决办法
1. 不满足线性关系:用非线性回归模型,或变量转换、加多次项(平方项、三次方项)、分段回归等
2. 不满足残差独立性:自回归(Autoregressive model,简称ARM)、广义估计方程(Generalized Estimated Equation, GEE,多层线性模型(multi-level analysis model)
3. 不满足残差方差齐性、正态性:使用稳健标准差、 加权最小二乘法(Weighted Least Squares,WLS)、分层回归(hierarchical multiple regression)等
4. 不满足多重共线性:剔除部分自变量、逐步回归法选择变量、岭回归(Ridge Regression)等
5. 样本量不足:增加样本含量
当然,以上假设和条件在一定条件下是可以放松的。
推荐阅读:
正态性/方差齐性检验stata实现
stata学习笔记
博客持续更新
主要参考
陈强 计量经济学
医咖会
知乎
其他互联网资料
推荐阅读
-
全面解析多元线性回归模型及其在Stata中的应用
-
【摩尔线程+Colossal-AI强强联手】MusaBert登上CLUE榜单TOP10:技术细节揭秘 - 技术实力:摩尔线程凭借"软硬兼备"的技术底蕴,让MusaBert得以从底层优化到顶层。其内置多功能GPU配备AI加速和并行计算模块,提供了全面的AI与科学计算支持,为AI推理和低资源条件下的大模型训练等场景带来了高效、经济且环保的算力。 - 算法层面亮点:依托Colossal-AI AI大模型开发系统,MusaBert在训练过程中展现出了卓越的并行性能与易用性,特别在预处理阶段对DataLoader进行了优化,适应低资源环境高效处理海量数据。同时,通过精细的建模优化、领域内数据增强以及Adan优化器等手段,挖掘和展示了预训练语言模型出色的语义理解潜力。基于MusaBert,摩尔线程自主研发的MusaSim通过对比学习方法微调,结合百万对标注数据,MusaSim在多个任务如语义相似度、意图识别和情绪分析中均表现出色。 - 数据资源丰富:MusaBert除了自家高质量语义相似数据外,还融合了悟道开源200GB数据、CLUE社区80GB数据,以及浪潮公司提供的1TB高质量数据,保证模型即便在较小规模下仍具备良好性能。 当前,MusaBert已成功应用于摩尔线程的智能客服与数字人项目,并广泛服务于语义相似度、情绪识别、阅读理解与声韵识别等领域。为了降低大模型开发和应用难度,MusaBert及其相关高质量模型代码已在Colossal-AI仓库开源,可快速训练优质中文BERT模型。同时,通过摩尔线程与潞晨科技的深度合作,仅需一张多功能GPU单卡便能高效训练MusaBert或更大规模的GPT2模型,显著降低预训练成本,进一步推动双方在低资源大模型训练领域的共享目标。 MusaBert荣登CLUE榜单TOP10,象征着摩尔线程与潞晨科技联合研发团队在中文预训练研究领域的领先地位。展望未来,双方将携手探索更大规模的自然语言模型研究,充分运用上游数据资源,产出更为强大的模型并开源。持续强化在摩尔线程多功能GPU上的大模型训练能力,特别是在消费级显卡等低资源环境下,致力于降低使用大模型训练的门槛与成本,推动人工智能更加普惠。而潞晨科技作为重要合作伙伴,将继续发挥关键作用。
-
【2022新手指南】Java编程进阶之路 - 六、技术架构篇 ### MySQL索引底层解析与优化实战 - 你会讲解MySQL索引的数据结构吗?性能调优技巧知多少? - Redis深度揭秘:你知道多少?从基础到哨兵、主从复制全梳理 - Redis持久化及哨兵模式详解,还有集群搭建和Leader选举黑箱打开 - Zookeeper是个啥?特性和应用场景大公开 - ZooKeeper集群搭建攻略及 Leader选举、读写一致性、共享锁实现细节 - 探究ZooKeeper中的Leader选举机制及其在分布式环境中的作用 - Zab协议深入剖析:原理、功能与在Zookeeper中的核心地位 - RabbitMQ全方位解读:工作模式、消费限流、可靠投递与配置策略 - 设计者视角:RabbitMQ过期时间、死信队列与延时队列实践指南 - RocketMQ特性和应用场景揭示:理解其精髓与差异化优势 - Kafka详细介绍:特性及广泛应用于实时数据处理的场景解析 - ElasticSearch实力揭秘:特性概述与作为搜索引擎的广泛应用 - MongoDB认知升级:非关系型数据库的优势阐述,安装与使用实战教学 - BIO/NIO/AIO网络模型对比:掌握它们的区别与在网络编程中的实际应用 - Netty带你飞:理解其超快速度背后的秘密,包括线程模型分析 - 网络通信黑科技:Netty编解码原理与常用编解码器的应用,Protostuff实战演示 - 解密Netty粘包与拆包现象,怎样有效应对这一常见问题 - 自定义Netty心跳检测机制,轻松调整检测间隔时间的艺术 - Dubbo轻骑兵介绍:核心特性概览,服务降级实战与其实现益处 - Dubbo三大神器解读:本地存根与本地伪装的实战运用与优势呈现 ----------------------- 七、结语与回顾
-
包婷婷 (201550484)作业一 统计软件简介与数据操作-SPSS(Statistical Product and Service Solutions),"统计产品与服务解决方案"软件。最初软件全称为"(SolutionsStatistical Package for the Social Sciences),但是随着SPSS产品服务领域的扩大和服务深度的增加,SPSS公司已于2000年正式将英文全称更改为"统计产品与服务解决方案",标志着SPSS的战略方向正在做出重大调整。为IBM公司推出的一系列用于统计学分析运算、数据挖掘、预测分析和决策支持任务的软件产品及相关服务的总称SPSS,有Windows和Mac OS X等版本。 1984年SPSS总部首先推出了世界上第一个统计分析软件微机版本SPSS/PC+,开创了SPSS微机系列产品的开发方向,极大地扩充了它的应用范围,并使其能很快地应用于自然科学、技术科学、社会科学的各个领域。世界上许多有影响的报刊杂志纷纷就SPSS的自动统计绘图、数据的深入分析、使用方便、功能齐全等方面给予了高度的评价。 R统计软件介绍 R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输出,可实现分支、循环,用户可自定义功能。 与其说R是一种统计软件,还不如说R是一种数学计算的环境,因为R并不是仅仅提供若干统计程序、使用者只需指定数据库和若干参数便可进行一个统计分析。R的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法。 该语言的语法表面上类似 C,但在语义上是函数设计语言(functional programming language)的变种并且和Lisp 以及 APL有很强的兼容性。特别的是,它允许在"语言上计算"(computing on the language)。这使得它可以把表达式作为函数的输入参数,而这种做法对统计模拟和绘图非常有用。 R是一个免费的*软件,它有UNIX、LINUX、MacOS和WINDOWS版本,都是可以免费下载和使用的。在R主页那儿可以下载到R的安装程序、各种外挂程序和文档。在R的安装程序中只包含了8个基础模块,其他外在模块可以通过CRAN获得。 二、R语言 R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个*、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。 R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX,Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R还有以下特点: 1.R是*软件。这意味着它是完全免费,开放源代码的。可以在它的网站及其镜像中下载任何有关的安装程序、源代码、程序包及其源代码、文档资料。标准的安装文件身自身就带有许多模块和内嵌统计函数,安装好后可以直接实现许多常用的统计功能。[2] 2.R是一种可编程的语言。作为一个开放的统计编程环境,语法通俗易懂,很容易学会和掌握语言的语法。而且学会之后,我们可以编制自己的函数来扩展现有的语言。这也就是为什么它的更新速度比一般统计软件,如,SPSS,SAS等快得多。大多数最新的统计方法和技术都可以在R中直接得到。[2] 3. 所有R的函数和数据集是保存在程序包里面的。只有当一个包被载入时,它的内容才可以被访问。一些常用、基本的程序包已经被收入了标准安装文件中,随着新的统计分析方法的出现,标准安装文件中所包含的程序包也随着版本的更新而不断变化。在另外版安装文件中,已经包含的程序包有:base一R的基础模块、mle一极大似然估计模块、ts一时间序列分析模块、mva一多元统计分析模块、survival一生存分析模块等等.[2] 4.R具有很强的互动性。除了图形输出是在另外的窗口处,它的输入输出窗口都是在同一个窗口进行的,输入语法中如果出现错误会马上在窗口口中得到提示,对以前输入过的命令有记忆功能,可以随时再现、编辑修改以满足用户的需要。输出的图形可以直接保存为JPG,BMP,PNG等图片格式,还可以直接保存为PDF文件。另外,和其他编程语言和数据库之间有很好的接口。[2] 5.如果加入R的帮助邮件列表一,每天都可能会收到几十份关于R的邮件资讯。可以和全球一流的统计计算方面的专家讨论各种问题,可以说是全世界最大、最前沿的统计学家思维的聚集地.[2] R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。 R的语法是来自Scheme。R的使用与S-PLUS有很多类似之处,这两种语言有一定的兼容性。S-PLUS的使用手册,只要稍加修改就可作为R的使用手册。所以有人说:R,是S-PLUS的一个“克隆”。 但是请不要忘了:R是免费的(R is free)。R语言源代码托管在github,具体地址可以看参考资料。[3] 。 R语言的下载可以通过CRAN的镜像来查找。 R语言有域名为.cn的下载地址,有六个,其中两个由Datagurn,由 中国科学技术大学提供的。R语言Windows版,其中由两个下载地点是Datagurn和 USTC提供的。 三、stata Stata 是一套提供其使用者数据分析、数据管理以及绘制专业图表的完整及整合性统计软件。它提供许许多多功能,包含线性混合模型、均衡重复反复及多项式普罗比模式。用Stata绘制的统计图形相当精美。 新版本的STATA采用最具亲和力的窗口接口,使用者自行建立程序时,软件能提供具有直接命令式的语法。Stata提供完整的使用手册,包含统计样本建立、解释、模型与语法、文献等超过一万余页的出版品。 除此之外,Stata软件可以透过网络实时更新每天的最新功能,更可以得知世界各地的使用者对于STATA公司提出的问题与解决之道。使用者也可以透过Stata. Journal获得许许多多的相关讯息以及书籍介绍等。另外一个获取庞大资源的管道就是Statalist,它是一个独立的listserver,每月交替提供使用者超过1000个讯息以及50个程序。 四、PYTHON
-
回归分析:单一和多元线性回归在机器学习中的应用
-
掌握R语言实战技巧:岭回归及其在广义线性模型中的应用——学习笔记第九章(下)
-
理解多元线性回归在机器学习中的应用
-
【深入解析DAG模型及其在IOTA中的应用】-- 探索我的区块链之路