工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断(下)

简介: 工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断

工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断(上):https://developer.aliyun.com/article/1490609


非线性诊断法


Cook(1993)和Cook and Croos-Dabrera(1998)系统地探讨了成分、残差图作为非线性诊断的理论属性。按照这些作者的说法,并把重点放在解释变量x1上,让我们假设响应y与x1的部分关系可能是非线性的,由部分回归函数f(x1)表示,而y与其他xxs的部分关系是线性的,因此,数据的准确模型是。

我们不知道f(),所以改用工作模型来拟合

在我们的例子中,通过2SLS回归,得到估计的回归系数a′,b′1,b′2,...,b′k。Cook和Croos-Dabrera的工作表明,只要回归估计是一致的,XXS是线性相关的。部分残差b′1x1+e可以被绘制出来,并对x1x1进行平滑处理,以显示f()的估计。其中e=y-(a′+b′1x1+b′2x2+⋯b′kxk)是因变量残差。在实践中,如果x1和其他xxs之间有很强的非线性关系,或者y与另一个与x1相关的x有非线性关系,那么分量加残差图就会被分解为f()的准确表示。

Fox和Weisberg(2018)将成分加残差图扩展到更复杂的回归模型,例如可以包括交互作用,将偏残差添加到预测变量效应图中。这些图也可以应用于由2SLS回归拟合的线性模型。


诊断非线性:一个例子


我们再一次转向Kmenta的数据和模型的需求方程来说明成分残差图,数据再一次表现良好。为一个加法回归方程中的所有数字解释变量构建了分量残差图。比如说。

crPlots(deq, smooth=list(span=1))

我们在图中为局部加权回归loess 平滑(Cleveland, Grosse, and Shyu 1992)设置了一个较大的跨度,因为在数据集中只有n=20个案例。跨度的默认值是2/3。在每个面板中,红线给出的loess 平滑度与蓝线给出的最小二乘线紧密匹配,蓝线代表的是解释变量方向的拟合回归面,左边是P,右边是D。因此,两种偏关系似乎都是线性的。

CERES图(Cook 1993),是成分加残差图的一个版本,它使用平滑器而不是线性回归,因此对预测因子之间的非线性关系更加稳定。

ceresPlots(deq, smooth=list(span=1))

在当前的例子中,这是一个加性模型,我们得到的图形与之前的基本相同,只是y轴的缩放比例不同。

plot(predictorEffects)

预测效应图中的蓝色阴影区域代表拟合的部分回归线周围95%的置信度包络。

然而,假设我们对数据拟合了错误的模型。

deq2 <- update(deq, . ~ I((P - 85)^4/10^5) + D)
crPlots(deq2, smooth=list(span=1))

因为max(P)/min(P)=113.49/86.50=1.3的比率不比1大多少,所以我们在把变量提高到4次方之前,从P中减去一个比min(P)略小的数字,以引起拟合部分回归曲线中的非线性。变换后的P的成分加残差图清楚地反映了由此产生的缺乏拟合,而D的图仍然是合理的线性。

带有部分残差的预测器效应图显示了对同一情况的不同看法,它将P而不是转换后的P放在横轴上,并揭示了拟合的非线性部分回归函数未能捕获数据的线性模式。

plot(predictorEffects(deq2, residuals=TRUE), 
     partial.residuals=list(span=1))

蓝线代表拟合模型,红线代表平滑后的偏残差;两条线之间的差异表明缺乏拟合。


非恒定误差方差


标准的最小二乘法非恒定方差("异方差")诊断法可以直接延伸到2SLS回归中。例如,我们可以绘制残差与拟合值的对比图,以发现前者的变异性随着后者的水平而变化(通常是增加)的趋势。对于的模型中的需求方程。

plot(fitted(deq), rstudent(deq))
abline(h=0)

似乎没有问题。

Fox(2016)提出了这个图形的一个变体,改编了Tukey的扩散水平图(Tukey 1977),绘制了绝对螺距残差的对数与拟合值的对数,假设后者是正数。如果该图的拟合线的斜率为b,则方差稳定化的功率转换由yλ=y1-b给出。因此,如果b>0,建议的变换是顺着Tukey的幂和根的阶梯,例如,λ=1-b=1/2代表平方根变换,λ=1-b=0代表对数变换,以此类推。对于模型,我们有

这表明分布有随水平提高的轻微趋势。λ=-2.45的转换似乎很强,直到我们注意到QQ的值离0很远,而且最大和最小的值Qmax/Qmin=106.23/92.42=1.15的比率接近1,所以Q-2.45几乎是QQ的线性转换,也就是说,实际上根本没有转换。

由Breusch和Pagan(1979)提出的最小二乘回归中的非恒定误差方差的普通分数测试,是基于模型的

其中函数g()是未指定的,变量z1,...,zs是误差方差的预测因子。在最常见的应用中,由Cook和Weisberg(1983)独立提出,有一个zz,即回归的拟合值yˆ,尽管使用初级回归中的回归者x作为zs也很常见。测试是通过将标准化残差的平方e2i/σˆ2回归到zs上实现的,其中σˆ2=∑e2i/n。然后,在误差方差不变的无效假设下,该辅助回归的回归平方和除以2的渐近分布为χ2s。

Breusch-Pagan/Cook-Weisberg检验很容易适应2SLS回归。对于需求方程。

在这里,第一个检验是针对拟合值的,第二个更一般的检验是针对需求方程中的解释变量的;这两个检验的p值都很大,表明没有什么证据反对恒定方差的假说。

2SLS回归中对非恒定方差的补救方法与最小二乘回归中的补救方法相似。

  • 我们已经提出,如果误差方差随着响应水平的提高(或降低),并且因变量是正的,那么我们就可以通过对因变量进行幂变换来稳定误差方差。
  • 另外,如果我们知道误差的方差与一个常数成正比,那么我们可以对2SLS估计使用反方差加权。
  • 最后,我们可以在2SLS中使用系数协方差矩阵的估计(或自举法:例如,见Davison和Hinkley 1997)来修正非恒定误差方差的标准误差,就像Huber(1967)和White(1980;也见Long和Ervin 2000)提出的最小二乘法回归那样。

对于例子,非恒定误差方差的证据是轻微的,标准误差与传统的2SLS标准误差相似,甚至比它略小。

我们将修改数据以反映非恒定误差方差,像最初那样从还原形式方程中重新生成数据,将内生变量P和Q表示为外生变量D、F和A的函数,以及还原形式误差ν1和ν2。

w <- 3*(EQ - min(EQ) + 0.1)/(max(EQ) - min(EQ)) 
    v1 <- v1*w # 非恒定方差
    Q <- EQ + v1
    P <- EP + v2

将采样的简化形式误差v1与Q的期望值作图,显示出明显的异质性模式。

plot(EQ, v1))

然后将需求方程与新的数据集重新匹配,我们得到

而非恒定的误差方差在诊断中得到了明显的反映;例如:

ncvTest(deq2)

从建议的QQ的幂变换的极值λ=-23,反映了(正如我们之前指出的)max(Q)/min(Q)并没有比1大多少。

在我们的例子中,标准误差与传统的标准误差没有太大区别。

如前所述,bootstrapping 提供了一种替代标准误差的方法,作为对非恒定误差方差的修正,实现了个案再抽样的bootstrapping ,并返回一个适合与boot包中的函数一起使用的 "boot "类对象(Davison和Hinkley 1997;Canty和Ripley 2020)。比如说。

b.deq2 <- Boot(deq2)

在这个例子中,bootstrap的标准误差比传统的标准误差大。

Boostrap置信区间也可以从Boot()返回的对象中计算出来,默认情况下报告BCa(偏差校正,加速)区间(。

confint(b.deq2)


加权的2SLS回归


假设我们修改了回归模型y=Xβ+ε,那么现在Nn(0,σ2W-1)其中W=diag{wi}是一个已知反方差权重的n×n对角矩阵;即V(εi)=σ2/wi。如前所述,X的某些列可能与误差ε相关,但我们有足够的工具变量Z,它们与误差无关。

那么加权的2SLS估计是

或者,我们可以将2SLS的两个阶段视为加权最小二乘法(WLS)问题,在每个阶段都要最小化加权残差平方和。

Phillips的2SLS回归的更新公式也可以针对加权情况进行修改,但是更简单的方法(是将加权2SLS问题转换成非加权问题,通过使用W1/2=diag{wi--√},W的Cholesky平方根将数据转换为恒定方差。W的平方根特别简单,因为W是对角线的。然后在Phillips的更新公式中,我们用y∗=W1/2y代替y,用X∗=W1/2X代替X,用Z∗=W1/2Z代替Z。

对于修改后的数据,我们知道需求方程的误差方差与变量w成反比。这反映了数据的构建方式。因此,加权的2SLS估计被计算为

将求和残差与拟合值作图,并测试非恒定误差方差,并不表明有异方差问题,但有一个相对较大的求和残差,约为-3,与其他数值相比有些突出。

plot(fitted(deqw), rstudent(deqw))

Bonferroni离群值测试表明,学生化残差并不是异常大,模型是正确的。

outlierTest


共线性关系诊断


除了异常数据诊断外,Belsley, Kuh和Welsch(1980)还简要地将他们的共线性关系诊断方法扩展到2SLS回归中。我们认为,这种将共线性关系同化为数值不稳定性的方法是有缺陷的,因为它考虑到了 "与截距的共线性关系"。也就是说,数值远离0的回归者与常数回归者的乘积之和很大,产生了截距的大标准误差,只是反映了截距将拟合的回归面远远超出了数据范围的事实。

Fox和Monette(1992)描述了一种基于广义方差膨胀因子的最小二乘法拟合的线性模型中串联性诊断的替代方法。广义方差膨胀因子采用了系数的估计协方差矩阵,一般适用于有线性预测因子的模型,包括由2SLS估计的线性模型。

例如,对于模型中的需求方程。

sqrt(vif(deq))

取VIF的平方根将它们放在系数标准误差的刻度上。也就是说,P和D的系数的标准误差比估计的系数不相关时要大23%。像这里一样,模型中的每个项只有一个系数时,广义和普通方差膨胀因子是一致的。P和D的VIFs相等是两个回归变量(超越回归常数)的情况下所特有的。

边际/条件图是由car软件包中的mcPlots()函数生成的,它将添加变量图叠加到相应的回归因子边际散点图上。这些图使我们能够直观地看到由于共线性关系造成的每个系数估计精度的降低,共线性关系降低了回归变量相对于其边际变化的条件变化。例如,对于需求方程。

Plots(deq)

每个面板中的蓝色点代表边际散点图,红色点代表(部分)添加变量图,箭头显示两组点之间的关系。


结语


仔细的回归分析需要有效地观察数据的方法。许多潜在的问题可以通过在拟合回归模型之前检查数据来解决,减少(如果不是消除)拟合后诊断的必要性。毫无疑问,采用2SLS的谨慎的数据分析者一直都是这样做的。然而,拥有允许人们对2SLS拟合的回归模型进行批评的方法,至少在某些情况下会建议对模型进行改进,或者对数据进行修正。


参考文献


Basmann, R. L. 1957. “A Generalized Classical Method of Linear Estimation of Coefficients in a Structural Equation.” Econometrica 25: 77–83. https://doi.org/10.2307/1907743.

Belsley, D. A., E. Kuh, and R. E. Welsch. 1980. _Regression Diagnostics: Identifying Influential Data and Sources of Collinearity_. New York: John Wiley & Sons. Regression Diagnostics | Wiley Series in Probability and Statistics.

Breusch, T. S., and A. R. Pagan. 1979. “A Simple Test for Heteroscedasticity and Random Coefficient Variation.” Econometrica 47: 1287–94. https://doi.org/10.2307/1911963.

相关文章
|
2天前
|
运维 Prometheus 监控
特定用途的日志分析工具
【10月更文挑战第20天】
14 5
|
2天前
|
存储 机器学习/深度学习 传感器
商业日志分析工具
【10月更文挑战第20天】
14 5
|
2天前
|
存储 运维 监控
开源日志分析工具
【10月更文挑战第20天】
18 3
|
25天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1599 14
|
25天前
|
存储 消息中间件 大数据
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
24 4
|
26天前
|
SQL 分布式计算 Hadoop
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
39 2
|
28天前
|
数据采集 机器学习/深度学习 存储
使用 Python 清洗日志数据
使用 Python 清洗日志数据
29 2
|
29天前
|
开发工具 git
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
33 1
|
2月前
|
缓存 监控 算法
分析慢日志文件来优化 PHP 脚本的性能
分析慢日志文件来优化 PHP 脚本的性能
08-06-06>pe_xscan 精简log分析代码 速度提升一倍
08-06-06>pe_xscan 精简log分析代码 速度提升一倍