固定效应vs随机效应

参考:统计学中的「固定效应 vs. 随机效应」 - 知乎 (zhihu.com)

FE(固定效应,异质性[非随机]截距):由于面板数据有个体和时间两个维度,所以FE也分为个体固定、时间固定、双固定。例如个体固定,可以类比于方差分析中把不同组别用虚拟变量来表示。我们可以使用“最小二乘虚拟变量回归法”(Least Square Dummy Variable, LSDV)来分析面板数据,那么在模型估计的时候,LSDV的做法就是给N个个体生成N – 1个0/1虚拟变量,然后将这些虚拟变量与主要的预测变量一起纳入回归方程,做OLS回归(并且常常需要计算cluster稳健标准误),结果中每个虚拟变量的系数就是个体间异质性的截距。时间固定与双固定的做法与之类似。除了LSDV,还可以使用“均值离差法”“一阶差分法”等做固定效应模型,其中,均值离差法较为常用,其做法是计算出每个个体在T个时间点上的“个体内均值”,然后用原始观测值减去个体内均值进行均值离差校正(相当于做了一个跨时间的组中心化处理;time-demeaning),最后以自变量和因变量的离差值进行回归,分析得到的结果与LSDV基本是一致的。因此总体来看,所谓固定效应FE,就是对面板数据中的不同个体或不同时间做的虚拟变量OLS回归(LSDV)。由于在多数的经济数据中,个体不可观测的异质性截距(ui)往往与解释变量(Xit)有关或相互干扰,FE的这种虚拟变量回归的做法可以很好地控制并排除那些不可观测的个体差异的影响,从而可以在一定程度上解决遗漏变量的问题,提高模型的准确性。

RE(随机效应,异质性[随机]截距):上面所说的FE允许个体异质性截距 ui 与解释变量 Xit 存在相关;相比之下,RE有着更严苛、也更难满足的假设,即假设 ui 与所有自变量 Xit 均不相关,并且 ui(残差)是一个服从正态分布的随机变量。RE模型也有相应的估计方法,例如可行广义最小二乘法(FGLS)、最大似然法(ML)等。如果使用最大似然法,其结果将与HLM随机截距模型的结果一致。

python实现固定效应模型

使用linearmodels库中的PanelOLS方法或PanelOLS.from_formula方法,所以首先需要安装linearmodels库,我使用的是python3.9的环境,注意python版本3.7无法使用该函数会报错,类似如下:

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
[<ipython-input-6-538f694ebc58>](https://localhost:8080/#) in <module>1 panel_data = generate_panel_data()
----> 2 mod = PanelOLS.from_formula("y ~ x1 + x0 + EntityEffects", panel_data.data)3 res = mod.fit(cov_type="clustered", cluster_entity=True)4 frames
[/usr/local/lib/python3.7/dist-packages/formulaic/parser/types/structured.py](https://localhost:8080/#) in __getitem__(self, key)327             return self._structure[key]328         raise KeyError(
--> 329             f"This `{self.__class__.__name__}` instance does not have structure @ `{repr(key)}`."330         )331 KeyError: 'This `Formula` instance does not have structure @ `1`.

安装完成后,导入该方法,这里使用statsmodels中的Grunfeld数据集进行演示,故导入该数据集,示例代码如下:

from linearmodels.panel import PanelOLS
from statsmodels.datasets import grunfeld
data = grunfeld.load_pandas().data
data = data.set_index(["firm","year"])
grunfeld_fe = PanelOLS.from_formula("invest ~ value + capital + EntityEffects + TimeEffects", data=gf)
print(grunfeld_fe.fit())

使用固定效应模型一定要重新设置索引,且必须设置两个,(否则会报错:ValueError: The index on the time dimension must be either numeric or date-like)无论是使用时间固定效应还是个体固定效应或双固定效应,这里指定firm和year列为新的索引,另外PanelOLS.from_formula中的EntityEffects和TimeEffects分别指定个体固定效应和时间固定效应,两者都包含在参数中则表示双固定效应模型。结果如下:

还有另一种使用直接使用PanelOLS方法的形式:

from linearmodels.panel import PanelOLS
from statsmodels.datasets import grunfeld
import statsmodels.api as sm
data = grunfeld.load_pandas().data
data = data.set_index(["firm","year"])
exog = sm.add_constant(data[['value','capital']])
grunfeld_fet = PanelOLS(data['invest'], exog, entity_effects=True, time_effects=True)
grunfeld_fet = grunfeld_fe.fit()
print(grunfeld_fet)

如果想单独获取结果中的某一信息,如R方,回归系数,显著性,可以使用dir()函数来查看结果类中的属性,这里给出常用的几个:params(回归系数)、std_errors(回归系数标准误)、tstats(T统计量值)、pvalues(P值)、rsquared(R方)

使用到的两个函数的定义的文档链接如下:

linearmodels.panel.model.PanelOLS - linearmodels 4.31 (bashtage.github.io)

linearmodels.panel.model.PanelOLS.from_formula - linearmodels 4.31 (bashtage.github.io)

使用python实现固定效应模型相关推荐

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

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

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

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

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

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

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

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

  5. 02 固定效应模型与Stata实现

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

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

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

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

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

  8. 跟着开源项目学因果推断——FixedEffectModel 固定效应模型(十七)

    这个开源项目来源于快手,当然对于快手的开源项目是有前车之鉴的[生存分析--快手的基于深度学习框架的集成⽣存分析软件KwaiSurvival(一)].KwaiSurvival让我觉得是实验代码,今天要接 ...

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

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

最新文章

  1. C++引入名字空间(namespace)意义何在?为什么using namespace std会成为常用语句?
  2. mysql 5.5 type=innodb_mysql5.5.23TYPE=InnoDB语法错误_MySQL
  3. Ubuntu 16.04编译安装OpenCV(Python)
  4. java awt 边距_Java Swing - 使用Line Border在TextArea上设置边距
  5. ubuntu安装composer
  6. vim的几个常用操作
  7. 使用dsoFramer开始Office应用程序
  8. 用python写网络爬虫-英文翻译
  9. UCI数据库使用说明
  10. 小猫爪:PMSM之FOC控制01-Clark变换
  11. Linux配置VNC远程桌面
  12. html中如何写平方根等,excel平方根
  13. Fresher的完美文本
  14. 我的价值观和人才观(狭得不能再狭的狭义)
  15. JavaWeb基础学习一无框架项目小练习
  16. 美团-大众点评-春招面经
  17. 何海涛算法面试题感悟之六:二元查…
  18. SAP 批次管理(批次策略)
  19. Oracle 12C OEM 安装
  20. 比较两篇文章的相似性方法

热门文章

  1. 国内知名的信息与通讯调查研究咨询公司情况
  2. Mac下不限速下载百度网盘的资源
  3. ubuntu慢?如何给 ubuntu 换源 提速
  4. java项目-第161期ssm弹幕视频网站系统_ssm毕业设计_计算机毕业设计
  5. Linux系统搭建多用户多目录不同权限访问的FTP服务器
  6. 在html table 标签的中background和bgcolor两个属性有什么关系?
  7. 【龙芯1c库】封装硬件pwm接口和使用示例
  8. IOS推送功能的实现
  9. Navicat连接mysql报错is not allowed to connect to this MySQL
  10. 最简单网站视频加速方法