1 什么是固定效应

我们经常会往模型中加入一系列虚拟变量作为控制变量以达到控制某些特征的目的,这些虚拟变量就叫做固定效应。比如加行业固定效应、年份固定效应、地区固定效应,实则都是加入一连串的行业/年份/地区虚拟变量作为控制变量,以达到对行业/年份/地区特征的控制。

对于一般的双向固定效应模型,估计方法仍然是普通最小二乘法,基本形式是:

其中Xit是我们关注的核心解释变量或处理变量,Zit是一组控制变量。ui和vt是个体效应和时期效应,二者分别用于控制个体层面不可观测的非时变的因素和同一年份不随个体变化的因素。

2 “个体固定效应模型”和“双向固定效应模型”

2.1 个体固定效应模型

将个体固定效应控制至所研究的最低层面,就构成我们常说的个体固定效应模型。(因为在本领域以公司研究为主,因此通常就以个体固定效应代指公司个体固定效应) 控制个体固定效应有两种理解方法:

  • 组内离差;

  • 类比行业固定效应,在模型中加入公司个体固定效应以控制个体异质性。因此,控制个体固定效应的前提,数据必须是面板数据。否则加入公司特征虚拟变量后,每个公司维度只有一个观测值,是无法进行模型估计的。

2.2 双向固定效应模型

因为公司研究经常使用公司的年度数据,因此在个体固定效应模型的基础上,我们会加入年份固定效应来控制时间变化趋势,就是常说的双向固定效应模型。

3 何时需要加入个体固定效应?

3.1 遗漏变量引起的内生性问题

3.2 如何缓解此类内生性问题?

3.2.1 控制SEX变量

只要我们把SEX给控制住了,那么样本之间的比较就缩小到同性别的观测值维度上,此时可以近似认为Y的不同是由于X引起的,而不是SEX的干扰

3.2.2 加入个体固定效应

理论上而言,只要我们控制的变量足够多,就不会有此类问题。

因为把所有可能共同遗漏的变量全部控制起来,就能保证样本中除了X、Y不一样之外,其余特征均相同(此时可以称之为自然实验)。

但事实上,我们无法控制不可观测变量,再者我们也无法穷尽控制变量。遗漏变量将很可能产生内生性问题。 此时我们可以

加入个体固定效应,一股脑的直接把不随时间变化的公司个体异质性完全控制住

3.3 个体固定效应模型的适用

3.3.1 只有面板数据,才可能会有同一个体具有多个观测值,才能能够进行比较。

3.3.2 数据的变异性

数据中需要有足够的信息,估计才能有效,因此数据要有变化,即计量经济学中所提到的变异性。与上个问题相类似,假使我有面板数据了,但是同一个个体在年度之间的变化并不明显,甚至可能几乎没有差别(组内变异性很小);反而是公司和公司之间的差别更大(组件变异性强),此时,如果加入个体固定效应,估计的其实是组内变异性很小(信息量也就少)。此时,需要根据自己的研究问题和数据情况做出取舍

3.3.3 个体效应究竟是否存在?

对于这个问题,通常需要进行豪斯曼检验,或者F检验,来确定使用随机效应模型(RE)、固定效应模型(FE)抑或不控制个体固定效应(POLS)。但实际操作中,这些检验都是不报告的,最简单的方法就是不管三七二十一,直接上固定效应模型(FE),因为FE总是有效的;

那为什么大多数文献通常用的是混合OLS(POLS),仅控制到行业层面呢?很可能是控制到个体层面结果不好,仅此而已;

而随机效应模型(RE)则在公司研究领域较少出现,一般不用。

4 Stata实现

因为我们常用的都是公司年度数据,因此以双向固定效应模型为例:

4.1 LSDV法(Least squares dummy variable)

4.1.1 模型


注意,若有i个个体,则要添加i-1个代表个体效应的0-1变量,否则会有多重共线性(已知任意i-1个个体,剩下的都能预测出)。那被去掉的第i个个体的个体效应如何体现呢?就通过β0来体现,实际上,对于每一个个体,都有唯一的截距项体现其个体效应。

对于时间效应,如果样本是以天为单位的股票数据,day的范围跨越了365天,用LSDV就会生成364个虚拟变量,导致结果十分冗长,此时可以用固定效应模型(4.2)来解决这一问题。

4.1.2 stata命令

* LSDV法
reg y x controls i.stkcd i.year, cluster(stkcd) // 以”i.“形式加入一系列虚拟变量,但是不生成这些虚拟变量。模型存在双因素效应
reg y x controls i.stkcd, cluster(stkcd) // 模型存在个体效应
reg y x controls i.year, cluster(stkcd) // 模型存在时间效应
xi: reg y x controls i.stkcd i.year, cluster(stkcd) // 加入xi,就是在加入虚拟变量的基础上还会创建这些虚拟变量,个人一般不用。* 组内估计法
xtset stkcd year // 需要先设定面板数据
xtreg y x controls i.year, fe robust // fe代表固定效应模型* 其他方法
areg、reghdfe等,后续比较其特点

因为数据往往存在异方差、自相关等问题,导致估计的标准误不准确,所以我们会使用稳健标准误来替代原始标准误。如代码中使用的**robust(异方差稳健标准误) 和 cluster(聚类文件标准误)**代表的是采用稳健标准误的不同形式。其中reg+cluster(stkcd) 等价于 xtreg,fe + robust,是目前论文中常用的比较稳健的标准误了,同样,也是比较难显著。稳健和显著很难两全。后面会介绍我对这些robust、cluster、vce(cluster)等option的理解;

通过上述分析得知,没有生成虚拟变量的个体(如个体1)的个体效应,通过常数项(结果中的_cons)体现

4.2 固定效应模型fixed effects model

4.2.1 模型

思路:减去组内平均值,消除个体效应

4.2.1.1 存在个体效应

step1 以每个个体为一组,求自变量和因变量的平均值,得到没有时间标识的平均值



①是自变量的平均值,求法同因变量
②是每个个体效应的平均值,由于ui不随时间变化,因此平均值就为ui
③是其他效应的平均值,求法同因变量

step2 作差剔除个体效应ui,并OLS回归

4.2.1.1 存在时间效应

step1 以每个时间为一组,求自变量和因变量的平均值,得到没有个体标识的平均值
step2 作差剔除时间效应vt,并OLS回归

4.2.1.1 存在双因素效应

step1 以每个个体为一组,求自变量和因变量的平均值,得到没有个体标识的平均值

注意,对每一个个体平均来说,得到的v拔都等于时间效应的平均值,即(v1+v2+……+vT)/T

step2 以每个时间为一组,求自变量和因变量的平均值,得到没有时间标识的平均值

注意,对每一个时间平均来说,得到的u拔都等于时间效应的平均值,即(u1+u2+……+uT)/N

step3 对所有数据求平均值,则Y Xi u v均只能得到一个平均值,即Y拔 Xi拔 u拔 v拔
step4 剔除时间效应、个体效应平均值,加上总体平均值,并用OLS回归

4.2.2 stata命令

* 法1 xtreg
xtset stkcd year // 需要先设定面板数据
xtreg y x controls, fe  robust // 单因素个体效应模型
xtreg y x controls, fe i(year) robust // 单因素时间效应模型
xtreg y x controls i.year, fe robust // xtreg不能单独进行双因素模型回归,只能和之前的LSDV方法结合* 法2 reghdfe
reghdfe y x controls, absorb(stock, year)

5 命令比较——用reg、xtreg、areg还是reghdfe?

三种命令自变量结果t值和系数都是一样的.
区别就在于结果报告的冗长程度。其中,reg最为朴实无华,会全部报告

5.3 reg和reghdfe(LSDV)

5.3.1 reg(普通估计)

  • reg是最为朴实无华的命令,无论需要控制什么固定效应,直接往模型中以控制变量形式加入即可,Stata均会报告其回归系数。想知道被个体固定效应吸收掉的变量的估计系数用reg

5.3.2 reghdfe(多维估计,个人非常喜欢的命令)

  • reghdfe主要用于实现多维固定效应线性回归。
  • 有些时候,我们需要控制多个维度(如城市-行业-年度)的固定效应, 此时,areg的absorb选项中只能加入一个固定效应,如果要加入更多固定效应,除非只能以i.形式加入控制变量,但是这样就与reg、xtreg一样,显的冗余了,且运行速度会很慢;
  • reghdfe解决的就是这一痛点,其在运行速度方面远远优于xtreg等命令。

5.2 xtreg, fe(组内估计)

  • xtreg, fe是固定效应模型的官方命令,使用这一命令估计出来的系数是最为纯正的固定效应估计量(组内估计量)

  • 在使用xtreg命令之前,首先需要使用xtset命令进行面板数据声明,定义截面(个体)维度和时间维度;

  • xtreg实现个体固定效应估计必须要跟fe,如果不跟fe,默认为采用随机效应模型进行估计(re)

  • 对于不随时间变化的个体异质性都会被fe吸收,比如SOE一般不随时间变化,个体固定效应实际上已经包含了SOE的信息,所以采用xtreg, fe后,SOE将会出现“omit”,表示由于多重共线性被自动省略了。

  • 如果要额外控制其他固定效应,必须要在控制变量中加入该效应,比如我需要额外控制年份、地区,命令应当誊写为:

xtreg invest mvalue kstock i.province i.year, fe

6 怎么检验使用固定效应模型还是混合模型


当固定效应存在时用固定效应模型
那么怎么判断固定效应存在→F检验

6.1 通过F检验判断

6.1.1 单因素效应直接看P值

在固定效应模型结果的最下方,有F值的大小和P值,如P=0.0000<0.05,拒绝原假设→适用固定效应模型

6.1.2 双因素效应


双因素效应结果最下方的P值代表个体效应,仅能用于判断是否存在个体效应
怎么检验时间效应呢?使用stata命令testparm,检验所有的时间虚拟变量系数是否都为0。如下,P=0.0742>0.05,不能拒绝原假设,即不存在时间效应。

testparm i.year  //检验所有的时间虚拟变量系数是否都为0

本文参考:
【Stata笔记01期】固定效应模型与Stata实现 https://mp.weixin.qq.com/s/CW766iT3XhwZGj8SH6d-2Q
https://mp.weixin.qq.com/s/fFI0RX9zoYWp7Elku-tXPA
【Stata笔记02期】估计固定效应,用reg、xtreg、areg还是reghdfe?
面板数据6 固定效应:LSDV、固定效应原理和Stata指令、F检验(视频 https://www.bilibili.com/video/BV1H3411u7YV

02 固定效应模型与Stata实现相关推荐

  1. Stata——固定效应模型、随机效应模型、混合效应模型(区别、实例)

    目录 1 固定效应模型概念(Fixed Effects Model) 1.1  stata命令 1.1.1 LSDV法(Least squares dummy variable) 1.1.2 固定效应 ...

  2. stata回归?固定效应模型(组内变换OR LSDV最小二乘法)

    面板数据分析与Stata应用笔记整理自慕课上浙江大学方红生教授的面板数据分析与Stata应用课程,笔记中部分图片来自课程截图. 笔记内容还参考了陈强教授的<高级计量经济学及Stata应用(第二版 ...

  3. Stata:如何处理固定效应模型中的单期数据-xtfesing

    全文阅读:Stata:如何处理固定效应模型中的单期数据-xtfesing| 连享会主页 目录 1. 简介 2. 理论背景 3. Stata 实操 4. 参考文献 5. 相关推文 1. 简介 固定效应模 ...

  4. R语言 面板数据分析 plm包实现(一) ——LSDV和固定效应模型

    系列文章 R做面板数据分析:R语言 面板数据分析 plm包实现(一) --LSDV和固定效应模型 如果想看随机效应模型怎么做,参见这篇文章 R语言 面板数据分析 plm包实现(二)--随机效应模型 如 ...

  5. 随机效应估算与固定效应估算_固定效应模型及估计原理说明.doc

    . . 固定效应模型的估计原理说明 在面板数据线性回归模型中,如果对于不同的截面或不同的时间序列,只是模型的截距项是不同的,而模型的斜率系数是相同的,则称此模型为固定效应模型.固定效应模型分为三类: ...

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

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

  7. FE!FE!面板固定效应模型:你用对了吗

    全文阅读:FE!FE!面板固定效应模型:你用对了吗| 连享会主页 1. 导言 2. 固定效应模型及其作用概述 2.1 解决遗漏变量和影响标准误 2.2 几乎无组内变异的解释变量 2.3 FE 与 剩余 ...

  8. 使用python实现固定效应模型

    固定效应vs随机效应 参考:统计学中的「固定效应 vs. 随机效应」 - 知乎 (zhihu.com) FE(固定效应,异质性[非随机]截距):由于面板数据有个体和时间两个维度,所以FE也分为个体固定 ...

  9. 随机效应估算与固定效应估算_固定效应模型的估计原理说明.pdf

    固定效应模型的估计原理说明 在面板数据线性回归模型中,如果对于不同的截面或不同的时间序列,只是 模型的截距项是不同的,而模型的斜率系数是相同的,则称此模型为固定效应模 型.固定效应模型分为三类: 1. ...

最新文章

  1. Python之Numpy数组拼接,组合,连接
  2. 源码阅读心得11-13
  3. 科罗拉多州立大学计算机科学专业,美国科罗拉多州立大学有哪些好专业?
  4. UI组件之AdapterView及其子类(二)GridView网格视图的使用
  5. Spring WebClient和Java日期时间字段
  6. mysql 学习笔记13 查询语句强化
  7. 四月份面试题汇总(一)
  8. 海康威视监控摄像头接入到微信直播流程
  9. 【数据分析方法论】关于思维、营销、咨询、绩效管理的一些经典分析框架
  10. redis c++接口
  11. cadence 通孔焊盘_过孔上焊盘,电源笑开颜
  12. phpstorm配置vcs自动上传代码
  13. 盘点中美自动驾驶卡车领域公司, 先进的技术和落地的场景
  14. 优盘里文件夹变成html,U盘里的文件全部变成了快捷方式,怎么破?
  15. android url inputstream,Android HttpUrlConnection getInputStream引发NullPoint...
  16. 大数据的架构设计与未来
  17. “达观杯”文本智能处理挑战赛
  18. 8年iOS架构师告诉你,为什么iOS现在不行了!
  19. Cris 的Python日记(五):Python 数据结构之元祖,字典和集合
  20. 注册URL Scheme步骤以及打开其他App

热门文章

  1. 小米电视怎么下载软件?用一起看TV宅家不无聊
  2. 500G 史上最全的JAVA全套教学视频网盘
  3. matlab求解方程小程序,自学Matlab必备的60个小程
  4. 什么是redis?为什么要用redis?(redis的概述)
  5. 基于反馈结构的窄带宽陷波滤波器
  6. 个人精心整理的前端学习开发实用的网站
  7. [概念]图像分割的历史 + UNet-Family
  8. python数据处理--按照数据差值大小进行聚类(归类)
  9. vim 删除文件单行或多行内容
  10. Windows系统怎样配置PHP环境