我正在寻找一种方法,用我自己的标准误差直接替换回归模型中的标准误差,以便在另一个 R 包中使用鲁棒模型,该包没有自己的鲁棒选项,只能提供特定类型的模型而不是 coeftest 格式。
假设我有一个线性模型:
model <- lm(data=dat, Y ~ X1 + X2 + X3)
Run Code Online (Sandbox Code Playgroud)
然后我想要强大的标准错误:
robust <- coeftest(model, vcov=sandwich)
Run Code Online (Sandbox Code Playgroud)
接下来,我需要在一个特定的包中使用这个模型,这个包不能提供 coeftest 并且没有自己强大的标准错误选项。我想在将其放入包之前替换原始模型的标准误差(以及,就此而言,p 值、t 统计量等),以便将它们考虑在内。
要访问原始模型中的标准错误,我使用:
summary(model)$coefficients[,2]
Run Code Online (Sandbox Code Playgroud)
为了从coeftest 中提取标准误差,我使用:
coeftest.se <- robust[, 2]
Run Code Online (Sandbox Code Playgroud)
但是,以下方法在尝试替换模型的标准错误时会返回错误,因为它将“摘要”本身视为命令:
summary(model)$coefficients[,2] <- coeftest.se
Error in summary(M3)$coefficients[, 2] <- seM3 : could not find function "summary<-"
Run Code Online (Sandbox Code Playgroud)
细节
我正在尝试使用 Mediation R 包运行中介分析。该包将使用“中介”函数执行一种方式的集群标准错误,但我想要两种方式的集群标准错误。
为了获得两路聚类标准错误,我使用了 Mahmood Arai 的 mclx 函数(代码可以在这里找到(第 4 页)。
我的想法是用已经报告正确标准错误的模型来提供包的中介函数。根据文档,中介包接受以下类别的模型:lm、polr、bayespolr、glm、bayesglm、gam、rq、survreg 和 merMod。
总体目标:使用 ggplot 有选择地仅标记最后一个点高于某个 y 值的线。
潜在的函数/包:我知道geom_text()函数和 directlabels 包,但我无法在他们的文档中找到一种方法来按照我上面描述的方式选择性地标记行。
样本数据
ID <- c(rep("ID1", 5), rep("ID2", 5), rep("ID3", 5), rep("ID4", 5), rep("ID5", 5))
Y <- c(1, 2, 3, 4, 5,
10, 20, 30, 40, 1,
5, 10, 15, 10, 60,
50, 30, 20, 25, 10,
20, 25, 30, 35, 50)
Year <- c(rep(seq(2000 ,2004), 5))
DATA <- data.frame(ID, Year, Y)
Run Code Online (Sandbox Code Playgroud)
绘制数据
ggplot(data=DATA, aes(Year, Y)) +
geom_line(aes(y=Y, x=Year, color=ID)) +
theme_bw()
Run Code Online (Sandbox Code Playgroud)
阴谋

问题
在上图的情况下,有没有办法使用、 directlabels 或任何其他函数根据 ID 来自动(而不是手动)仅标记最后一个点是(紫色和绿色线)的gg_text() …