繁体   English   中英

错误计算Panel回归模型(plm,R)中的稳健标准误差

[英]Error computing Robust Standard errors in Panel regression model (plm,R)

我正在使用plm库运行固定效应回归,并使用三明治,lmtest库来计算可靠的标准误差。 运行回归没有问题,但是在某些情况下,当我计算标准误差时,会出现以下错误:

library(plm)
library(sandwich)
library(lmtest)

fe_reg <- plm(y ~ x + I(x^2)+factor(date), data=reg_data, index=c("id","date"), model="within")
coeftest(fe_reg, vcov.=vcovHC(fe_reg, type="HC1"))

RRuntimeError: Error in solve.default(crossprod(demX))
  system is computationally singular: reciprocal condition number = 1.84726e-25

我在计算系数或“正常”标准误差(即同调)时没有任何问题。 另外,当我省略二次项时,我也没有问题可以计算出鲁棒的标准误差:

fe_reg <- plm(y ~ x +factor(date), data=reg_data, index=c("id","date"), model="within")  

有人知道发生了什么吗? 如果设计矩阵是奇异的,那么就不应该计算系数,所以我不明白在计算标准误差时问题出在哪里。

谢谢!

如果我没记错的话, plm并不是很冗长。 我认为可以有一个奇异矩阵,但plm不会抱怨。 lm通常更为冗长。 所以尝试

 lm_mod1 <- lm(y ~ x + I(x^2)+factor(date), data=reg_data)
 summary(lm_mod1)

lm将在汇总输出中告诉您是否存在计算一个系数的问题(表中的系数为NA ,并且在输出的顶部也应有一个注释)。 编辑 :在这种情况下,lm摘要输出顶部的注释应为“系数:(由于奇异而未定义1)”。

编辑还有另外一种可能,为什么coeftest不工作:如果您model.matrix contrains非常大的价值,以及非常小的值, solve可能无法通过计算在求解线性方程组的系统vcovHC功能。 因此,如果是这种情况,请看看model.matrix(y ~ x + I(x^2)+factor(date), data=reg_data) 如果是这样,请尝试重新缩放某些变量(例如,将乘数除以100或乘以1000 [ log()有时也有意义)。 请注意,系数的解释会因刻度的变化而变化!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM