我在R中使用“ bigglm”功能,我也想使用“ emmeans”功能进行事后分析和绘图。但是,emmeans函数无法处理“ bigglm”类的对象。
有没有一种方法可以从“ bigglm”类构造一个“ glm”类的对象?
这是一个例子
library(biglm)
library(emmeans)
data(trees)
trees$f <- factor(rep(c("A","B"),length.out = nrow(trees)))
ff <-log(Volume)~f
a <- glm(ff,data=trees)
summary(a)
emmeans(a,~f)
b <- bigglm(ff,data=trees, chunksize=10)
summary(b)
emmeans(b,~f)
谢谢。
答案 0 :(得分:0)
事实证明,“ biglm”和“ bigglm”对象与“ lm”和“ glm”对象非常相似,仅对其结构进行了很小的更改。因此,看来我们要做的就是欺骗emmeans
以为它是其中之一。这是用于此目的的实用程序:
as.glm = function(mod) {
mod$coefficients = coef(mod)
mod$df.residual = mod$df.resid
class(mod) = c(class(mod), "glm", "lm")
mod
}
现在我们得到:
> emmeans(as.glm(b), "f")
f emmean SE df asymp.LCL asymp.UCL
A 3.288124 0.1337527 Inf 3.025974 3.550275
B 3.256313 0.1381392 Inf 2.985565 3.527061
Confidence level used: 0.95