回归分析:研究X与Y的相关关系(解释/预测)
一、概论:
相关性: **不等于因果性**
回归分析的使命 :
- 识别变量 X 是否与 Y 真正相关-变量选择-逐步回归法
- 相关性的方向-正相关/负相关
- (可能先标准化)- 赋予 X 权重 (回归系数)
- 回归系数的显著性/回归系数的区间
- 横截面数据:在某一时点收集的不同对象的数据(2021 年各省的 GDP)
- 时间序列数据:对同一对象在不同时间连续观察所取得的数据(近 100 年欧亚大陆人口)
- 面板数据:横截面数据与时间序列数据综合(近十年各省的结婚率)
数据收集:
-
微观数据:
人大经济论坛:https://bbs.pinggu.org
-
知网/谷歌学术/知乎
-
国家统计局:最全面,月度季度年度,各地区各部门各行业
-
awesome-public-datasets(github 的一个项目)
包含了经济、地理、能源、教育等领域的数据
-
其他:
● 中国科学数据中心
● 中国人口和就业统计数据库
● 中经网 中国经济相关的各种数据
● 中国地质调查局地质数据中心
提供了大量地质调查相关的数据
● 中国社会科学院数据库
提供了社会科学领域的大量数据
● 中国生态环境数据库
● 中国气象数据网
提供了全国各地的气象数据
● 中国教育在线
包括考试数据、学校排名等。
● 中国疾病预防控制中心
提供了疾病控制和预防相关的数据
● 中国国家地理信息公共服务平台
提供了大量的地理信息数据
● 新浪财经
发布了大量的财经数据,包括股市数据、经济数据等。
-
爬虫
Python 软件爬取-8 月 7 号开始学习
傻瓜式软件爬取(八爪鱼)
二、线性回归
线性假定不要求初始 X 与 Y 呈现严格的线性关系,而是可以通过对 X 与 Y 进行变量替换转化为线性模型
数据处理软件:
1.python(读写 Excel)-基本掌握
2.Excel(基础)-有一点盲区
3.Stata(统计分析软件)(命令行方式) -正在学习
外生性与内生性:
μ为无法观测且满足一定条件的扰动项
我们可以对扰动项进行一些假定(比如正态分布)
外生性: 扰动项 μ 和所有自变量 X 均不相关,则该回归模型具有外生性
内生性:反之会导致内生性,导致回归系数不准确,不满足无偏和一致性
解法:
核心解释变量:最重要的,最希望研究的变量
控制变量:所有与核心解释变量相关的变量,以保持非内生性
回归系数的解释:
Xi 的系数的意义在于:Xi 每增加一个单位,对 Yi 平均的变化
何时取对数: (经验法则)
(1)与市场价值相关的,例如,**价格、销售额、工资**等都可以取对数;
(2)以年度量的变量,如受教育年限、工作经历等通常不取对数;
(3)比例变量,如失业率、参与率等,两者均可;
(4)变量取值必须是非负数,如果包含 0,则可以对 y 取对数 ln(1+y);
取对数的好处:
(1)减弱数据的异方差性
(2)如果变量本身不符合正态分布,取了对数后可能渐近服从正态分布
(3)模型形式的需要,让模型具有经济学意义
回归系数的解释:
1、一元线性回归:𝑦 = 𝑎 + 𝑏𝑥 + 𝜇,x 每增加 1 个单位,y 平均变化 b 个单位
2、双对数模型:𝑙𝑛𝑦 = 𝑎 + 𝑏𝑙𝑛𝑥 + 𝜇,x 每增加 1% ,y 平均变化 b%(2023C 题)
3、半对数模型:𝑦=𝑎 + 𝑏𝑙𝑛𝑥 + 𝜇,x 每增加 1%,y 平均变化 b/100 个单位
4、半对数模型:𝑙𝑛𝑦=𝑎 + 𝑏𝑥 + 𝜇,x 每增加 1 个单位,y 平均变化(100b)%
虚拟变量的解释:
单分类虚拟变量设置:
多分类虚拟变量设置:
含交叉项的自变量:
拟合优度 R**2**较低:
(1)回归分为解释型回归和预测型回归
预测型回归更看重 𝑅2
解释型回归关注模型整体显著性以及自变量的统计显著性/经济意义显著
(2)可以对模型进行调整,例如对数据取对数或者平方后再进行回归。
(3)数据中可能有存在异常值或者数据的分布极度不均匀。
(4)关于拟合优度和调整后的拟合优度(adj-R**2** )
*我们引入的自变量越多,拟合优度会变大。但我们倾向于使用调整后的拟合优度,如果新引入的自变量对 SSE 的减少程度特别小,那么调整后的拟合优度反而会减小。(重要)* (尚未理解) 😭
其中:
标准化回归系数:(为了去除量纲的影响)(学习 Stata 标准化回归命令)
对数据进行标准化:
- 将原始数据减去它的均数后
- 再除以该变量的标准差得到新的变量值
- 新变量构成的回归方程称为标准化回归方程
- 回归后相应可得到标准化回归系数。
解释含义:标准化系数的绝对值越大,说明对因变量的影响就越大(只关注显著的回归系数)
扰动项需要满足的条件:
古典回归模型默认为球型扰动项:满足同方差与无自相关
下面是对同方差的解释: (所谓同方差就是满足正态分布的意思)
X 为多元自变量,Var 为扰动项在多元变量 X 下的协方差矩阵,如图所示的情况即为同方差
其中:cov(X, Y) = E\left[(X - E[X])(Y - E[Y])\right]
实际数据中:
横截面数据容易出现异方差问题
时间序列数据容易出现自相关问题(数学建模不在乎自相关)
异方差的假设检验方法:
原假设:不存在异方差
- 推荐使用怀特检验
异方差会导致的问题:
假设检验无法使用(构造的统计量失效)
OLS 估计量不再是最优线性无偏估计量(BLUE)(估计值偏差大/R2太小)
解决办法:
(1)使用 OLS + 稳健的标准误(与异方差“和平共处”)
(2)广义最小二乘估计法 GLS
原理:方差较小的数据包含的信息较多,我们可以给予信息量大的数据更大的权重(即方差较小的数据给予更大的权重)
缺点:不知道扰动项真实的协方差矩阵,只能用样本数据来估计,结果不稳健,存在偶然性
推荐使用 OLS+ 稳健标准误
多重共线性(本质上就是列向量的线性相关性)
造成的后果:
- 方差增大,系数估计不准确/标准误较大/单个系数的 t 检验不显著
- 增减解释变量使得系数估计值发生较大变化
检验多重共线性:
Stata 命令:estat vif
多重共线性处理方法:
- 若不关心具体的回归系数,而只关心整个方程预测被解释变量的能力,则不需要处理。这是因为多重共线性的主要后果是使得对单个变量的贡献估计不准,但所有变量的整体效应仍可以较准确地估计。
- 如果关心具体的回归系数,但多重共线性并不影响所核心变量的显著性,那么也可以不处理。
- 如果多重共线性影响到所关心变量的显著性,则需要增大样本容量/剔除导致严重共线性的变量(不要轻易删除,可能会有内生性的影响) / 对模型设定进行修改。
逐步回归分析方法:
推荐使用:向后逐步回归 Backward elimination:
与向前逐步回归相反:
- 先将所有变量均放入模型
- 尝试将其中一个自变量从模型中剔除
- 观察整个模型解释因变量的变异是否有显著变化
- 将没有解释力的那个自变量剔除(高于 p-value 设置的阈值)
- 此过程不断迭代,直到没有自变量符合剔除的条件。
需要回过头检验多重共线性
三、岭回归与 lasso 回归(处理多重共线性)
概论介绍:(岭回归与 lasso 回归一定要量纲统一)
岭回归和 lasso 回归在 OLS 回归模型的损失函数上加上了不同****的惩罚项,该惩罚项由回归系数的函数构成
一方面,加入的惩罚项能够识别出模型中不重要的变量,对模型起到简化作用,可以看作逐步回归法的升级版
另一方面,加入的惩罚项能够让模型变得可估计,可以处理之前的数据不满足列满秩的情况
背景前提:古典回归模型:
线性假定
严格外生性
无多重共线性
球型扰动项(同方差且无自相关)
岭回归(几乎不用)(逆天推导):
\hat{\beta} = \arg \min_{\beta} \left( \sum_{i=1}^{n} (y_i - X_i\beta)^2 + \lambda \sum_{j=1}^{p}\beta_j^2 \right)其中:
- ( n ) 是样本数量
- ( p ) 是自变量的数量
- ( y_i ) 是第 ( i ) 个观察值的因变量。
- ( X_i ) 是第 ( i ) 个观察值的自变量向量。
- ( \beta ) 是待估计的回归系数向量。
- ( \lambda ) 是正则化参数(岭参数)控制正则化的强度
Lasso 回归:
\min_{\beta} \left( \frac{1}{2n} \sum_{i=1}^{n} (y_i - X_i \beta)^2 + \lambda \|\beta\|_1 \right)其中:
- ( n ) 是样本数量。
- ( y_i ) 是第 ( i ) 个样本的实际输出。
- ( X_i ) 是第 ( i ) 个样本的特征向量。
- ( \beta ) 是待估计的回归系数向量。
- ( |\beta|_1 ) 是回归系数 ( \beta ) 的 L1 范数(即系数绝对值的和)。
- ( \lambda ) 是正则化参数,控制惩罚项的权重。
优点:将不重要的变量的回归系数的压缩至 0
缺点:无解析解,只能使用近似估计法(坐标轴下降法和最小角回归法)
使用场景:存在多重共线性的问题/筛选去掉不重要的变量
步骤如下:
(1)判断自变量的量纲是否一样,如果不一样则首先进行标准化的预处理
(2)对变量使用 lasso 回归,记录下 lasso 回归结果表中回归系数不为 0 的变量,这些变量就是留下来的重要变量,其余未出现在表中的变量可视为引起多重共线性的不重要变量。
(3)然后进行回归,并分析回归结果即可。(注意:此时的变量可以是标准化前的,也可以是标准化后的,因为 lasso 只起到变量筛选的目的)
K 折交叉验证(k‐fold cross validation)
使用 K 折交叉验证的方法来选择最佳的调整参数
步骤:
- 将样本数据随机分为 K 个等分
- 将第 1 个子样本作为 验证集(validation set) 而保留不用
- 使用其余 K-1 个子样本作为 训练集(training set) 来估计此模型,再以此预测第 1 个子样本,并计算第 1 个子样本的 “均方预测误差”MSPE
- 其次,将第 2 个子样本作为验证集,而使用其余 K-1 个子样本作为训练集来预测第 2 个子样本,并计算第 2 个子样本的 MSPE。
- 以此类推,将所有子样本的 MSPE 加总,即可得整个样本的 MSPE。
- 最后,选择调整参数 ,使得整个样本的 MSPE 最小,故具有最佳的预测能力。
四、综上所述:
回归分析part尚未完成任务-hxw
Stata 操作还不太熟悉(描述性统计……)(整理一个操作文档)
基于python 的爬虫还在学习中
课程中提到需要掌握作图可视化
有时间再看看计量经济学(林文夫)不懂的地方
虚拟变量的理解
调整后的拟合优度的理解
异方差检验的问题(置信水平……)
多重共线性(有点听不懂)
总结回归分析的步骤流程
五、总结回归分析的步骤流程
第一种情形:(自定自变量)
-
数据收集确定各类变量类型与变量形式(次数与取对数)
-
给出我们希望得到的线性回归模型(自定自变量)
(可一元可多元)
(如果希望得到变量中哪些影响大,则进行数据标准化)
-
使用 OLS + 稳健的标准误回归求解回归系数
-
检验多重共线性
-
检验回归系数的显著性以及回归的拟合优度
-
解释回归系数
第二种情形:不知道使用哪些自变量
-
数据收集确定各类变量类型与变量形式(次数与取对数)
-
使用结合 K 折交叉验证的 Lasso 回归
(需要数据标准化)
(通过 Lasso 回归去掉不重要的变量以及解决多重共线性的问题)
筛选出了变量之后相等于回到第一种情形
(可以使用 Lasso 得到的标准化回归方程,可以不用,使用 OLS + 稳健的标准误得到正常回归方程)
-
检验异方差
-
检验回归系数的显著性以及回归的拟合优度
-
解释回归系数
注意:多重共线性有时候是可以允许存在的
多重共线性处理方法:
- 若不关心具体的回归系数,而只关心整个方程预测被解释变量的能力,则不需要处理。这是因为多重共线性的主要后果是使得对单个变量的贡献估计不准,但所有变量的整体效应仍可以较准确地估计。
- 如果关心具体的回归系数,但多重共线性并不影响所核心变量的显著性,那么也可以不处理。
- 如果多重共线性影响到所关心变量的显著性,则需要增大样本容量/剔除导致严重共线性的变量(不要轻易删除,可能会有内生性的影响) / 对模型设定进行修改。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于