双向集群稳健的标准错误会在R中产生NA标准错误 - 为什么?

时间:2015-09-27 07:30:34

标签: r standard-error

我使用Arai的(2015)方法(特别是第4页的mclx函数)来为我的lm(http://www.ne.su.se/polopoly_fs/1.216115.1426234213!/menu/standard/file/clustering1.pdf)生成集群健壮的标准错误。

我使用面板数据并尝试生成双向群集健壮的标准错误(按年份和按国家/地区划分)。

我的问题是,虽然我得到了每个自变量的系数估计值,但我得到了标准误差,t统计量和p值FOR NOME(并非所有)变量的NAs。

我检查了相关主题但找不到此问题的答案。特别是,它与数据结构无关,因为所有数据都是"数字",它不是多重共线性问题,每个集群维度(即年份和国家)有足够的观察......

mclx()函数如下所示:

    ### Write function for Multiple dimension SE clustering
mclx <- 
    function(fm, dfcw, cluster1, cluster2){
        library(sandwich)
        library(lmtest)
        cluster12 = paste(cluster1, cluster2, sep="")
        M1 <- length(unique(cluster1))
        M2 <- length(unique(cluster2))
        M12 <- length(unique(cluster12))
        N <- length(cluster1)
        K <- fm$rank
        dfc1 <- (M1/(M1-1))*((N-1)/(N-K))
        dfc2 <- (M2/(M2-1))*((N-1)/(N-K))
        dfc12 <- (M12/(M12-1))*((N-1)/(N-K))
        u1 <- apply(estfun(fm), 2, 
                    function(x) tapply(x, cluster1, sum))
        u2 <- apply(estfun(fm), 2, 
                    function(x) tapply(x, cluster2, sum))
        u12 <- apply(estfun(fm), 2, 
                    function(x) tapply(x, cluster12, sum))
        vc1 <- dfc1*sandwich(fm, meat=crossprod(u1)/N)
        vc2 <- dfc2*sandwich(fm, meat=crossprod(u2)/N)
        vc12 <- dfc12*sandwich(fm, meat=crossprod(u12)/N)
        vcovMCL <- (vc1+vc2-vc12)*dfcw
        coeftest(fm, vcovMCL)
    }

然后,我指定我的多元线性模型并调用结果:

### cluster on two variables (year and anation)
mclx(fm, 1, data$year, data$nation)

不幸的是,我无权在此处发布数据。当我使用Arai(2015)提供的测试数据时,问题不会发生,但我无法弄清楚我的数据存在的问题。那么,也许有人普遍认为为什么标准误差,t stats和p值的某些参数估计会产生NA以及如何避免这种情况?我对任何提示都非常感激......

0 个答案:

没有答案