2017-05-26 54 views
1

我试图使用MASS程序包的polr()函数来估计具有集群标准错误的有序逻辑回归。没有内置的集群功能,因此我正在寻找(a)软件包或(b)使用模型输出计算集群标准错误的手动方法。我计划使用margins包来估计模型的边际效应。R:MASS :: polr()中的聚类标准错误

下面是一个例子:

library(MASS) 
set.seed(1) 
obs <- 500 

# Create data frame 
dat <- data.frame(y = as.factor(round(rnorm(n = obs, mean = 5, sd = 1), 0)), 
       x = sample(x = 1:obs, size = obs, replace = T), 
       clust = rep(c(1,2), 250)) 

# Estimate and summarize model 
m1 <- MASS::polr(y ~x, data = dat, Hess = TRUE) 

summary(m1) 

虽然堆栈溢出很多问题请教一下如何在R型聚类标准误差为普通最小二乘模型(以及在某些情况下logistic regression),目前还不清楚如何群集中的错误订购了逻辑回归(即比例优势逻辑回归)。另外,现有的SO问题集中在具有其他严重缺点的包装(例如,模型输出的类别与用于分析和呈现结果的其他标准包装不兼容),而不是使用与predict()兼容的MASS::polr()

回答

0

这实质上以下an answer offered by Achim Zeleis on rhelp in 2016.

library(lmtest) 
library("sandwich") 

coeftest(m1, vcov=vcovCL(m1, factor(dat$clust))) 

t test of coefficients: 

    Estimate Std. Error t value Pr(>|t|)  
x 0.00093547 0.00023777 3.9343 9.543e-05 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1