R:分数概率模型中的聚集标准误差
我需要用R估计一个分数(取值在0和1之间的响应)模型。我还想对标准误差进行聚类。我在和其他地方找到了几个示例,并根据我的发现构建了此函数:R:分数概率模型中的聚集标准误差,r,R,我需要用R估计一个分数(取值在0和1之间的响应)模型。我还想对标准误差进行聚类。我在和其他地方找到了几个示例,并根据我的发现构建了此函数: require(sandwich) require(lmtest) clrobustse <- function(fit, cl){ M <- length(unique(cl)) N <- length(cl) K <- fit$rank dfc <- (M/(M - 1))*((N - 1)/
require(sandwich)
require(lmtest)
clrobustse <- function(fit, cl){
M <- length(unique(cl))
N <- length(cl)
K <- fit$rank
dfc <- (M/(M - 1))*((N - 1)/(N - K))
uj <- apply(estfun(fit), 2, function(x) tapply(x, cl, sum))
vcovCL <- dfc*sandwich(fit, meat = crossprod(uj)/N)
coeftest(fit, vcovCL)
}
给出了完全相同的标准误差。我检查了Stata报告,并显示了不同的群集错误。我怀疑我错误地指定了函数
clrobustse
,但我不知道如何指定。关于这里可能出现的问题有什么想法吗?您可能不需要编写自己的函数。尝试multiwayvcov
软件包,或plm::vcovHC
。这个问题可能会有帮助:谢谢multiwayvcov
是一个很好的发现。Stata标准错误有一些不同,但仅在第四位或第五位左右。不知何故,vcovHC
根本没有非常紧密地复制Stata结果。
fit <- glm(dep ~ exp1 + exp2 + exp3, data = df, fam = quasibinomial("probit"))
clrobustse(fit, df$cluster)
coeftest(fit)