回归分析是数据分析中最基础也是最重要的分析工具,许多数据分析的问题,都可以采用回归的思想去解决,机器学习中回归也是需要学习的很重要的内容之一;当今回归分析的任务是:通过研究自变量X和因变量Y的相关关系,尝试去解释Y的形成机制,进而达到通过X去预测Y的目的。(感觉跟插值和拟合希望达到的目的差不多orz)
常见的回归分析有五类:线性回归、0-1回归、定序回归、计数回归和生存回归,它们划分的依据是因变量Y的类型,这里我们主要讲线性回归。
回归分析: 研究X和Y之间相关性的分析
关于它的三个关键词:
相关性 ≠ \neq =因果性
因为许多情况下我们无法去探究严格的因果关系,所以当前比较好的能替代它的方法就是通过回归分析,研究它们之间相关关系
在实际应用中,Y常常是我们需要研究的那个核心变量
因变量类型 | 举例 |
---|---|
连续数值型变量 | 研究一段时间内GDP的增长趋势 |
0-1型变量 | 判断病人是否患病,0为否,1为是 |
定序型变量 | 根据喜欢成都区分,1~5喜欢程度依次递增 |
计数型变量 | 一学期内上课一共迟到了几次,为非负整数 |
生存型变量 | 在统计时,会有部分个体(比如人)在计算时不存在,需要设定个标准(如60岁作为截断年龄) |
也可以这么定义:X是解释变量,Y是被解释变量
回归分析的任务即:通过研究X和Y的关系,能够达到之后通过X预测出Y
类型 | 模型 | Y的特点 | 例子 |
---|---|---|---|
线性回归 | OLS、GLS(最小二乘) | 连续数值型变量 | GDP、产量、收入 |
0-1回归 | logistic回归 | 二值变量(0-1) | 是否违约、是否得病 |
定序回归 | probit定序回归 | 定序变量 | 等级评定(优良差) |
计数回归 | 泊松回归(分布) | 计数变量 | 每分钟车流量 |
生存回归 | Cox等比例风险回归 | 生存变量(阶段数据) | 企业、产品的寿命 |
数据类型 | 常见建模方法 |
---|---|
横截面数据 | 多元线性回归 |
时序数据 | 移动平均、指数平滑、ARIMA、GARCH、VAR、协积 |
面板数据 | 固定效应和随机效应、静态面板和动态面板 |
在数模比赛中,前两种数据类型比较常见;而对于面板数据,通常是经管类学生在中级计量经济学中才会学到利用的模型
横截面数据往往运用回归来建模,通过回归得到自变量与因变量的相关关系以及自变量的重要程度
时间序列数据往往用于预测,时序模型可以用得很多,ML中也有RNN、LSTM之类的工具
宏观数据:
一元线性我们之前在拟合讲过啦,可以先去复习一下最小二乘下的一元线性拟合(也出现在ML中所用的Loss Function损失函数),在回归中我们把损失函数称为残差平方和
假 设 x 是 自 变 量 , y 是 因 变 量 , 且 满 足 如 下 线 性 关 系 : y i = β 0 + β 1 x i + μ i β 0 和 β 1 为 回 归 系 数 , μ i 为 无 法 观 测 的 且 满 足 一 定 条 件 的 扰 动 项 令 预 测 值 y i ^ = β 0 ^ + β 1 ^ x i 其 中 β 0 ^ , β 1 ^ = a r g m i n β 0 , β 1 ( ∑ i = 1 n ( y i − y i ^ ) 2 ) = a r g m i n β 0 , β 1 ( ∑ i = 1 n ( y i − β 0 ^ − β 1 ^ x i ) 2 ) β 0 ^ , β 1 ^ = a r g m i n β 0 , β 1 ( ∑ i = 1 n ( μ i ^ ) 2 ) 我 们 称 μ i ^ = y i − β 0 ^ − β 1 ^ x i 为 残 差 假设x是自变量,y是因变量,且满足如下线性关系:\\ y_{i}=\beta_{0}+\beta_{1}x_{i}+\mu_{i} \\ \\ \beta_{0}和\beta_{1}为回归系数,\mu_{i}为无法观测的且满足一定条件的扰动项 \\ \\ 令预测值\hat{y_{i}} = \hat{\beta_{0}}+\hat{\beta_{1}}x_{i} \\ \\ \\ 其中\hat{\beta_{0}},\hat{\beta_{1}}=\mathop{argmin}\limits_{\beta_{0},\beta_{1}}({\color{blue}\sum\limits_{i=1}^{n}(y_{i}-\hat{y_{i}})^2}) = \mathop{argmin}\limits_{\beta_{0},\beta_{1}}(\sum\limits_{i=1}^{n}(y_{i}-\hat{\beta_{0}}-\hat{\beta_{1}}x_{i})^2) \\ \hat{\beta_{0}},\hat{\beta_{1}} = \mathop{argmin}\limits_{\beta_{0},\beta_{1}}(\sum\limits_{i=1}^{n}(\hat{\mu_{i}})^2) \\ \\ \\ 我们称\hat{\mu_{i}}=y_{i}-\hat{\beta_{0}}-\hat{\beta_{1}}x_{i}为残差 假设x是自变量,y是因变量,且满足如下线性关系:yi=β0+β1xi+μiβ0和β1为回归系数,μi为无法观测的且满足一定条件的扰动项令预测值yi^=β0^+β1^xi其中β0^,β1^=β0,β1argmin(i=1∑n(yi−yi^)2)=β0,β1argmin(i=1∑n(yi−β0^−β1^xi)2)β0^,β1^=β0,β1argmin(i=1∑n(μi^)2)我们称μi^=yi−β0^−β1^xi为残差
确定的 β 0 , β 1 \beta_{0},\beta_{1} β0,β1即是使残差 μ \mu μ最小的时候
线性假定并不要求初始模型都呈上述的严格线性关系,自变量与因变量可通过变量替换而转化成为线性模型,如:
使用线性回归模型建模前,需要对数据进行预处理,用EXCEL、Matlab、Stata等软件都可以
对于一个一元线性回归函数,如果其权重或是改变其截距值,对其回归系数的确定影响都非常大,这是因为遗漏变量导致的内生性
我们构建的一元线性模型中有无法预测的但满足一定条件的扰动项 μ \mu μ,如果满足 μ \mu μ和所有的自变量 x x x均不相关,则称该回归模型具有外生性
(如果相关,则存在内生性,内生性会导致回归系数估计的不准确;不满足无偏和一致性)
因为一般来说,误差项 μ i \mu_{i} μi包含了所有与 y y y有关,但没有添加到回归模型中的变量,如果这些变量和我们已经添加的自变量相关,那么将会产生内生性
无内生性要求所有解释变量均与扰动项不想管,即需要保证解释变量X全部外生,这个十分难,所以这个条件需要弱化一下,即将解释变量区分为核心解释变量与控制变量两类
有的时候会存在着类似这样的回归模型: y i ^ = β 0 ^ + β 1 l n x i ^ \hat{y_{i}} = \hat{\beta_{0}}+\hat{\beta_{1}lnx_{i}} yi^=β0^+β1lnxi^
那么什么时候取对数呢?
取对数意味着原被解释变量Y对解释变量的弹性,即百分比的变化而不是数值的变化;
目前,对于什么时候取对数还没有固定的规则,但是有一些经验法则:
取对数的好处:
公式: y = a + b x + μ , x 每 增 加 1 个 单 位 , y 平 均 变 化 b 个 单 位 y = a+bx+\mu,x每增加1个单位,y平均变化b个单位 y=a+bx+μ,x每增加1个单位,y平均变化b个单位
公式: l n y = a + b l n x + μ lny = a+blnx+\mu lny=a+blnx+μ, x x x每增加1%, y y y平均变化 b b b%
公式: l n y = a + b l n x + μ lny=a+blnx+\mu lny=a+blnx+μ, x x x每增加1%, y y y平均变化 b 100 \frac{b}{100} 100b个单位
公式: l n y = a + b x + μ lny = a+bx+\mu lny=a+bx+μ, x x x每增加1个单位, y y y就需要变化 ( 100 b ) (100b) (100b)%个单位
引入虚拟变量的概念,是为了更方便地来探究某个解释变量对被解释变量的影响,当在探究某个解释变量时,将该解释变量作为核心解释变量,其他控制变量作为虚拟变量,作为给定值参与讨论
会存在自变量之间互相影响的现象,即两个不同的自变量相乘的情况,如:
拟合优度较低怎么办?
关于拟合优度和调整后的拟合优度:
我们引入的自变量越多,拟合优度会变大(因为约束条件多了,目标也就更好的确定)。而我们倾向于使用调整后的拟合优度,如果新引入的自变量对SSE减少成都特别少,那么调整后的拟合优度反而会减小。
R 2 = 1 − S S E S S T S S E = ∑ i = 1 n ( Y i − Y i ^ ) 2 R a d j u s t e d 2 = 1 − S S E n − k − 1 S S T n − 1 ( k 为 自 变 量 的 个 数 ) R^{2} = 1-\frac{SSE}{SST}\qquad SSE=\sum\limits_{i=1}^{n}(Y_{i}-\hat{Y_{i}})^2 \\ R_{adjusted}^{2} = 1 - \frac{\frac{SSE}{n-k-1}}{\frac{SST}{n-1}}\quad (k为自变量的个数) R2=1−SSTSSESSE=i=1∑n(Yi−Yi^)2Radjusted2=1−n−1SSTn−k−1SSE(k为自变量的个数)
为了更精准的研究影响评价量的重要因素(去除量纲的影响),我们可以考虑使用标准化回归系数.
对数据进行标准化,就是将原始数据减去它的均属后,再除以该变量的标准差,计算得到新的变量值,新变量构成的回归方程称为标准化回归方程,回归后相应可得到标准化回归系数。
标准化系数的绝对值越大,说明对因变量的影响就越大(只关注显著的回归系数)。
异方差出现在哪?
横截面数据容易出现异方差的问题,时序数据容易出现自相关的问题
在之前的回归分析中,我们都默认了扰动项是球型扰动项[^3]
[^3]:球型扰动项:满足“同方差”和“无自相关”两个条件
但实际上扰动项是很容易出现异方差的,如果扰动项存在异方差,则说明:
注意:这里的信息和熵权法里面确定权重时的信息不是一个意思。异方差这里出现的信息可以理解为对于模型的稳定程度所做的贡献,异方差是指各个扰动项的方差不相同,那么方差较大的扰动项破坏模型稳定性的程度就较大,我们就说它包含的信息量减少。但是在熵权法中,方差越大,说明这个指标对于不同个体而言的变化程度就大,那么我们在评价时就不能轻易忽视这个变量
引入方差膨胀因子 ( V a r i a n c e I n f l a t i o n F a c t o r ) V I F (Variance Inflation Factor)VIF (VarianceInflationFactor)VIF
假 设 现 在 有 k 个 变 量 , 那 么 第 m 个 自 变 量 的 V I F m = 1 1 − R 1 − k m 2 R 1 − k m 2 是 将 第 m 个 自 变 量 作 为 因 变 量 , 对 剩 下 的 k − 1 个 自 变 量 回 归 得 到 的 拟 合 优 度 。 V I F m 越 大 ( 此 时 R 1 − k m 2 越 大 ) , 说 明 第 m 个 变 量 和 其 他 变 量 的 相 关 性 越 大 。 定 义 回 归 模 型 的 V I F = m a x { V I F 1 , V I F 2 , . . . , V I F k } 一 个 经 验 规 则 时 , 如 果 V I F > 10 , 则 认 为 该 回 归 方 程 存 在 严 重 的 多 重 共 线 性 假设现在有k个变量,那么第m个自变量的VIF_{m}=\frac{1}{1-R_{\frac{1-k}{m}}^{2}} \\ \\ R_{\frac{1-k}{m}}^{2}是将第m个自变量作为因变量,对剩下的k-1个自变量回归得到的拟合优度。 \\ \\ VIF_{m}越大(此时R_{\frac{1-k}{m}}^{2}越大),说明第m个变量和其他变量的相关性越大。 \\ \\ 定义回归模型的VIF=max\lbrace VIF_{1},VIF_{2},...,VIF_{k}\rbrace \\ \\ 一个经验规则时,如果VIF>10,则认为该回归方程存在严重的多重共线性 假设现在有k个变量,那么第m个自变量的VIFm=1−Rm1−k21Rm1−k2是将第m个自变量作为因变量,对剩下的k−1个自变量回归得到的拟合优度。VIFm越大(此时Rm1−k2越大),说明第m个变量和其他变量的相关性越大。定义回归模型的VIF=max{VIF1,VIF2,...,VIFk}一个经验规则时,如果VIF>10,则认为该回归方程存在严重的多重共线性
Stata计算各自变量VIF的命令(回归结束后使用):
estat vif
如果发现存在多重共线性,可以采取以下处理方法:
向前逐步回归Forward selection:
将自变量逐个引入模型,每引入一个检验一遍,自变量显著时才能加入回归模型
**缺点:**随着以后其他自变量的引入,原来显著的自变量也可能又变为不显著了,但是,并没有将其及时从回归方程中删除
向后逐步回归Backward elimination:
和向前不同,看英文名,一个是selection加入自变量进行检验,向后则是elimination删除自变量进行检验;再删除的过程中观察解释因变量的变异是否有显著变化,之后再将最没有解释力的自变量剔除;这个过程将不断迭代,直到没有自变量符合剔除的条件
缺点: 一开始把全部变量引入回归方程,计算量会很大,对于一些不重要的变量,一开始不引入,则能减少很多计算,虽然现在计算机可以处理,但这么做可以节省很多时间
这里讲的很多回归的观点,引用于王汉生老师的《数据思维》 ↩︎
参考资料:伍德里奇《计量经济学导论》第四版 ↩︎