R中plm与fixest包估计面板固定效应模型HC1标准误差异原因?
plm与fixest包面板固定效应模型HC1标准误差异的原因
两个包输出的HC1标准误存在差异的核心原因是固定效应自由度扣除规则的默认约定不同,具体说明如下:
- HC1稳健标准误的通用计算公式包含小样本校正项
n/(n-k),其中n为总样本量,k为待估参数总数,两个包对k的取值规则不同:- plm计算固定效应模型的HC1标准误时,会将所有待估参数(包含斜率系数、全部个体/年份固定效应的估计值)都计入
k。你提供的案例中总样本量为336,包含48个州固定效应+1个斜率系数,因此k=49,校正项为336/(336-49) ≈ 1.17 - fixest默认计算HC1标准误时,仅将非固定效应的斜率系数计入
k,被吸收的固定效应(公式中|后的变量)不计入自由度损失。你提供的案例中k=1,校正项为336/(336-1) ≈ 1.003
- plm计算固定效应模型的HC1标准误时,会将所有待估参数(包含斜率系数、全部个体/年份固定效应的估计值)都计入
- 除了校正项差异外,plm的
vcovHC对面板固定效应模型默认使用去均值后的残差计算方差,而fixest默认使用原始残差计算,进一步放大了两者的输出差异。
结果对齐验证
调整fixest的自由度计算规则即可得到和plm完全一致的标准误,示例代码如下:
# 调整fixest自由度扣除规则,与plm默认约定对齐 fixest_reg_aligned <- feols( fatality_rate ~ beertax | state, data = Fatalities, vcov = vcov("HC1", dof = dof(fixef.K = "full", adj = TRUE)), panel.id = ~ state + year ) # 输出的beertax标准误将与plm结果一致,约为0.2888 etable(fixest_reg_aligned)
约定说明
两种计算规则均属于业界通用实践,没有对错之分:
- 若严格遵循HC1的经典统计定义,应将固定效应计入自由度损失,对应plm的默认规则
- 若采用面板模型推断的常用简化实践,认为固定效应的估计不影响斜率系数的自由度,可使用fixest的默认规则
内容的提问来源于stack exchange,提问作者minimouse
相关产品推荐
相关产品推荐

