gpt4 book ai didi

r - 具有单变量回归的异方差一致协方差矩阵 [R]

转载 作者:行者123 更新时间:2023-12-03 18:36:24 24 4
gpt4 key购买 nike

如何计算单变量回归(即具有一个回归变量且无截距的 OLS 回归)的异方差一致协方差矩阵 (HCCM)?

背景故事:我有一个固定效应面板回归,但只有一个回归变量。所以我可以用最小二乘虚拟变量 (LSDV) 方法来做到这一点

lm.ser.yr <- lm(realwage ~ placebo.ser + factor(incyear) + 0, data = cps)

或者我可以在年级贬低 LHS 并倒退

cps <- ddply(cps, .(incyear), transform, realwage.dm.yr = realwage - mean(realwage))
lm.ser.yr <- lm(realwage.dm.yr ~ placebo.ser + 0, data = cps)

但两者都存在问题。

  • 使用 LSDV 方法和足够多的虚拟对象,lm 对象变得很大(每个 1 gb)。这主要是因为我必须保留较大的 qr 矩阵以将其传递给 vcovHC() 以计算 HCCM,该矩阵经常在“无法分配”时停止vector of size”错误(或进行大量分页)。

  • 在估计器内贬值的情况下,一切都很好,但我无法计算 HCCM,因为 vcovHC()hccm() 都没有处理 no拦截单变量 lm 对象(即,它吐回 NA,据我所知,这是因为没有拦截和虚拟变量,我的残差与零均值相去甚远) .

是否有解决方案来解决这种非常积极地管理内存和/或迁移到云端的问题?

最佳答案

plm 包中的

vcovHC() 似乎可以很好地处理 lm() 模型而无需拦截:

library(plm)
df <- data.frame('a'=rnorm(1000), 'b'=rnorm(1000))
mod <- lm(a ~ b -1, df)
vcovHC(mod)

编辑:这里有一些代码可以手动计算它们。

library(Matrix)
e2 = mod$residuals ^ 2
X = model.matrix(mod)
N = nrow(X)
bread = solve(crossprod(X))
I <- Matrix(data=0, ncol=N, nrow=N, sparse=TRUE)
diag(I) <- e2
salami <- t(X) %*% I %*% X
V = bread %*% salami %*% bread

关于r - 具有单变量回归的异方差一致协方差矩阵 [R],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5826934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com