原文链接:http://tecdat.cn/?p=23759

简介

两阶段最小二乘法(2SLS)回归拟合的线性模型是一种罕用的工具变量预计办法。

本文的次要内容是将各种规范的回归诊断扩大到2SLS。

2SLS预计的回顾

咱们须要2SLS回归的一些根本后果来开发诊断办法,因而咱们在此简略回顾一下该办法。2SLS回归是由Basmann(1957)和Theil(引自Theil 1971)在20世纪50年代独立创造的,他们采取了稍微不同但又相当的办法,都在上面形容,以得出2SLS预计器。

咱们想预计线性模型y=X+,其中y是因变量的n×1察看向量,X是回归因子的n×p矩阵,通常初始列1s为回归常数。 是一个p×1的回归系数向量,须要依据数据进行预计,是一个n×1的误差向量,假设其散布为Nn(0,2In),其中Nn是多变量正态分布,0是一个n×1的零向量,In是n阶单位矩阵。假如X中的一些(兴许是全副)回归因子是内生的,即它们被认为不独立于的意义。因而,的一般最小二乘法(OLS)估计值bOLS=(X⊤X)-1X⊤y通常是有偏的,而且不统一。

当初假如咱们有另一组独立于的q工具变量(IVs)Z,其中q≥p。如果q=p,咱们能够间接利用IV来预计,但如果q>p,咱们有更多的IV,而不是咱们须要的。简略地摈弃IVs是低效的,2SLS回归是一个通过正当的形式将IVs的数量缩小到p的程序。

2SLS的第一阶段通过多元一般最小二乘法对模型矩阵X中的所有回归变量进行回归,失去q×p的回归系数矩阵B=(Z⊤Z)-1Z⊤X,以及拟合值X=ZB。B的列相当于X的每一列对Z的独自最小二乘回归产生的系数。如果X的某些列是外生的,那么这些列也会呈现在Z中,因而,XX^中与外生调节器无关的列只是复制了X的相应列。

因为XX^的列是Z的列的线性组合,它们(渐进地)与不相干,使它们成为预计回归方程的适合IV。这个IV步骤是Theil办法中2SLS的第二个阶段。

作为一种代替办法,咱们能够通过对XX^进行OLS回归来取得完全相同的的估计值b2SLS,产生b2SLS=(X⊤X)X⊤y。这就是巴斯曼的办法,也是 "2SLS "这个名字的由来。

无论咱们把第二阶段看成是IV预计还是OLS回归,咱们都能够把这两个阶段合并成一个公式。

这就是sem包中的tsls()函数(Fox, Nie, and Byrnes 2020)所做的,然而从开发回归诊断的角度来看,通过两个不同的OLS回归来计算2SLS估计值是无利的。

对2Sls回归异样-数据诊断

就咱们所知,用2SLS拟合的回归模型的诊断是一个绝对被忽视的话题,但Belsley, Kuh和Welsch(1980, 266-68)简要地探讨了这个问题。删除诊断法间接评估每个案例对拟合回归模型的影响,办法是删除案例,从新拟合模型,并留神到回归系数或其余回归输入,如残差标准差,如何变动。

对于有影响的数据,总是能够通过粗犷的计算来取得案例删除诊断,即用每个案例顺次删除来从新拟合模型,但这种办法效率低下,因而在大样本中没有吸引力。对于某些类别的统计模型,如狭义线性模型(如Pregibon 1981),对个案删除诊断的计算要求较低的近似值是可用的,而对于线性模型,无效的 "更新 "公式是可用的(如Belsley, Kuh, and Welsch 1980所形容的),容许准确计算个案删除诊断的。

事实证明,正如Belsley、Kuh和Welsch所指出的,Phillips(1977年,公式15和16)给出了2SLS回归的准确更新公式,容许无效地计算个案抉择统计。

其中,b2SLS-i是去除第ii种状况后的2SLS回归系数向量,以及

这里,yi是第i个案例的因变量值,x⊤ixi⊤是模型矩阵X的第i行,z⊤izi⊤是工具变量模型矩阵Z的第i行。

Belsley, Kuh和Welsch特地钻研了(用咱们的符号)dfbetai=b2SLS-b2SLS-i的值。他们还探讨了残差标准差s-i的删除值。

而后,Belsley、Kuh和Welsch计算它们对拟合值(和回归系数)影响的综合度量dffits为

其中(如前)x⊤ixi⊤是模型矩阵X的第i行,XX^是第二阶段回归变量的模型矩阵。

代表将y转换为拟合值的n×n矩阵,y=H∗y。在OLS回归中,相似的量是hat矩阵H=X(X⊤X)-1X⊤。Belsley, Kuh和Welsch指出,H∗与H不同,它不是一个正交投影矩阵,将y正交地投影到X的列所逾越的子空间上。特地是,只管H∗和H一样,是等值的(H∗=H∗H∗),并且trace(H∗)=ptrace(H∗)=p,但H∗和H不同,是不对称的,因而它的对角线元素不能被当作杠杆的总结性措施,也就是说,不能被当作hat值。

Belsley, Kuh和Welsch倡议简略地应用第二阶段回归的hat值。这些是H2=X(X⊤X)-1X⊤的对角线条目hi=hii。咱们在上面探讨一些代替计划。

除了hatvalues、dfbeta、s-i和dfits之外,还计算cook间隔Di,这基本上是dfits的一个稍有不同的比例版本,它应用总体残差标准差s来代替删除的标准差s-i。

因为它们具备相等的方差,并且在正态线性模型下近似于t散布,所以 studentized残差对于检测异样值和解决正态分布误差的假如十分有用。studentized残差与OLS回归相相似,定义为

其中ei=yi-x⊤ib 2SLS是第i种状况的因变量残差。

如前所述,Belsley, Kuh, and Welsch (1980)倡议应用第二阶段回归的 hatvalues。这是一个正当的抉择,然而它有可能脱漏那些在第一阶段有高杠杆率但在第二阶段回归中没有的案例。让h(1)i代表第一阶段的hatvalues,h(2)i代表第二阶段的hatvalues。如果模型包含一个截距,两组hatvalues都以1/n和1为界,但第一阶段的均匀hatvalues是q/n,而第二阶段的均匀hatvalues是p/n。为了使两个阶段的hatvalues具备可比性,咱们将每个hatvalues除以其平均值,h(1∗)i=h(1)iq/n;h(2∗)i=h(2)ip/n。而后咱们能够把两阶段的hatvalue定义为每种状况下两者中较大的一个,hi=(p/n)×max(h(1∗)i,h(2∗)i),或者定义为它们的几何平均。

异样数据诊断

规范的R回归模型通用办法,包含anova()(用于模型比拟),predicted()用于计算预测值,model.matrix()(用于模型或第一或第二阶段的回归),print(),residuals()(有几种),summary(),update(),和vcov()。

例子

数据在Kmenta(1986年)中用来阐明(通过2SLS和其余办法)对线性联立方程计量经济学模型的预计。这些数据代表了经济从1922年到1941年的年度工夫序列,有以下变量。

  • Q,人均食品生产
  • P,食品价格与个别生产价格的比率
  • D, 可摆布支出
  • F, 前一年农民收到的价格与个别生产价格的比率
  • A, 年为单位的工夫

该数据集很小,咱们能够对其进行查看。

预计以下两个方程式模型,第一个方程式代表需要,第二个代表供给。

变量D、F和A被视为外生变量,当然常数回归因子(一列1)也是如此,而两个构造方程中的P是内生解释变量。因为有四个工具变量可用,第一个构造方程有三个系数,是适度辨认的,而第二个构造方程有四个系数,是刚刚辨认的。

外生变量的数值是实在的,而内生变量的数值是由Kmenta依据模型生成(即模仿)的,参数的假如值如下。

解决内生变量P和Q的构造方程,能够失去模型的简化模式

Kmenta独立地从N(0,1)中抽出20个1和2的值,而后设定1=21和

 

构造方程预计如下(比拟Kmenta 1986, 686)。

默认状况下,summary()会输入2SLS回归的三个 "诊断 "测试的后果。这些测试不是本文的重点,所以咱们只对它们进行简略的评论。

  • 一个好的工具变量与一个或多个解释变量高度相干,同时与误差放弃不相干。如果一个内生的回归者与工具变量只有强劲的关系,那么它的系数将被不精确地预计。在弱工具的诊断测试中,咱们心愿有一个大的测试统计量和小的p值,Kmenta模型中的两个回归方程就是如此。
  • 利用于2SLS回归中,Wu-Hausman测验是对内生性的一种测验。如果所有的回归者都是外生的,那么OLS和2SLS的预计都是统一的,并且OLS的预计更无效,然而如果一个或多个回归者是内生的,那么OLS的预计就不统一了。大的测验统计量和小的p值,就像在这个例子中一样,表明OLS预计器是不统一的,因而,2SLS预计器是首选。
  • Sargan测验是对适度辨认的测验。也就是说,在一个适度辨认的回归方程中,如Kmenta的需要方程中,工具变量比要预计的系数多,工具变量有可能提供对于系数值的抵触信息。因而,大的测验统计量和小的Sargan测验的pp值表明,该模型被谬误地指定了。在这个例子中,只管咱们晓得(通过数据的构建形式)需要方程是正确的,但咱们还是偶尔失去了一个适度小的pp值0.084。Sargan测验不适用于刚刚确定的回归方程,其工具变量和系数的数量相等,如Kmenta的供应方程。

lm "类对象的几个办法与产生的对象失常工作。例如,对象的plot()办法调用了相应的 "lm "办法并产生了可解释的图,这里是Kmenta模型中需要方程的2SLS拟合。

par(mfrow=c(2, 2))plot(deq)

然而,在这种状况下,咱们更喜爱形容的这些诊断图的版本。

数据体现良好。例如,在第一个构造方程中,学生化残差的QQ图和hatvalues、学生化残差和库克cook间隔的 "影响图 "都是不显著的,除了几个高杠杆但在一起的案例。

qqPlot

influence

影响图中的圆圈面积与Cook's D成正比,水平线画在学生化残差标度的0和±2处(rstudent=2处的水平线不在图中),垂直线在2×h¯和3×h¯处。

为了产生一个更乏味的例子,咱们将把高杠杆的第20种状况(即1941年)的QQ值从Q20=106.232改为Q20=95,这个值齐全在数据中QQ的范畴内,但与其余数据不统一。

而后反复对第一个构造方程的2SLS拟合,并将后果与未被毁坏的数据进行比拟,发现回归系数有很大变动。

compareCoefs(deq, deq1)

有问题的第20个案例(1941年)通过异样数据回归诊断法分明地显示进去。

qqPlot(deq1)

outlier

influence Plot

avPlots(deq1)

去掉第20种状况,产生的预计系数靠近于未被毁坏的数据的系数。 

compareCoefs(deq, deq1, deq1.20)

预计系数的标准误差比原来大,因为咱们当初有19个而不是20个案例,也因为解释变量的变动缩小了。

发现hatvaues的三种定义是否对这个例子产生了理论的影响,是有肯定的意义的。三种hatvalues的散点图矩阵表明,它们都产生了相似的后果。

最初,让咱们验证一下删除诊断的计算结果是否正确。

非线性诊断法

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.


最受欢迎的见解

1.R语言多元Logistic逻辑回归 利用案例

2.面板平滑转移回归(PSTR)剖析案例实现剖析案例实现")

3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R语言泊松Poisson回归模型剖析案例

5.R语言回归中的Hosmer-Lemeshow拟合优度测验

6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

7.在R语言中实现Logistic逻辑回归

8.python用线性回归预测股票价格

9.R语言如何在生存剖析与Cox回归中计算IDI,NRI指标