面板数据下DWH检验与过度识别约束检验的R(plm包)实现方法
在R的plm包中实现面板数据的DWH检验与过度识别约束检验
一、Durbin-Wu Hausman(DWH)检验(面板Hausman检验)
面板数据场景下的DWH检验核心用于对比固定效应(FE)与随机效应(RE)模型的适用性,plm包自带的phtest()函数可直接完成该检验,操作步骤如下:
- 先拟合FE和RE模型
library(plm) # 以plm自带的Grunfeld面板数据集为例 data("Grunfeld", package = "plm") # 拟合固定效应模型 fe_model <- plm(inv ~ value + capital, data = Grunfeld, model = "within") # 拟合随机效应模型 re_model <- plm(inv ~ value + capital, data = Grunfeld, model = "random")
- 执行DWH检验
# 对比FE与RE模型的Hausman检验(即面板DWH检验) hausman_result <- phtest(fe_model, re_model) # 输出检验结果 print(hausman_result)
若结果中的p值小于设定的显著性水平(如0.05),则拒绝随机效应模型的原假设,应选择固定效应模型。
二、过度识别约束检验
该检验仅适用于工具变量(IV)模型(要求工具变量数量多于内生变量数量),用于验证工具变量的外生性。基于plm拟合的IV-FE/IV-RE模型,操作步骤如下:
1. 拟合面板IV模型
假设存在内生变量,需指定合法工具变量。以Grunfeld数据集为例,假设value为内生变量,选取lag(value, 1)和lag(capital, 1)作为工具变量:
# 拟合IV固定效应模型 iv_fe_model <- plm(inv ~ value + capital | capital + lag(value,1) + lag(capital,1), data = Grunfeld, model = "within") # 拟合IV随机效应模型 iv_re_model <- plm(inv ~ value + capital | capital + lag(value,1) + lag(capital,1), data = Grunfeld, model = "random")
2. 执行过度识别检验
可通过AER包的overid()函数完成检验:
library(AER) # 对IV-FE模型做过度识别检验 overid_fe <- overid(iv_fe_model) print(overid_fe) # 对IV-RE模型做过度识别检验 overid_re <- overid(iv_re_model) print(overid_re)
若检验结果的p值大于显著性水平,则无法拒绝“所有工具变量均外生”的原假设,说明工具变量选择符合要求。
注意:若工具变量数量等于内生变量数量,不存在过度识别约束,无法执行该检验。
内容的提问来源于stack exchange,提问作者Muller I.
相关产品推荐
相关产品推荐

