Frisch-Waugh定理与部分回归图:图示多元线性回归的系数

作者:胡雨霄 (伦敦政治经济学院)

Stata 连享会: 知乎 | 简书 | 码云 | CSDN

Stata连享会   计量专题 || 精品课程 || 简书推文 || 公众号合集

Frisch-Waugh定理与部分回归图:图示多元线性回归的系数_第1张图片

2019金秋十月-空间计量专题班,杨海生主讲,成都

Frisch-Waugh定理与部分回归图:图示多元线性回归的系数_第2张图片

实证研究之初,研究者通常希望可以直观得观察变量 yx 的关系,并以此做出最初关于二者相关关系的基本预判。一个常用的命令是 twoway scatter。该命令允许绘制 yx 的散点图,借此研究者可以对二者关系产生较为直观的认识。然而,这种方式只能非常 粗糙 地描述二者的关系。其原因在于并没有控制其他变量的影响。

计量经济学中,我们认为其粗糙的原因在于遗漏变量偏差 (omitted variable bias)。在尚未控制其他变量影响的情况下,研究者无法断言两个变量相关性的存在,也无法进行量化分析。

而本篇推文介绍的命令 avplot avciplotxtavplot 则基于部分回归 (partial regression) 的计量原理,在控制了其他变量影响的情况下,允许研究者绘制部分回归图,观测变量 yx 的关系。

1. 部分回归:Frisch-Waugh Theorem

部分回归的基本思想是,当引入控制变量后,若想探究解释变量 x1 与被解释变量 y 的相关系数,那么就先 剔除 (partial out) 控制变量对 y 的影响和 剔除 控制变量对 x1 的影响,之后再让剩余部分的 y 对剩余部分的 x1 做回归。

1.1 计量原理

具体而言,假设线性回归方程为

y = X β + ε \mathrm{y}=\mathrm{X} \beta+\varepsilon y=Xβ+ε

β \beta β K × 1 K \times 1 K×1 的系数向量, ϵ \epsilon ϵ 为 $n \times 1 $ 的残差向量。

OLS 估计量 b b b 满足下式

X ′ X b = X ′ y X'Xb = X'y XXb=Xy

X X X 可以被分割为 $ X = [x_1, X2]$,其中 X 2 = [ x 2 , . . . , x k ] X_2 = [x_2, ..., x_k] X2=[x2,...,xk]。将 X X X 分割后, X ′ X X'X XX 可以进一步表示为

(1) [ x 1 ′ x 1 x 1 ′ X 2 X 2 ′ x 1 X 2 ′ X 2 ] \left[ \begin{matrix} x_1'x_1 & x_1'X_2 \\ X_2'x_1 & X_2'X_2 \end{matrix} \tag{1} \right] [x1x1X2x1x1X2X2X2](1)

X ′ y X' y Xy 则可进一步表示为

(2) [ X 1 ′ y X 2 ′ y ] \left[ \begin{matrix} X_1'y \\ X_2'y \end{matrix} \tag{2} \right] [X1yX2y](2)

将 (1)式和(2)式代入 X ′ X b = X ′ y X'Xb = X'y XXb=Xy 可以得到

Frisch-Waugh定理与部分回归图:图示多元线性回归的系数_第3张图片

由此可以得到两个式子

x 1 ′ x 1 b 1 + x 1 ′ X 2 b 2 = x 1 ′ y x_1'x_1b_1+x_1'X_2b_2 = x_1'y x1x1b1+x1X2b2=x1y

X 2 ′ x 1 b 1 + X 2 ′ X 2 b 2 = X 2 ′ y X_2'x_1b_1+X_2'X_2b_2=X_2'y X2x1b1+X2X2b2=X2y

进一步推得

X 2 ′ X 2 b 2 = X 2 ′ y − X 2 ′ x 1 b 1 = X 2 ′ ( y − x 1 b 1 ) X_2'X_2b_2 = X_2'y - X_2'x_1b_1= X_2'(y-x_1b_1) X2X2b2=X2yX2x1b1=X2(yx1b1)

也就是说,

b 2 = ( X 2 ′ X 2 ) − 1 X 2 ′ ( y − x 1 b 1 ) b_2 = (X_2'X_2)^{-1}X_2'(y-x_1b_1) b2=(X2X2)1X2(yx1b1)

联想 OLS 估计量表达式 b = ( X ′ X − 1 ) X ′ y b= (X'X^{-1})X'y b=(XX1)Xy,其实 b 2 b_2 b2 可以理解为 y − x 1 b 1 y-x_1b_1 yx1b1 X 2 X_2 X2 做回归 X 2 X_2 X2 的系数。

经过数学推导后,可以得到

b 1 = ( X 1 ′ M 2 X 1 ) − 1 X 1 ′ M 2 y b_1 = (X_1'M_2X_1)^{-1}X_1'M_2y b1=(X1M2X1)1X1M2y

其中, M 2 = ( I − X 2 ( X 2 ′ X 2 ) − 1 X 2 ′ ) M_2 = (I-X_2(X_2'X_2)^{-1}X_2') M2=(IX2(X2X2)1X2)

因为 M 2 M_2 M2 是对称 (symmetric) 且幂等 (idempotent) 的,因此 b 1 b_1 b1 可以重新写作

b 1 = ( x 1 ′ M 2 ′ M 2 x 1 ) − 1 x 1 ′ M 2 ′ M 2 y = ( e x 1 ′ e x 1 ) − 1 e x 1 ′ e y b_1 = (x_1'M_2'M_2x_1)^{-1}x_1'M_2'M_2y=(e_{x1}'e_{x1})^{-1}e_{x1}'e_y b1=(x1M2M2x1)1x1M2M2y=(ex1ex1)1ex1ey

其中, e x 1 = M 2 x 1 e_{x1}=M_2x_1 ex1=M2x1 e y = M 2 y e_y=M_2y ey=M2y。事实上, e y = M 2 y e_y=M_2y ey=M2y y y y X 2 X_2 X2 做回归后的残差的向量,而 e x 1 e_{x1} ex1 x 1 x_1 x1 X 2 X_2 X2 做回归后的残差的向量。

e y e_y ey e x 1 e_{x1} ex1 也可以被理解为是剔除了 X 2 X_2 X2 影响之后的 y y y x 1 x_1 x1。因此, e y e_y ey e x 1 e_{x_1} ex1 的散点图即可反映当控制了 X 2 X_2 X2 之后, x 1 x_1 x1 y y y 的关系。

连享会计量方法专题……

1.2 Stata 实现

接下来,我们用 Stata 进一步解释上述原理。

首先,引入数据,并进行基本回归。

sysuse "auto.dta", clear //导入数据
rename (price length weight) (Y X1 X2)
reg Y X1 X2

其基本结果如下。

      Source |       SS           df       MS      Number of obs   =        74
-------------+----------------------------------   F(2, 71)        =     18.91
       Model |   220725280         2   110362640   Prob > F        =    0.0000
    Residual |   414340116        71  5835776.28   R-squared       =    0.3476
-------------+----------------------------------   Adj R-squared   =    0.3292
       Total |   635065396        73  8699525.97   Root MSE        =    2415.7

------------------------------------------------------------------------------
           Y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
          X1 |  -97.96031    39.1746    -2.50   0.015    -176.0722   -19.84838
          X2 |   4.699065   1.122339     4.19   0.000     2.461184    6.936946
       _cons |   10386.54   4308.159     2.41   0.019     1796.316    18976.76
------------------------------------------------------------------------------

我们可以看到,X1 的系数为 -97.96031,标准误为 39.175。

接下来,我们利用 Frisch-Waugh Theorem 部分回归的原理展示 X1 系数是如何得到的。

第一步,剔除控制变量 X2y 的影响,并保存剩余部分的 y

reg Y X2
predict ey2, res 

第二步,剔除控制变量 X2X1 的影响,并保存剩余部分的 X1

reg X1 X2
predict e12, res

第三步,将剩余部分的 y 对剩余部分的 X1 做回归。

reg ey2 e12 

结果如下。我们可以看到 e12 的系数为 -97.96031,与执行 reg Y X1 X2X1 的系数一致。

. reg ey2 e12 

      Source |       SS           df       MS      Number of obs   =        74
-------------+----------------------------------   F(1, 72)        =      6.34
       Model |  36491343.3         1  36491343.3   Prob > F        =    0.0140
    Residual |   414340116        72  5754723.83   R-squared       =    0.0809
-------------+----------------------------------   Adj R-squared   =    0.0682
       Total |   450831459        73  6175773.41   Root MSE        =    2398.9

------------------------------------------------------------------------------
         ey2 |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
         e12 |  -97.96031    38.9016    -2.52   0.014    -175.5092   -20.41139
       _cons |   1.88e-12   278.8665     0.00   1.000    -555.9103    555.9103
------------------------------------------------------------------------------

连享会计量方法专题……

2. 图示部分回归图: avplot 与 avplots 命令

avplot 可以实现在控制 X 2 X_2 X2 后,观测 y y y X 1 X_1 X1 的关系。该命令的语句十分简洁:

 avplot indepvar [, avplot_options]

其中,

indepvar 是部分回归的解释变量

2.1 avplot 与 twoway scatter 异同分析

我们在第一部分介绍并用 Stata 展示了部分回归的基本原理。如果想利用 twoway scatter 命令绘制散点图展示 reg Y X1 X2 的结果,那么可以采用命令

twoway (scatter ey2 e12)(lfit ey2 e12)

结果如下

Frisch-Waugh定理与部分回归图:图示多元线性回归的系数_第4张图片

但是,运用 twoway scatter 直观展示回归结果并非效率之举,因为之前要先做回归,并保存结果。avplot 命令则可以一次实现上述操作。命令如下

reg Y X1 X2
avplot X1

Frisch-Waugh定理与部分回归图:图示多元线性回归的系数_第5张图片

我们会发现两幅图别无二致,但 avplot 命令生成的散点图包含了更多与回归结果有关的信息,例如系数、标准误以及 t-统计量。

2.2 一个更为具体的例子

下面,以一个例子来解释在实证中如何运用 avplot 命令。

  • 数据的导入
use https://stats.idre.ucla.edu/stat/stata/webbooks/reg/crime

各变量的具体含义如下:

. d

variable name   type    format     label      variable label
------------------------------------------------------------------------------------------------------------
sid             float   %9.0g                 
state           str3    %9s                   
crime           int     %8.0g                 violent crime rate
murder          float   %9.0g                 murder rate
pctmetro        float   %9.0g                 pct metropolitan
pctwhite        float   %9.0g                 pct white
pcths           float   %9.0g                 pct hs graduates
poverty         float   %9.0g                 pct poverty
single          float   %9.0g                 pct single parent
------------------------------------------------------------------------------------------------------------

我们可以看到,这个数据主要记录了不同州的犯罪率的相关资料。

数据结构如下

. list in 1/10

     +-------------------------------------------------------------------------------+
     | sid   state   crime   murder   pctmetro   pctwhite   pcths   poverty   single |
     |-------------------------------------------------------------------------------|
  1. |   1      ak     761        9       41.8       75.2    86.6       9.1     14.3 |
  2. |   2      al     780     11.6       67.4       73.5    66.9      17.4     11.5 |
  3. |   3      ar  r593     10.2       44.7       82.9    66.3        20     10.7 |
  4. |   4      az     715      8.6       84.7       88.6    78.7      15.4     12.1 |
  5. |   5      ca    1078     13.1       96.7       79.3    76.2      18.2     12.5 |
     |-------------------------------------------------------------------------------|
  6. |   6      co     567      5.8       81.8       92.5    84.4       9.9     12.1 |
  7. |   7      ct     456      6.3       95.7         89    79.2       8.5     10.1 |
  8. |   8      de     686        5       82.7       79.4    77.5      10.2     11.4 |
  9. |   9      fl    1206      8.9         93       83.5    74.4      17.8     10.6 |
 10. |  10      ga     723     11.4       67.7       70.8    70.9      13.5       13 |
     +-------------------------------------------------------------------------------+

利用这个数据,我们希望探究州犯罪率 (crime) 的影响因素。crime 是 100,000 人中罪犯的个数。直觉来看,我们认为大都市比例 (pctmetro),贫穷(poverty),以及单亲父母比例(single)都会影响所在州的犯罪率(crime)。

  • 绘制散点图

然后,我们绘制散点图直观观测解释变量与被解释变量的关系。

scatter crime pctmetro, mlabel(state)
scatter crime pctwhite, mlabel(state)
scatter crime single, mlabel(state)

Frisch-Waugh定理与部分回归图:图示多元线性回归的系数_第6张图片

从这张图我们可以直观看出,一个州的大都市比例越高,那么犯罪率就越高。由此,我们预估,若将犯罪率 crime 对大都市比例 pctmetro 做回归,那么 pctmetro 的系数应该为正。

Frisch-Waugh定理与部分回归图:图示多元线性回归的系数_第7张图片

从这张图我们可以直观看出,一个州的贫穷人口比例越高,那么犯罪率就越高。由此,我们预估,若将犯罪率 crime 对贫穷人口比例 poverty 做回归,那么 poverty 的系数应该为正。

Frisch-Waugh定理与部分回归图:图示多元线性回归的系数_第8张图片

从这张图我们可以直观看出,一个州的单身父母比例越高,那么犯罪率就越高。由此,我们预估,若将犯罪率 crime 对单身父母比例 single 做回归,那么 single 的系数应该为正。

上述图表的绘制并未控制其他变量的影响,因此我们所得出的预估也只是粗糙的。比如,单身父母的产生可能源于较低的收入水平或者和生活地区条件有关。因此,如果控制了 poverty 以及 pctmetro 之后,crimesingle 的关系可能会发生变化。一个合理的猜想是,可能控制其他变量后,二者在图表中的相关性不会如此明显。

  • 回归分析

接下来,我们利用 reg 进行基本的回归分析。

. regress crime pctmetro poverty single

      Source |       SS           df       MS      Number of obs   =        51
-------------+----------------------------------   F(3, 47)        =     82.16
       Model |  8170480.21         3   2723493.4   Prob > F        =    0.0000
    Residual |  1557994.53        47  33148.8199   R-squared       =    0.8399
-------------+----------------------------------   Adj R-squared   =    0.8296
       Total |  9728474.75        50  194569.495   Root MSE        =    182.07

------------------------------------------------------------------------------
       crime |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
    pctmetro |   7.828935   1.254699     6.24   0.000     5.304806    10.35306
     poverty |   17.68024    6.94093     2.55   0.014     3.716893     31.6436
      single |   132.4081   15.50322     8.54   0.000     101.2196    163.5965
       _cons |  -1666.436    147.852   -11.27   0.000    -1963.876   -1368.996
------------------------------------------------------------------------------

上图所展示的回归结果基本符合我们通过观察散点图所做出的预判。pctmetro 的系数为 7.829,并且在 1% 的显著性水平上显著。其经济学含义为,当大都市比例增加 1% 时,犯罪率会增加 0.00783%。poverty 的系数为 17.680,并且在 5% 的显著性水平上显著。

其经济学含义为,当贫穷人口所占比例增加 1% 时,犯罪率会增加 0.0177%。single 的系数为 132.408,并且在 1% 的显著性水平上显著。其经济学含义为,当单身父母的比例增加 1% 时,犯罪率会增加 0.132%。

  • 部分回归图

得到回归结果之后,我们绘制部分回归图,以期观测在控制其他变量后,犯罪率 crime 与各解释变量之间的关系。

avplot single, mlabel(state)

Frisch-Waugh定理与部分回归图:图示多元线性回归的系数_第9张图片

crimesingle 的部分回归图为例。我们可以看到,纵坐标为 crime 在控制其他变量 (povertypctmetro)之后的条件均值,而横坐标为控制其他变量(povertypctmetro)之后 single 的条件均值。

此外,我们可以发现,该表完美得展现了 crimesingle 部分回归的结果,不论是系数,标准误,或者 t-统计量,都与回归的结果完全一致。

我们再与散点图进行比较,可以发现,虽然基本趋势仍保持不变,但是散点图明显更为陡峭。这也说明之前的猜测是合理的。当控制其他变量后,直观来看,crimesingle 的相关性就不是那么明显了。

此处,介绍另一个好用的命令 avplots。该命令可以将不同的部分回归图合并为一张图表输出。如下,直接键入

avplots

我们可以得到下图。

Frisch-Waugh定理与部分回归图:图示多元线性回归的系数_第10张图片

这一张图输出了三张部分回归图。与 crimesingle 的部分回归图相同,crimepctmetro, poverty 的部分回归图分别完美展现了 crimepctmetro 以及 poverty 部分回归的结果。

3. 带置信区间的部分回归图 avciplotavciplots

若希望绘制带置信区间的部分回归图,那么可以利用 avciplotavciplots 命令。该命令的基本语法与 avplot 以及 avciplots 基本一致,只是允许绘制置信区间。

  • 命令的安装
ssc install avciplot
  • 带置信区间的部分回归图

运行如下命令,我们即可得到一张包含三个部分回归图的汇总图表。而每个部分回归图还绘制了置信区间。

avplots

Frisch-Waugh定理与部分回归图:图示多元线性回归的系数_第11张图片

如上图所示,红色虚线之间的部分则为置信区间。

4. 面板数据的部分回归图 xtavplot

处理面板数据时,我们需要考虑固定效应。因此,用 Stata 绘制面板数据的部分回归图时,我们选用的命令不同于上,而使用针对面板数据的命令,xtavplot。但其基本语句与 avplot 十分类似。

 xtavplot indepvar [, options]

其中,

indepvar 是部分回归的解释变量

generate (exvar eyvar) 允许对残差变量,也就是剔除控制变量影响后的变量,进行保存

ciunder 允许加入置信区间

ciplot() 允许特别设定置信区间的绘制方法

  • 数据导入
webuse nlswork

各变量的具体含义如下

. d
variable name   type    format     label      variable label
------------------------------------------------------------------------------------------------------------
idcode          int     %8.0g                 NLS ID
year            byte    %8.0g                 interview year
birth_yr        byte    %8.0g                 birth year
age             byte    %8.0g                 age in current year
race            byte    %8.0g      racelbl    race
msp             byte    %8.0g                 1 if married, spouse present
nev_mar         byte    %8.0g                 1 if never married
grade           byte    %8.0g                 current grade completed
collgrad        byte    %8.0g                 1 if college graduate
not_smsa        byte    %8.0g                 1 if not SMSA
c_city          byte    %8.0g                 1 if central city
south           byte    %8.0g                 1 if south
ind_code        byte    %8.0g                 industry of employment
occ_code        byte    %8.0g                 occupation
union           byte    %8.0g                 1 if union
wks_ue          byte    %8.0g                 weeks unemployed last year
ttl_exp         float   %9.0g                 total work experience
tenure          float   %9.0g                 job tenure, in years
hours           int     %8.0g                 usual hours worked
wks_work        int     %8.0g                 weeks worked last year
ln_wage         float   %9.0g                 ln(wage/GNP deflator)
------------------------------------------------------------------------------------------------------------
Sorted by: idcode  year
     Note: Dataset has changed since last saved.

我们可以看到该数据包含了受访者的基本个人信息,教育信息以及工作信息。数据结构如下。

  • 固定效应回归

我们希望探究工资与工作年限的关系,并利用固定效应模型进行回归分析。

. xtreg ln_w ttl_exp age c.age#c.age not_smsa south, fe

Fixed-effects (within) regression               Number of obs     =      1,000
Group variable: idcode                          Number of groups  =        163

R-sq:                                           Obs per group:
     within  = 0.1679                                         min =          1
     between = 0.2150                                         avg =        6.1
     overall = 0.1843                                         max =         15

                                                F(5,832)          =      33.57
corr(u_i, Xb)  = 0.1188                         Prob > F          =     0.0000

------------------------------------------------------------------------------
     ln_wage |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
     ttl_exp |    .042675   .0055722     7.66   0.000     .0317377    .0536124
         age |   .0126192   .0131824     0.96   0.339    -.0132556    .0384939
             |
 c.age#c.age |  -.0003629   .0002166    -1.68   0.094    -.0007881    .0000623
             |
    not_smsa |  -.0487662   .0714594    -0.68   0.495    -.1890281    .0914957
       south |  -.0905245   .0997515    -0.91   0.364    -.2863187    .1052696
       _cons |   1.535607   .1934652     7.94   0.000      1.15587    1.915345
-------------+----------------------------------------------------------------
     sigma_u |  .34777879
     sigma_e |  .27590435
         rho |  .61373148   (fraction of variance due to u_i)
------------------------------------------------------------------------------
F test that all u_i=0: F(162, 832) = 7.55                    Prob > F = 0.0000

在这个固定效应回归中,我们控制了年龄 (age),年龄的交互(c.age#c.age),非来自大都市的虚拟变量(not_smsa)以及来自南方的虚拟变量(south)。

回归结果如上所示。我们可以看到,工作年限(ttl_exp)的系数为 0.043,且在 1% 的显著性水平上显著。其经济学含义为,当工作年限增加 1 年时,工资增加 4.27%。这说明,工作年限与工资水平显著正向相关。

  • 部分回归图

下面,我们用 xtavplot 命令来绘制该面板数据的部分回归图。因为我们最关心的解释变量就工作年限(ttl_exp),因此绘制一张部分回归图即可。

xtavplot ttl_exp, ciunder

Frisch-Waugh定理与部分回归图:图示多元线性回归的系数_第12张图片

如上图所示。其纵轴为控制了其他控制变量后,ln(wage/GNP deflator) 的条件均值。其横轴为控制了其他控制变量后,total work experience 的条件均值。

红色实线为拟合的部分回归线。我们可以看到,其系数、标准误以及 t-统计量都与部分回归中 ttl_exp 的一致。

通过设置 ciunder,部分回归图可以加入置信区间,即为图中的红色虚线部分。

5. 总结

这篇推文介绍了如何在 Stata 中绘制部分回归图。具体而言,我们介绍了三个命令:avplotavciplot,以及xtavplot

连享会计量方法专题……

关于我们

  • Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。
  • 公众号推文同步发布于 CSDN-Stata连享会 、简书-Stata连享会 和 知乎-连玉君Stata专栏。可以在上述网站中搜索关键词StataStata连享会后关注我们。
  • 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
  • Stata连享会 精品专题 || 精彩推文

联系我们

  • 欢迎赐稿: 欢迎将您的文章或笔记投稿至Stata连享会(公众号: StataChina),我们会保留您的署名;录用稿件达五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。您也可以从 连享会选题平台 → [002_备选主题] 中选择感兴趣的题目来撰写推文。
  • 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
  • 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
  • 联系邮件: [email protected]

往期精彩推文

  • Stata连享会推文列表
  • Stata连享会 精品专题 || 精彩推文

点击此处-查看完整推文列表


image

你可能感兴趣的:(stata绘图,回归分析)