emmeans 无法在 R 中处理 class “bigglm” 的对象
emmeans Can't handle an object of class “bigglm” in R
我在 R 中使用 "bigglm" 函数,我还想使用 "emmeans" 函数进行 post-hoc 分析和绘图。但是函数 emmeans 无法处理 class “bigglm” 的对象。
有一种方法可以从class"bigglm"?[=12=构造class"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)
提前谢谢你。
事实证明,"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
我在 R 中使用 "bigglm" 函数,我还想使用 "emmeans" 函数进行 post-hoc 分析和绘图。但是函数 emmeans 无法处理 class “bigglm” 的对象。
有一种方法可以从class"bigglm"?[=12=构造class"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)
提前谢谢你。
事实证明,"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