从 gamlss 对象中提取随机效果

Extracting random effects from a gamlss object

我有 运行 使用 R 中的 gamlss 包进行随机截距模型的 beta 回归。调用如下所示:

uik.max.model <- gamlss(formula = max.opp.vote ~ n_commute + vote_commute + uik_dummy +
                      opp.gd + opp.m + pay + govt_dep + higher_ed + max.opp.n +
                      opp.m*vote_commute + opp.m*n_commute +
                      re(random = ~1|mf),
                    family = BE(),
                    data = poll_df)

我想从模型对象中提取每个分组因子 (mf) 的随机效应,以便创建预测概率图,但我无法找到 where/if 它们被存储在对象中。

分组因子的每个值的随机截距是否可用?如果有,在哪里?

要分析拟合对象的结构,我们可以使用 str(uik.max.model)。因此可以在 uik.max.model$mu.coefSmo[[1]]$coefficients$random 中找到随机效应。考虑这个例子:

library(gamlss)
# creating some data
variable <- as.factor(rep(1:26, 1e3))
levels(variable) <- LETTERS
value <- rbinom(2.6e4, 10, .5)
df1 <- data.frame(variable, value)

# fitting a minimal model
fit <- gamlss(formula = value ~ 1 +
              re(random = ~1|variable),
            data = na.omit(df1))

# analyzing structure of fitted object
str(fit)
# ...

# random effects for each value of "variable"
fit$mu.coefSmo[[1]]$coefficients$random
# $variable
# (Intercept)
# A -1.029350e-07
# B -2.465111e-09
# C  1.326496e-07
# D -1.632303e-08
# E  2.731609e-09
# F -4.403887e-08
# G -2.465111e-09
# H -7.695143e-08
# I  2.698297e-08
# J  4.950209e-08
# K -3.191319e-08
# L  9.627257e-08
# M -4.057439e-08
# N  3.737641e-08
# O -1.285855e-08
# P  1.551687e-07
# Q  1.312505e-08
# R -8.907712e-08
# S -9.394071e-09
# T  2.178625e-08
# U -7.661831e-09
# V -1.978751e-08
# W -8.734488e-08
# X  3.737641e-08
# Y -1.285855e-08
# Z -1.632303e-08

以下内容可能会有所帮助

summary(getSmo(uik.max.model)) # summary
ranef(getSmo(uik.max.model)) # random effect estimates
coef(getSmo(uik.max.model)) # fitted coefficients
intervals(getSmo(uik.max.model)) # Confidence intervals

参见:Stasinopoulos D.M.、Rigby R.A、Heller G.、Voudouris V. 和 De Bastiani F.,(2017)灵活回归和平滑:在 R 中使用 GAMLSS,查普曼和 Hall/CRC. 第10章

此致 凯