线性回归的结果解释 II:函数形式变化的影响

2024-08-01 17:06:06 浏览数 (2)

在应用计量经济分析中,有两个基础且重要问题需要关注:

  1. 改变因变量和(或)自变量的测度单位(the units of measurement)对 OLS 估计量将产生什么样的影响?
  2. 如何在回归分析中纳入常见的函数形式,以及函数形式变化对回归结果的解释有何影响?

本篇文档是对第二个问题的解答,数据处理和分析结果在Stata中完成。对第一个问题的回答已在先前一篇文档中讨论过:线性回归的结果解释 I:变量测度单位变换的影响。希望通过两篇精简的技术短文,对上述两个关键问题做出深入浅出的回答。

背景

因变量(Y)与自变量(X)间的线性关系并非一般性特征,引入非线性(nonlinearities)关系很有必要。在应用研究中,最常见的非线性关系通常有两种:

(1)回归方程中的因变量或自变量以对数形式(logarithmic form)出现;

(2)回归方程中的因变量和自变量均以对数形式出现。

不同的转换形式及其组合不是拼图游戏,而是帮助我们在应用分析中获得更可解释的结果。

1. 仅对因变量取对数形式


结合教育回报率的经典示例进行讨论。

个体受教育年限(Years of education)对其小时工资(Hourly wage)的影响可通过如下所示的简单回归模型进行刻画,斜率 beta_1 表示受教育年限每增加1年,个体的平均小时工资水平增加 beta_1 个单位,这个增加的量对教育年限为 1 年或是 20 年的个体而言是一样的。然而,对受到1年教育和受到 20 年教育的人而言,再增加1年的教育经历对其工资变化的影响很可能是不一样的。

wage=beta_0 beta_1 times edu u

将因变量取对数后重新建立如下简单回归模型:

log(wage)=beta_0 beta_1 times edu u

此时,回归系数 β_1 表受示教育程度(edu)每增加1年,“小时工资对数” 的变化程度,其实质为 wage 的增长率,也被称作半弹性(semi-elasticity)系数。为何如此呢?下面的式子为理解半弹性系数的关键!下式在经济增长和财务管理中都是常见的,这里不做赘述,但着实要强调一下它的重要性。例如,在经济增长的教科书中,数学附录中一般都会在这部分给出证明并强调:the derivative with respect to time of the log of some variable is the growth rate of that variable,即对某个变量的对数值关于时间求导可得到该变量的增长率(Jones & Vollrath, 2013)。这里只是把时间替换成为了 edu,求导可得:

begin{aligned} frac {dlog(wage)}{dedu} & = frac {dlog(wage)cdot dwage}{dwage cdot dedu} \ &= frac{1}{wage} times dot{wage} \ &= beta_1 end{aligned}

其中,dot{wage} = Delta wage 。Wooldridge(2016)将上面所描述的关系进一步表示为:(100 times beta_1) Delta edu approx %Delta wage ,以此获得受教育年限每增加一单位所能带来的小时工资的百分比变化。此时,增加1单位的教育所带来的工资变化百分比是一样的。不一样的是,每增加一单位教育所带来的工资变化随着教育程度的增加而增加,即教育回报递增(increasing returns to education)。

下表为回归结果,从第(2)列 educ 的系数可知,受教育程度每增加 1 年,薪资收入增加 8.27%( 100×0.0827 %)。

代码语言:javascript复制
*制作下表的代码
   use "http://fmwww.bc.edu/ec-p/data/wooldridge/wage1.dta", clear
   
   reg wage educ
   est store level_level

   reg lwage educ
   est store log_level

   esttab, mtitles("Level-Level" "Log-Level")    ///
		   title(表:教育回报率)                  ///
           se scalars(N r2_a)                   ///
           star(* 0.10 ** 0.05 *** 0.01) replace      
           
/*表:教育回报率
--------------------------------------------
                      (1)             (2)   
              Level-Level       Log-Level   
--------------------------------------------
educ                0.541***       0.0827***
                 (0.0532)       (0.00757)   

_cons              -0.905           0.584***
                  (0.685)        (0.0973)   
--------------------------------------------
N                     526             526   
r2_a                0.163           0.184   
--------------------------------------------
Standard errors in parentheses
* p<0.10, ** p<0.05, *** p<0.01 */              

工资与教育的函数关系也可以通过指数变换进行刻画:

wage= e^{beta_0 beta_1 times edu u}
代码语言:javascript复制
*将上式绘制为下图
   twoway function y=exp(x*0.0827 0.584) , range(0 18)  ///
          xtitle("edu") ytitle("wage")                  ///
          plotregion(fcolor(white)) graphregion(fcolor(white) lcolor(white)) 

2. 同时对因变量和自变量取对数形式


上面介绍了只改变因变量形式的半弹性估计,现在扩展一步使其更具一般性。

因变量可以取对数形式,自变量自然也可以,只是此时依然还是半弹性估计,两者的差别仅仅在于如何解释半弹性系数。下表列示了四种对数形式变换的回归结果解释,表中“对 beta_1 的解释”是关键,对前三种变换类型我们已经能够掌握并应用,最后剩下针对弹性系数的 log-log 转换类型,该转换得到的是一个常弹性模型(a constant elasticity model)。众所周知,弹性(elasticity)是经济学中一个再强调也不为过的概念,这也决定了 log-log 变换的重要性。

再次回到先前 CEO 薪资决定因素的例子。我们试图分析CEO的薪资水平(salary)与公司销售额(sales)之间的关系,建立如下回归模型:

log(salary)=beta_0 beta_1 times log(sales) u

其中,beta_1 即为薪资的销售额弹性(the elasticity of salary with respect to sales),表示销售额变化1%,薪资变化的百分比。下表展示了自变量和因变量对数变换的四种组合,第(4)列为上式的估计结果,即公司销售额增加1%,CEO薪酬可增加0.257%。

代码语言:javascript复制
*制作下表的代码
   use "http://fmwww.bc.edu/ec-p/data/wooldridge/ceosal1.dta", clear
   reg salary sales
   est store lev_lev

   reg salary lsales
   est store lev_log

   reg lsalary sales
   est store log_lev

   reg lsalary lsales
   est store log_log

   esttab lev_lev lev_log log_lev log_log using lec05.rtf,  ///
          mtitles("lev_lev" "lev_log" "log_lev" "log_log")  ///
	      title(表.CEO薪酬决定)                              ///
          se scalars(N r2_a)                                ///
          star(* 0.10 ** 0.05 *** 0.01) replace       

/*表.CEO薪酬决定
----------------------------------------------------------------------------
                      (1)             (2)             (3)             (4)   
                  lev_lev         lev_log         log_lev         log_log   
----------------------------------------------------------------------------
sales              0.0155*                      0.0000150***                
                (0.00891)                    (0.00000355)                   

lsales                              262.9***                        0.257***
                                  (92.36)                        (0.0345)   

_cons              1174.0***       -898.9           6.847***        4.822***
                  (112.8)         (771.5)        (0.0450)         (0.288)   
----------------------------------------------------------------------------
N                     209             209             209             209   
r2_a              0.00961          0.0330          0.0747           0.207   
----------------------------------------------------------------------------
Standard errors in parentheses
* p<0.10, ** p<0.05, *** p<0.01 */

3. 变量测度单位和函数形式同时变化对结果解读的影响


在讨论过变量测度单位或是函数形式变化对回归结果解读的影响后,我们自然会联想到两者同时发生的情形。具体地,令因变量( y_i )的测度单位和取值形式同时变化,建立回归方程如下:

log(y_i)=beta_0 beta_1 times x_i u

此时,由于半弹性系数 beta_1 反应的是 x 变化 1 个单位时 y 变化的百分比,使得 y 的测度单位和半弹性系数无关。具体地,令因变量变化 c 倍,即 ccdot y_i ,上式改写如下:

begin{aligned} log(y_i) log(c) & = log(c cdot y_i) \ \ & = log(c) beta_o beta_1 cdot x_i u_i end{aligned}

这里更为严格地说明了系数为何在两番操作后依然不变。但是,截距项发生了变化,由 beta_o 变为 [log(c) beta_o]

同理,当自变量发生类似的变化时,系数同样不变,变得只是斜率。更为严格的证明过程可表示如下:

begin{aligned} & y_i = beta_o beta_1 cdot log(x_i) u_i \ \ & y_i beta_1 cdot log(c) = beta_o beta_1 cdot log(x_i) beta_1 cdot log(c) u_i \ \ & ~~~~~~~~~~~~~~~~~~~~~~~~~= beta_o beta_1 cdot log(x_i cdot c) u_i \ \ & y_i = beta_o - beta_1 cdot log(c) beta_1 cdot log(x_i cdot c) u_i end{aligned}

类似地,因变量和自变量同时发生两种变化时,我们也能够对结果的变化进行有效的分析。这里的讨论更多是一种思维练习,亦可评判我们对理解回归系数的理解是否到了炉火纯青的程度,应用分析中,变量单位和函数形式一般都是给定的,故而无需过度纠结于此。

最后,尽管我们加入了非线性元素,以上模型依然还是线性的,因为线性与否的关键在于参数 beta_0beta_1 ,而非 y 与 x 以何种形式出现。但是,各种变换又是重要的,因为对系数的解释依赖于变量的形式。大量的模型不是线性回归模型,因为参数是非线性的。例如,下式就是一个非线性回归模型:

y_i=frac{e^{beta_0 beta_1 cdot x_i u_i}}{1 e^{beta_0 beta_1 cdot x_i u_i}}

当因变量为二分类别变量时(取值0或1),y_i=pr(y_i=1)=ppr(y_i=0)=1-p,上式即为:

begin{aligned} & p_i = frac{e^{beta_0 beta_1 cdot x_i u_i}}{1 e^{beta_0 beta_1 cdot x_i u_i}} \ \ & 1- p_i =1 - frac{e^{beta_0 beta_1 cdot x_i u_i}}{1 e^{beta_0 beta_1 cdot x_i u_i}} = frac{1}{1 e^{beta_0 beta_1 cdot x_i u_i}} \ \ & frac{p_i}{1-p_i}= e^{beta_0 beta_1 cdot x_i u_i} \ \ & log(frac{p_i}{1-p_i})=beta_0 beta_1 cdot x_i u_i end{aligned}

至此,非线性模型被成功转换为一个标准的线性模型,这时系数的解释也可以对照之前的表格,其解释为% Delta y =(100beta_1)Delta x,表示 x 变化1 个单位,y 变化的百分比。这里的 y 是 frac{p_i}{1-p_i} ,统计学家将其命名为几率(Odds),即 x 变化1个单位,y 的几率发生变化的百分比。此外,e^{beta_1} 为两个 Odds 的比值,它被称为机率比(Odds Ratio)。

实际应用中,我们可以通过最大似然估计方法(MLE)对上述二元因变量模型进行估计,这就是我们常见的 Logit或Logistic 模型。换言之,要想在后续的学习和应用中科学地使用类别数据模型,关键在于前期对线性模型的深入理解。

最后,用 Wooldridge 这句话作为结尾:

For successful empirical work, it is much more important to become proficient at interpreting coefficients than to become efficient at computing formulas such as ...... . (Wooldridge, 2016 pp.40)

欢迎大家交流指正!

- - - - - - - - - -

版本记录

第一版:2023-04-25 (初稿)

0 人点赞