异质性分析:系数平滑可变模型

发布时间:2021-03-24 阅读 5139

Stata连享会   主页 || 视频 || 推文 || 知乎

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

作者:许曼曼 (中山大学)
邮箱451689616@qq.com

编者按:本文摘译自下文,特此致谢!
Source:Rios-Avila F. Smooth varying-coefficient models in Stata[J]. The Stata Journal, 2020, 20(3): 647-679. -PDF- -PPT-


目录


1. 引言

异质性是实证研究中常见的问题,以教育回报率的研究为例,异质性是指教育对不同人群收入的影响是不同的,即不同人群的教育回报率不同。解决异质性问题的常见方法是分组回归或引入交互项 (参见第 9 小节相关推文),以及推文 面板变系数模型:每家公司都有一个斜率 中介绍的方法 。

本文介绍另一种更加方便的方法—— 系数平滑可变模型 (SVCM)。这是一种半参数估计模型。该模型同时具有参数模型完整性和非参数模型灵活性的优点,因此可以更好反映问题的异质性。

2. 非参数估计模型

非参数估计模型如上式所示,其中 g() 的估计方法主要有两种:基于核函数的方法与基于转换函数的方法。

2.1 核函数方法:局部核权重估计

其中,h={hω1,hω2,,hωk} 是带宽向量,K()是核函数。

核函数给予离点 w 近的观察值更高的权重,而带宽向量 h 决定使用多少信息用于条件均值的估计。随着 k 的增加和 h 趋近于 0,用于估计的有效观察值的数量快速减少。

2.2 以原变量的转换形式 S() 与交叉项 I() 作为解释变量

其中转换函数通常是多项式或样条函数。S() 和 I() 的维度所代表的调节参数决定了估计量的准确性。但随着解释变量和维度的增加,待估系数的数量呈指数方式增加,使得模型自由度快速下降,偏误增大。

2.3 非参数估计模型的优缺点

非参数估计虽然灵活性较强,不需要设定过多假设,但缺点也较为明显:

  • “维度的诅咒”:随着解释变量与维度的增加,待估系数的数量快速增加,要求的数据集也越来越大;
  • 模型估计与检验的方法计算量很大,不适用于大样本数据;
  • 适用于大样本的与非参数模型相关的 Stata 命令较少。

因此,本文主要根据 Rios-Avila (2020) 的文章介绍一种半参数估计模型,即系数平滑可变模型 (SVCM) 及其 Stata 命令。

3. SVCM 建模与估计方法

SVCM 将解释变量 W 分为两类 W=(X,Z),其中 X 与 Y 的线性关系是基于 Z 的非线性函数,即 Y 是 Z 条件下 X 的线性函数,系数 β(Zi) 是 Z 的非线性函数。相比非参数估计,SVCM 通过设定 X 对 Y 的线性影响是基于 Z 的条件,减少了 “维度诅咒” 的影响。

与非参数模型的估计思路相似,β(Zi) 的估计方法有两种,即使用关于 Z 的局部多项式核函数和样条函数。本文介绍的模型是只有一个平滑变量的 SVCM,估计方法为核函数估计。

在本文的 SVCM 中 Z 只包含一个变量,X 是包含常数项的其他解释变量的集合。由于平滑变量只有一个,带宽向量 h 是一个常数。根据核函数的方法,得到的局部常数估计量 (LC) 为:

矩阵形式:

考虑到接近 Z 边界时 LC 估计量可能有较大的偏差,故可以使用局部线性估计量 (LL) 替代,模型由 (1) 变为下式:

式 (3) 表示近似的 yi 可以通过关于 β(z) 的线性扩展式求得,且 Zi 越接近 zi ,近似值越准确。

定义 χi={Xi(Ziz)Xi} 为 χ 的第 i 行,(Ziz)Xi 表示 Xi 中的每个变量都乘以辅助变量 (Ziz) 。那么类似于式 (2),β(z) 和 β(z)z 的局部线性估计量 (LL) 可表示为:

4. SVCM 模型选择

4.1 模型选择方法:去一法-交叉验证

SVCM 估计中最重要的参数是带宽 h。带宽越大,说明更多的观察值被使用,则估计量的方差越小,但同时模型自由度下降,估计量的偏误也越大。反之,小带宽下估计量的偏误小,但方差大。

标准的 OLS 回归就相当于选择了一个无穷大的带宽 h 以保证估计量的方差最小,但有偏。而简单地限定平滑变量为某一特定值的样本下的 OLS 回归则相当于选择一个 h=0 的带宽,方差大而偏误小。因此,通过交叉验证选择最优的带宽是必要的。有关去一法和交叉验证的介绍,参见:

根据去一法-交叉验证 (LOO-CV),最优带宽在 CV( h) 取值最小时取得:

其中,β^i(zi,h) 是给定带宽 h,除去第 i 个观察值后得到的 LOO-CV 系数估计量 β^(zi,h)y^i(h) 是对应的拟合值,ω(zi) 是用以调整 Z 分布不均问题的权重。

从上式来看,求出最优带宽似乎需要很大的计算量 (N 组系数),但实际上估计 CV(h) 不需要那么多的估计方程,原因主要有两点:

一是平滑变量虽然是连续变量,但在数据集中的记录形式往往是离散型的,因而待估系数 β^(zi,h) 比样本数少很多;

二是估计 CV(h) 不一定需要估出 β^i(zi,h),只需估 LOO 残差 e~i(h)=yiy^i(h),而该 LOO 残差可以由 SVCM 残差 e^i(h)=yiXiβ^(zi,h) 通过 leverage statistic [levi(zi,h)] 得出:

其中,levi(zi,h) 是局部估计矩阵 Hzi(h)=χ{χκh(zi)χ}1χκh(zi) 的第 i 个对角元素:

因此,定义 zpr=(z1,z2,,zJ) 为包含 Z 所有不同值且从小到大排序的向量,CV(h) 可以重写为如下式子 (估计方程数量从 N 降为 J):

若使用式 (6) 计算过程还是较慢,可以使用 block/binned LL regression 获得 CV(h) 的近似值,那么估计方程数量将更少,从 J 降为 P 。

4.2 Stata 实操-模型选择

4.2.1 命令介绍

vc_bwvc_bwalt 命令安装:

search vc_bw

vc_bwvc_bwalt 的语法结构相同:

vc_bw[alt] depvar [indervars] [if] [in], vcoeff(svar) ///
    [knots(#k) km(#km) bwi(#) trimsample(trimvar) kernel(kernel) plot]
  • depar:因变量 Y
  • indepvar:所有对 Y 有条件线性关系的解释变量 X
  • vcoeff(svar):svar 为平滑变量 Zvcoeff() 明确用于平滑可变系数估计的变量;
  • knots(#k)km(#km):可选项,表示以最小化 CV(h) 近似值的方式得出最优带宽。使用 knot(-2) 表示对平滑变量所有不同值进行交叉验证估计;
  • bwi(#):设定初始的带宽值 # 以加快寻找最优带宽的过程;
  • trimsample(trimvar):给定变量名称,生成虚拟变量以识别出用于交叉验证的子样本;
  • kernel(kernel):设置核函数以得到估计所需的权重,默认为高斯函数;
  • plot: 画出带宽 h 和与之相对应的交叉验证值 CV(h) 的关系图。

4.2.2 命令使用

以某地的月度酒驾传票数量数据集 (dui.dta) 为例。假设认为酒驾传票数量 (citations) 受到该地是否处在大学区 (college)、酒精饮料是否为税收商品 (taxes)、城市水平 (csize) 等变量的影响,若要研究不同水平下的罚款 (fines) 对于该线性关系的影响,则可以建立以罚款为平滑变量的 SVCM。

*数据地址:https://gitee.com/arlionn/data/blob/master/data01/dui.dta
. webuse dui.dta
(Fictional data on monthly drunk driving citations)

. sum

  Variable |  Obs     Mean    Std. Dev.   Min    Max
-----------+----------------------------------------
     taxes |  500     .704    .4569481      0      1
     fines |  500   9.8952    .7818949    7.4     12
     csize |  500    2.006    .8434375      1      3
   college |  500     .248    .4322843      0      1
 citations |  500   22.018    9.802748      4     80

citations 为因变量,collegetaxescsize 为解释变量,fines 为平滑变量,建立系数平滑可变模型。首先,通过交叉验证获得最优带宽。

. vc_bw citations taxes college i.csize, vcoeff(fines)
Kernel: gaussian
Iteration: 0 BW:   0.5539761 CV:   3.129985
Iteration: 1 BW:   0.6870520 CV:   3.120199
Iteration: 2 BW:   0.7343729 CV:   3.119504
Iteration: 3 BW:   0.7397456 CV:   3.119497
Iteration: 4 BW:   0.7397999 CV:   3.119497
Bandwidth stored in global $opbw_
Kernel function stored in global $kernel_
VC variable name stored in global $vcoeff_

命令执行结束后,会列示出交叉验证迭代过程中的几项带宽 h 和交叉验证值 CV(h),从中可以看出,最优带宽是 0.7398。而且程序会将最优带宽、核函数、平滑变量名称等信息分别储存在名为 opbw_kernel_vcoeff_ 的宏中。

5. SVCM 模型估计与统计推断

5.1 模型估计:局部核权重估计-LL估计量

获得最优带宽 h 后,要估计模型 (3),将 h 与平滑变量值 z 带入核函数得到权重,再根据式 (4) 即可得到系数的 LL 估计量。

5.2 统计推断:方差-协方差矩阵估计

5.2.1 渐进估计

其中,D 是第 i 个元素为 e^i(h)2 的对角矩阵,文献对核回归中的 qc 尚无较多表述,通常假定 qc=1 或 qc=N{Ndim(χ)} ,其中 dim(χ) 是模型中所有需要拟合的系数数量。

与 HC2 (heteroskedasticity-consistent 2) 和 (HC3) 等价的方式,用 e^i(h)21levi(z,h) 或