R 无法计算稳健标准误差(vcovHC):多重共线性和NaN误差

R 无法计算稳健标准误差(vcovHC):多重共线性和NaN误差,r,standard-error,robust,R,Standard Error,Robust,我有以下数据集: share <- c(-0.16,-0.07,0,0,-0.06,-0.06,-0.18,-0.23,-0.07,-0.24,0,0,-0.22,-0.15,0,0,-0.09,-0.2,0,-0.19,0,-0.16,-0.24,-0.14,-0.22,-0.22,0,-0.18,0,0,-0.01,0,0,-0.14,0,-0.06,0,-0.12,0,0,-0.14,0,0,0,-0.02,0,0,0,0,0,-0.19,0,-0.21,-0.08,0,0,0,-0

我有以下数据集:

share <- c(-0.16,-0.07,0,0,-0.06,-0.06,-0.18,-0.23,-0.07,-0.24,0,0,-0.22,-0.15,0,0,-0.09,-0.2,0,-0.19,0,-0.16,-0.24,-0.14,-0.22,-0.22,0,-0.18,0,0,-0.01,0,0,-0.14,0,-0.06,0,-0.12,0,0,-0.14,0,0,0,-0.02,0,0,0,0,0,-0.19,0,-0.21,-0.08,0,0,0,-0.1,-0.17,0,0,-0.13,-0.08,-0.1,0,-0.05,-0.06,0,0,-0.1,0,0,0,-0.16,0,-0.18,-0.04,-0.08,0,-0.06,0,0,0,-0.2,0,0,-0.08,0,0,-0.01,0,-0.16,-0.08,0,0,0,-0.02,-0.18,0.17,-0.2,-0.14,0,-0.24)
grade <- c(-22.64,-2.39,-15.3,-22.34,-6.39,5.25,0.47,33.61,-0.54,-25.21,16.41,-13.94,21.04,-19.64,-7.48,-32.18,-19.48,21.65,0.88,-1.6,28.49,13.61,-1.69,19.34,2.19,-7.25,6.65,7.25,20.56,16.25,17.24,12.3,3.7,-8.64,8.25,3.27,6,14.32,0.91,8.6,-6.84,13.35,6.99,3.36,0.29,19.46,2,10.75,8.76,-6.54,36.46,28.88,0.44,4.73,3.52,-10.7,-3.88,-2.36,-15.12,9.55,-4.96,10.7,6.84,-10.98,13.03,3.46,14.65,-1.66,6.89,-11.47,-6.52,15.64,3.02,4.11,-8.41,4.77,18.97,-3.73,9.54,-6.06,13.1,-24.62,-2.5,-30.26,3.82,12.97,4,2.21,14.33,12.47,-55.11,19.86,13.7,9.19,-11.01,-2.52,13.1,3.83,1.51,4.18,-3.14,-5.85,8.39)
treat <- c(0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0)
dataset <- as.data.frame(cbind(share, grade, treat))
线性模型的输出很好,但未计算稳健的标准误差:
NaN
为每个标准误差返回

我猜
NaN
是由于变量
treat
share
几乎完全共线(只有一个观察结果
treat=1
share!=0
)。问题是我必须使用这些变量;我不能代替他们


有人能想出解决这个问题的方法吗?

在阅读了@DominicComtois的建议并遵循了它之后,我认为我必须使用
HC1
HC3
HC4
(Long and Ervin 2000,Hayes and Cai 2007)或
HC4m
(Cribari Neto and Silva 2011)会更好,但它们都给出了NaN结果。
HC0的问题在于它倾向于在小到中等大的样本中存在偏差(Hayes和Cai 2007,Cribari Neto和Silva 2011)

参考资料

克里巴里·内托F.,达席尔瓦W.B.(2011年)。线性回归模型的一种新的异方差一致协方差矩阵估计。Adv Stat Anal 95:129–146

海斯,A.F.,蔡,L.(2007)。在OLS回归中使用异方差一致性标准误差估计:介绍和软件实现。行为研究方法,39709–722


Long,J.S.,埃尔文,L.H.(2000年)。在线性回归模型中使用异方差一致标准差。是《统计》第54217-224页

你绝对需要“HC2”吗?HC0和HC1给出了非NaN结果(顺便说一句,你可能会在交叉验证上获得更好的运气,一个更关注统计数据的网站)@DominicComtois:你说对了两次,HC1有效,交叉验证会更好。我做了一些阅读,并将使用HC1。我将公布这一选择的理由,作为对这个问题的回答。谢谢。
library(sandwich)
model <- lm(grade ~ treat + share + treat*share, dataset)
robSE <- sqrt(diag(vcovHC(model, type = "HC2")))