这期推送将比较时间固定效应和时间趋势项的区别,并使用两种方法对模型中可能存在的trend进行识别

Note:Note:Note: 1、该文首发于微信公众号DMETP,欢迎关注;2、需要本次推送所使用的数据和代码的朋友,可以在公众号后台对话框内回复关键词trend

一、时间FE & 时间trend

LSDV法下,时间固定效应(time FE)表现为一系列的时间虚拟变量,对于特定年份year∗year^*year∗,若样本所处年份是year∗year^*year∗则记为1,否则记为0。在Stata中,这一系列的时间虚拟变量引入方式有两种:

  • 一是直接在回归命令中加入类别变量,如i.year,使用这种方式无需生成额外的变量,节约内存。
  • 二是生成额外的时间虚拟变量并加入回归命令中,如先tabulate year, gen(fe_),然后在回归命令中写入fe_*

控制时间FE的用意在于吸收时间维度上不可观测的同质性冲击的影响,即所有个体共有的时间因素,如宏观经济冲击、财政货币政策等等,假定这些因素在特定年份对不同个体的影响是一致的。此外,如果考虑到异质性,即考虑到这些因素可能对不同组别(如省、城市、行业等)的个体影响不一致,则可以在模型中引入交互FE,如行业-时间FE。这种交互FE在reghdfe命令下有两种引入方式(以行业-时间FE为例):

  • 一是首先egen ind_year = group(ind year),其次在reghdfe命令的选择项中写入absorb(ind_year)
  • 二是使用因子表达式直接在选择项中写入,如absorb(ind#year)

模型引入时间趋势项(time trend)一般有三种方法:

  • 法一:直接在回归命令中写入c.yearyear
  • 法二:假设样本数据集(而不是各个样本!)的最小年份为year_min,则首先生成trend = year - year_min + 1,然后再在模型中引入trend
  • 法三:首先bysort id (year): gen trend = _n,其中,(year)是为了保证样本按照id - year进行升序排序。其次再在回归命令中写入trend

推文利用法三生成trend,法三的缺陷在于,如果样本存续年份中断,如2012、2014、2018,法三将视这三年为连续年份,并分别记为1、2、3。

加入时间趋势项是为了控制不同个体的被解释变量可能存在的并且尚未被其他控制变量和FE所覆盖/解释的增减趋势,因为不同组别(规模、性质、政策分组、生命周期等)个体的被解释变量的时间趋势或许存在一定程度的差异,并且在控制已有的解释变量之后依然可能存在较为明显的时间趋势。

以上内容可总结为以下几点:

  • 第一,在LSDV法下时间FE为一系列的虚拟变量,而时间trend为一个变量。
  • 第二,时间FE用来吸收不随个体但随时间而变的不可观测因素冲击的影响,而时间trend则用来控制被解释变量可能存在的增减趋势。
  • 第三,时间FE本质上是包括trend了的,trend可由FE线性表出,因此如果在方程中同时加入FE和trend,trend可能由于出现多重共线性而被omitted,但是两者同时加入模型可使得估计结果更稳健
  • 第四,在整体序列较长的长面板中,很大可能需要控制时间trend对回归结果的影响。

二、时间trend的识别

下面将对模型中可能存在的时间趋势进行识别,推文提供两种思路:

  • 一是直接在回归模型中加入trend,如果trend不显著,说明不需要引入。
  • 二是在控制除trend外所有的变量及FE后,观察残差中是否仍旧存在trend,如果存在,说明被解释变量的增减趋势不能完全被变量和FE所吸收,模型须额外引入trend。

根据以上两种识别思路设计出两种识别方法:一是回归法,二是图形法。

2.1 回归法

 vers  17copy  https://www.stata-press.com/data/r17/nlswork.dta nlswork.dta, replaceclear alluse   nlswork.dta, clearxtset idcode yeargl    regst   "qui reghdfe ln_w grade age c.age#c.age ttl_exp c.ttl_exp#c.ttl_exp tenure c.tenure#c.tenure not_smsa south"gl    regopt  "absorb(idcode year) resid"********************************************************************************
**# 生成时间趋势项bys idcode (year): gen t = _n
*   gen t = year
*   gen t = year - 67  // 另外两种 t 的生成方法********************************************************************************
**# 法一:回归$regst t, $regoptdis "系数(Total) = " %6.4f _b[t] ";t值(Total) = " %6.4f _b[t] / _se[t]$regst t if race == 1, $regoptdis "系数(White) = " %6.4f _b[t] ";t值(White) = " %6.4f _b[t] / _se[t]$regst t if race != 1, $regoptdis "系数(Other) = " %6.4f _b[t] ";t值(Other) = " %6.4f _b[t] / _se[t]

运行以上代码可以观察到,无论是在总体样本、白人群体还是其他人种群体,时间趋势项t的回归系数均不显著(5%的显著水平下),且系数大小接近于0,这说明原模型中无须引入trend,trend对回归结果的干扰较小。

2.2 图形法

**# 法二:画图frame dirframe rename default aframe copy   a bframe a {$regst , $regoptpredict r, residdrop if mi(r)gcollapse (mean) r_mean = r (sd) r_sd = r, by(t)gen upper = r_mean + 1.65 * r_sdgen lower = r_mean - 1.65 * r_sdgen race1 = 2}frame b {gen race1 = (race == 1)$regst if  race1, $regoptpredict r, resid$regst if !race1, $regoptpredict r1, residreplace r = r1 if !race1drop if mi(r)gcollapse (mean) r_mean = r (sd) r_sd = r, by(race1 t)gen upper = r_mean + 1.65 * r_sdgen lower = r_mean - 1.65 * r_sd}frame a {frameappend blabel define race 0 "Other" 1 "White" 2 "Total"label values race1 race#d  ;twoway  (con r_mean t, m(o))(rcap upper lower t, msiz(vsmall)),yline(0 , lc(red))by(race1, note("") rows(1))legend(label(1 "Mean of residuals")label(2 "90% confidence interval"))xlabel(, labs(medsmall) format(%4.0f))ylabel(, labs(medsmall) format(%4.1f))xtitle("Trend") ytitle("Residuals")scheme(qleanmono)saving(time_trend, replace);#d crgraph export "time_trend.emf", replace}

以上代码的运行结果如图 1。

观察图 1可知,无论是总体、白人群体还是其他人种群体样本,回归残差的均值均在0值附近上下波动,90%的置信区间跨越了0值线,并且随着时间趋势的推移,残差均值并未表现出明显的增减趋势,这些都同样说明了原模型中无须引入trend,trend对回归结果的干扰较小。

计量模型 | 时间固定效应与时间趋势项相关推荐

  1. 时间固定效应和个体固定效应的选择_STATA固定效应的时间固定和个体固定效应估计方法、检验策略和操作步骤...

    STATA固定效应的时间固定和个体固定效应估计方法.检验策略和操作步骤 最近在研究空间动态面板模型,其中涉及到固定效应模型要确定时间固定和个体固定效应时,由于在stata中使用,查阅了很多文献最终攻克 ...

  2. R语言线性混合效应模型(固定效应随机效应)和交互可视化3案例

    最近我们被客户要求撰写关于线性混合效应模型的研究报告,包括一些图形和统计输出. 视频:线性混合效应模型(LMM,Linear Mixed Models)和R语言实现案例 线性混合效应模型(LMM,Li ...

  3. 时间固定效应和个体固定效应的选择_固定效应模型必须同时控制时间和个体吗?...

    固定效应模型fixed effects model的存在是为解决这个经典的内生性问题,即time invariant (不随时间变化的)的内生性问题存在于每个单个样本中,所以解决方式是控制单个样本.t ...

  4. 时间固定效应和个体固定效应的选择_互助问答第31期:固定效应与随机效应选择和面板数据处理...

    样本描述:各位老师好,我的论文采用的是微观面板非平衡数据(合并了3波数据,总观测值6万左右),每波观测之间约有20%的样本不同(约10%的样本流失,10%的新样本补入),因变量是连续变量,核心自变量是 ...

  5. 有时间依存效应或时间依存风险因素的生存分析

    摘要 在传统的KM或Cox回归分析中,通常我们在研究的起始点测量一个风险因素,并分析它对之后的事件发生(例如死亡事件)的影响.但是在之后的跟踪随访过程中,事情可能在变化:在基线固定的风险因素对事件发生 ...

  6. 引力模型-高维固定效应面板泊松模型

    全文阅读:https://www.lianxh.cn/news/9d7249af5b0d3.html 目录 1. 引言 2. 估计方法 2.1 IRLS 算法 2.2 泊松回归 3. ppmlhdfe ...

  7. Stata:面板数据,一般加上个体固定效应和时间固定效应

  8. python固定效应模型_熊猫或stats模型的固定效应

    有一个名为linearmodels(https://pypi.org/project/linearmodels/)的包,它具有相当完整的固定效果和随机效果实现,包括集群标准错误.它不使用高维OLS来消 ...

  9. 面板数据回归模型(固定效应、随机效应、混合回归、变系数)、面板数据AR、VAR模型

最新文章

  1. 数据流DataInput(Output)Stream 和 字节数组流 ByteArrayInput(Output) Stream
  2. matlab radiogroup,RadioGroup和CheckBox的使用 | 学步园
  3. python global用法_【python测试开发栈】python基础语法大盘点
  4. Spring Schedule关闭订单
  5. 如何使用Instruments诊断App(Swift版):起步
  6. docker 指定网卡_Docker | Docker技术基础梳理(五) Docker网络管理
  7. 使用PostgREST的配置教程
  8. java异常分类三大类_JAVA 中异常的分类
  9. $(document).ready() 与 window.onload 的区别
  10. python编程入门书籍-零基础学习Python编程,这8本书必看!
  11. 深入解析Java中的装箱和拆箱
  12. java 加锁_Java中的重重“锁”事
  13. 北大AI公开课第十课--人工智能在生命科学中的应用by碳云智能李英睿
  14. java实现微信小程序获取手机号(htts接口实现)
  15. week6 视频分镜
  16. 数据分析师的工资水平如何?
  17. BSP 工程管理实验
  18. java控制台打印输出 中文乱码 解决办法
  19. word2vec的代码注释
  20. 矩阵矩阵的维度矩阵按某一维度进行拼接

热门文章

  1. Tikhonov正则化方法在测绘领域的综述
  2. Method threw ‘java.lang.NullPointerException‘ exception. Cannot evaluate com.sun.proxy.xxx
  3. google 语音识别 VS 百度语音识别
  4. 校本课程——宝宝爱上学
  5. KB、MB、GB等和KiB、MiB、GiB等的区别
  6. 网易新闻iOS版使用的18个开源组件
  7. android 随机坐标,按键精灵安卓版如何随机坐标判断点击.在线等大神回复
  8. python,如何整体取消tab缩进【反方向缩进】
  9. 史上最简单的openshift免费空间上传代码教程!没有之一!
  10. 和求余运算巧妙结合的jns指令