R:分数概率模型中的聚集标准误差

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)/

我需要用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)/(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)