当前位置:   article > 正文

R语言面板数据回归:含时间固定效应混合模型分析交通死亡率、酒驾法和啤酒税...

控制固定效应的面板回归

全文链接:https://tecdat.cn/?p=33874

面板数据回归可以缓解省略变量偏误的问题,特别是当没有既与感兴趣的回归变量相关又与依赖变量相关的变量信息时,并且这些变量在时间或实体维度上是恒定的点击文末“阅读原文”获取完整代码数据)。

相关视频

当客户有面板数据可用时,可以使用面板回归方法来改善多元回归模型。这是因为在这种情况下,多元回归模型可能会产生缺乏内部有效性的结果。

本文涵盖以下主题:

  • 面板数据符号表示

  • 固定效应回归使用时间和/或实体固定效应

  • 在固定效应回归模型中计算标准误差

我们使用一个面板数据集,报告了1982年至1988年期间交通死亡率观察到的年度记录。应用分析酒精税和酒后驾车法律对道路死亡率是否有影响,如果存在,这些影响有多强烈。

面板数据

有时,面板数据也被称为纵向数据,因为它为横截面数据添加了时间维度。让我们来看看数据集,通过检查其结构并列出前几个观测值。

  1. # 载入包和数据集
  2. ......
  3. # 声明为面板数据。
  4. Fatas <- pdata.frame(Fats,......
  5. c("state", "year"))
  1. # 获取维度并检查结构
  2. is.data.frame(Faies)

972d24fdaf3ee2677dc4c87ab3d53cef.png

str(Fates)

72eb87d7a2aa83d3a32b1de127f876e4.png

  1. # 列出前几个观测值
  2. head(Fataes)

f3a5db13f437630f1a8912cfddb5d24b.png

  1. # 总结变量 'state''year'
  2. summary(Fatas[, c(1, 2)])

3e4477ae9212bcb3cc6f4d399da13f58.png

我们发现该数据集包含了336个关于34个变量的观测。

示例:交通死亡和酒精税

我们首先重现图。为此,我们使用1982年和1988年的数据估计简单回归模型,建立啤酒税与交通死亡率之间的关系,交通死亡率以每万人口的死亡人数表示。然后,我们绘制数据并添加相应的估计回归函数。

  1. # 定义死亡率
  2. Fata......
  3. ies$pop * 10000
  4. # 子集数据
  5. Fatalities1982 <- subset(Fata......
  6. 1988")
  1. # # 使用1982年和1988年的数据估计简单的回归模型
  2. fatal1982_mod <- lm(fa......
  3. lities1982)
  4. fatal1988_mod <- lm(fatal_rate ~ beertax, ......
  5. ities1988)
  6. coeftest(fata......
  7. type = "HC1")
  8. coeftest(fatal......
  9. type = "HC1")

f17dd06d287041f716d6d35da7b91df4.png

ed4d77a012a6c93f8681b674092e9356.png 估计的回归函数如下所示:

f8e40063c54bc32915d8dc253abbe905.png

  1. # 绘制观测数据,并添加1982年数据的估计回归线
  2. plot(x = as.double(Fatalities1982$beertax),
  3. ......
  4. col = "steelblue")
  5. abline(fata......

cc81d6286682784580af6894440c6e15.png


点击标题查阅往期内容

61a7dbb0c5ba2565e4188a34a06aba41.jpeg

R语言用线性混合效应(多水平/层次/嵌套)模型分析声调高低与礼貌态度的关系

outside_default.png

左右滑动查看更多

outside_default.png

01

491c55d66d0664e85c918e036539cd27.png

02

7efe3aeeca8a80567efd6d8d05dc15fc.png

03

44c864256f64eb96678e28a7edb1c44f.png

04

d40383ebc2690ec8f441eb13d6ffed7d.png

  1. # 绘制观测数据,并添加1988年数据的估计回归线
  2. plot(x = as.double(Fatalities1988$beertax),
  3. y = as.double(Fatalities1988$fatal_rate),
  4. ......
  5. col = "steelblue")
  6. abline(fatald, lwd = 1.5,col="darkred")
  7. legend("bo......

89f9ab752986e058001fb3d883493764.png

在这两个图中,每个点代表了相应年份中给定州的啤酒税和死亡率的观测值。回归结果显示,无论是在1982年还是1988年,啤酒税与死亡率呈正相关关系。然而,这无法解释不可观测的因素,这些因素在地区之间存在差异,但可以假定在观测时间范围内保持不变,例如人们对酒后驾车的态度。面板数据可以使我们将这些因素保持不变。

两个时间段的面板数据:“前后”比较

假设只有T=2个时间段,即t=1982,1988。这使我们能够分析从1982年到1988年的死亡率变化的差异。我们首先考虑人口回归模型

df2e3cc3486fba6996cb8d4bacb5a09a.png

其中,Zi表示在时间上不变的各州特征。对于t=1982和t=1988,我们有

9345ecdb55266acce783d636fde7cc93.png

我们可以通过将1988年和1982年的死亡率差异与啤酒税差异进行回归,来消除自变量中的Zi。

接下来,我们将使用R通过差分数据估计回归,并绘制估计的回归函数。

  1. # 计算差异
  2. diff_fatal_rate <- Fata_rate - Faal_rate
  3. ......
  4. # 使用差分数据估计回归
  5. fatal_diff_mod <- lm(dif......
  6. C1")

b5b0e0376b18778f85283f02b4b87208.png

包括截距允许在1982年和1988年之间的时间内,当啤酒税没有改变时,平均死亡率发生变化。

我们得到OLS估计的回归函数

832bef200a45ea1c592a4d4eab7b68d5.png

  1. # 绘制差分数据
  2. plot(x = as.double(diff_beertax),
  3. ......
  4. pch = 20,
  5. col = "steelblue")
  6. # 将回归线添加到图表中
  7. abline(fata......
  8. red")
  9. # 添加图例
  10. legend("topri......
  11. )

80564edede9fd4f3dbcd4c419d2a5402.png

现估计的啤酒税系数为负,并且与0显著不同,在5%的水平上。

  1. # 计算所有州在所有时间段上的平均死亡率
  2. mean(Fata_rate)

e3c2b88af28b185f8e90411b18b0b55c.png

再次,这个结果很可能是因为在单年回归中忽略了影响死亡率并与啤酒税和时间变化相关的因素。

固定效应回归

考虑面板回归模型

b7edab0011125e36610f88780e55da6c.png

其中Zi是实体i的未观察到的时间不变异,i=1,…,n。我们的目标是估计β1,即在保持Zi恒定不变的情况下,Xi对Yi的影响。令αi=β0+β2Zi=β0+β2Zi,我们得到模型

99ae8e14602f59ed5718abc637100570.png

该模型具有个体特定的截距αi,i=1,…,n,其中每一个可以理解为实体i的固定效应。αi的变化来自Zi。可以重写为包含n−1个虚拟回归器和一个常数项的回归模型:

3162f72ea33fb446bd3b36b7a79b9c27.png

模型有n个不同的截距,每个实体一个。固定效应模型的等价表示。

固定效应模型可以推广为包含多个与X相关并随时间变化的Y决定因素。关键概念介绍了广义固定效应回归模型。

应用于交通死亡数据

根据关键概念用于估计交通死亡率与啤酒税之间关系的简单固定效应模型是

a01b0d72299cb29ab15eee3680903c08.png

这是交通死亡率对啤酒税和48个二分类回归的回归分析。

我们只需使用lm()函数,即可获得β1的估计值。

  1. fatamod <- lm(fatal_......
  2. fatal_m_mod

bc429cf0127f02a7b0e66033bde0fe39.png

如前文所述,我们可以通过对去中心化数据应用OLS来估计β1,即运行回归模型。

  1. R
  2. # 获取去中心化数据
  3. Fatalianed <- with(Fata......
  4. state)))
  5. # 估计回归模型
  6. summary(lm(fatal......
  7. meaned))

ave函数方便计算组平均值。我们使用它来获取每个州的平均死亡率和啤酒税。

lm()类似,我们需要在plm()的调用中指定回归公式和要使用的数据。

  1. R
  2. # 使用plm()估计固定效应回归模型
  3. fatal_fe_mod <- plm(fatal_......
  4. coeftest(fata......
  5. HC1")

估计的系数仍为-0.65。需要注意的是,plm()使用去中心化OLS算法,因此不报告虚拟变量的系数。估计的回归函数为:

bb86f066b9682dbd01577bd9d2e40a2e.png

啤酒税的系数为负且显著。

含时间固定效应的回归

可以通过包括时间固定效应来控制对实体而言不变但随时间而变的变量。如果仅存在时间固定效应,则固定效应回归模型变为:

9f3ed4eb3c18deb19b114b8641c1a33f.png

因为模型包括截距,所以只包含T-1个虚拟变量(B1被省略)。该模型消除了由于排除随时间但对实体恒定的未观测变量而引起的遗漏变量偏差。

在某些应用中,同时包括实体和时间固定效应是有意义的。实体和时间固定效应模型为:

57f676c9a08a908d566d00d1c64c41a2.png

这种综合模型能够消除随时间变化但实体间恒定的不可观察因素的偏差,并控制在时间上不同但实体间恒定的因素。可以使用R中实现的OLS算法估计此类模型。

下面的代码块展示了如何估计关于死亡人数和啤酒税之间的关系的结合实体和时间固定效应模型。

  1. # 估计一个包含时间和实体固定效应的回归模型
  2. # 通过lm()函数
  3. fatal_tmod <- lm(fatal_ra......
  4. _mod
  5. # 通过plm()函数
  6. fatal__mod <- plm(fatal_rate......
  7. s")
  8. coeftest(fata......
  9. HC1")

估计的回归函数为

aeecce7b68673f76c0e92142f3f4fe41.png

结果-0.66接近仅包含实体固定效应的回归模型的估计系数。

我们得出结论:交通事故死亡人数与实际啤酒税之间的估计关系不受由恒定于时间或州的遗漏变量造成的偏误的影响。

固定效应回归的假设和固定效应回归的标准误差

重点讨论实体固定效应模型,并介绍在OLS产生无偏估计且大样本下服从正态分布所需的模型假设。这些假设是多元回归模型的延伸,并在关键概念中给出。我们还简要讨论了固定效应模型中的标准误差,与多元回归中的标准误差不同,因为面板模型中的回归误差可以表现出串行相关性。

固定效应回归的标准误差

与异方差性类似,自相关也使得通常的标准误公式以及异方差性-稳健标准误失效,因为这些公式是在没有自相关的假设下推导出来的。

回归分析是说明为什么在固定效应模型的实证应用中使用聚类标准误至关重要的很好例子。

  1. # 基于异方差性-稳健标准误的摘要
  2. coeftest(fatal......
  3. = "HC1")[1, ]
  4. # 基于聚类标准误的摘要
  5. coeftest(fata......
  6. pe = "HC1")

4f9fbdfc0b9981f90c7f14a55f1175dc.png

22dc5cb0f0846d349452d24a94407aae.png

结果有很大的不同:如果不考虑自相关,我们得到一个标准误为0.25,这意味着在5%的显著性水平上,对于啤酒税的系数^β1^1具有显著性。相反,使用聚类标准误0.35将导致无法拒绝零假设H0: β1 = 0,在相同的显著性水平下。

酒驾法和交通事故死亡

在我们迄今考虑的与交通事故死亡和啤酒税之间关系的所有模型中,存在两个主要的遗漏变量偏差来源:经济状况和驾驶法规。

首先,根据回归结果,我们定义变量。

  1. # 将最低法定饮酒年龄离散化
  2. Fatalities$drinkagec <- cut(Fatalities$drinkage,
  3. ......
  4. right = FALSE)
  5. # 将最低饮酒年龄[21, 22]设置为基准水平
  6. Fatalities$drinkagec <- relevel(Fatal......
  7. ]")
  8. # 强制监禁或社区服务?
  9. Fatalities$punish <- with(Fata......
  10. "yes")))
  11. # 所有变量在1982年和1988年的观测集合
  12. Fat......
  13. , year == 1982 | year == 1988), ]

接下来,我们使用plm()函数对所有七个模型进行估计。

  1. R
  2. # 估计所有七个模型
  3. fatalesmod1 <- lm(fa......
  4. ties)
  5. faalite_mod2 <- plm(fata......
  6. ities)
  7. fatiie_od3 <- plm(fatal......
  8. fataits_od4 <- plm(fat......
  9. data = Fatlities)
  10. fatltismod5 <- plm(fat......
  11. data = Faalties)
  12. fatatis_od6 <- plm(fat......
  13. data = Faalites)
  14. fatlie_mod7 <- plm(fat......
  15. data = Fatliie_1982_1988)

生成结果的综合表格演示。

  1. R
  2. library(stargazer)
  3. # 将聚类标准误差收集到一个列表中
  4. rob_se <- list(sqrt(diag(vcovHC(fatalities_mod1, type = "HC1"))),
  5. ......
  6. sqrt(diag(vcovHC(fatalities_mod7, type = "HC1"))))
  7. # 生成表格
  8. stargazer(fatalities_mod1, fatalities_mod2, fatalities_mod3,
  9. ......
  10. model.numbers = FALSE,......
  11. ", "(7)"))

因变量:死亡率 f05f8717cd26f428935587694372224c.png

模型(5)省略了经济因素。结果支持这样一种观点,即啤酒税的系数对包括后者在内的模型具有敏感性,因此应将经济指标保留在模型中。

模型(6)的结果表明,法定饮酒年龄几乎没有解释能力,而与饮酒年龄和交通事故死亡率之间的关系的函数形式的改变也不会对所关注的系数产生影响。

规格说明(7)表明,减少可用信息的数量(我们在这里只使用了1982年至1988年期间的95个观测值)会增加标准误差,但对系数估计没有产生 drast 的变化。

总结

我们没有找到证据表明严厉的惩罚和提高最低饮酒年龄会降低由酒驾引起的交通事故死亡人数。然而,酒税似乎对交通事故死亡率有负面影响,但由于估计的不准确性,不能将其解释为感兴趣的因果效应,因为仍然可能存在偏差。问题在于可能存在在地区之间以及随时间变化的被忽略的变量,并且即使我们使用控制实体特定和时间不变的不可观测因素的面板方法,这种偏差仍然存在。


e96677a0eb140eb304327eb6370d1f3d.jpeg

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《R语言对面板数据:含时间固定效应回归分析交通死亡率、酒驾法和啤酒税》。

点击标题查阅往期内容

R语言建立和可视化混合效应模型mixed effect model

R语言 线性混合效应模型实战案例

R语言用潜类别混合效应模型(Latent Class Mixed Model ,LCMM)分析老年痴呆年龄数据

R语言贝叶斯广义线性混合(多层次/水平/嵌套)模型GLMM、逻辑回归分析教育留级影响因素数据

R语言估计多元标记的潜过程混合效应模型(lcmm)分析心理测试的认知过程

R语言因子实验设计nlme拟合非线性混合模型分析有机农业施氮水平

R语言非线性混合效应 NLME模型(固定效应&随机效应)对抗哮喘药物茶碱动力学研究

R语言用线性混合效应(多水平/层次/嵌套)模型分析声调高低与礼貌态度的关系

R语言LME4混合效应模型研究教师的受欢迎程度

R语言nlme、nlmer、lme4用(非)线性混合模型non-linear mixed model分析藻类数据实例

R语言混合线性模型、多层次模型、回归模型分析学生平均成绩GPA和可视化

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

R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据

R语言 线性混合效应模型实战案例

R语言混合效应逻辑回归(mixed effects logistic)模型分析肺癌数据

R语言如何用潜类别混合效应模型(LCMM)分析抑郁症状

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言建立和可视化混合效应模型mixed effect model

R语言LME4混合效应模型研究教师的受欢迎程度

R语言 线性混合效应模型实战案例

R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言如何解决线性混合模型中畸形拟合(Singular fit)的问题

基于R语言的lmer混合线性回归模型

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

R语言分层线性模型案例

R语言用WinBUGS 软件对学术能力测验(SAT)建立分层模型

使用SAS,Stata,HLM,R,SPSS和Mplus的分层线性模型HLM

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

SPSS中的多层(等级)线性模型Multilevel linear models研究整容手术数据

用SPSS估计HLM多层(层次)线性模型模型 

fa7f9b0f54d64dc089e20473ecd81794.png

ac6b429f32aa1658d2040a3f5905724e.jpeg

8831c7decb223b40db2f91f9a18c8cc3.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/299507?site
推荐阅读
相关标签
  

闽ICP备14008679号