R:MASS :: polr()中的聚类标准错误

时间:2017-05-26 20:13:29

标签: r regression logistic-regression

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

以下是一个例子:

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)

虽然有关Stack Overflow的许多问题询问如何在普通最小二乘模型(以及某些情况下为logistic regression)中聚集R中的标准误差,但尚不清楚如何在有序逻辑回归(即比例赔率逻辑回归)。此外,现有的SO问题集中在具有其他严重缺陷的包(例如,模型输出的类别与用于分析和呈现结果的其他标准包不兼容),而不是使用与{{1}兼容的MASS::polr() }}

1 个答案:

答案 0 :(得分: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