我正在尝试使用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()
}}
答案 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