我有一个数据集(df),其格式如下:
我希望创建一个类似于这样的模型。
index <- runif(n = 100,min = 0, max = 1)
type1 <- rep("low", 50)
type2 <- rep("high", 50)
type <- c(type1,type2)
level1 <- rep("single", 25)
level2 <- rep("multiple", 25)
level3 <- rep("single", 25)
level4 <- rep("multiple", 25)
level <- c(level1,level2,level3,level4)
block <- rep(1:5, 10)
set <- rep(1:5, 10)
df <- data.frame("index" = index,"type" = type, "level" = level, "block" = block, "set" = set)
df$block <- as.factor(df$block)
df$set <- as.factor(df$set)
我希望创建一个类似于这样的模型。
model <- lmer(index ~ type * level + (1|block) + (1|set), data = df)
然而,在我的原始数据中,拟合效果不好,因为数据被限制在0和1之间。我想对这个混合效应模型进行自助法。有没有关于如何实现这种模型的自助法的想法?我想比较这个完整模型与子模型,例如没有交互作用,或者只有level
或type
。我还希望得到最终模型的置信区间。
glmmTMB(index ~ type + level + (1|block), df, family=list(family="beta",link="logit"))
以及 betareg,但是输出警告信息为“奇异拟合(singular fit)”导致了无限循环。 - Rspacerbrms::brm(index ~ type * level + (1|block) + (1|set), data = df, family = Beta())
,看起来它表现良好。只是一个问题,你是否愿意运行贝叶斯模型。 - Philsummary(model)
进行提取。区间仅仅表示“真实”系数在该区间内的(默认95%)概率。因此,如果类型系数的区间包括0,则可以认为它是不显著的。至于模型比较,我更喜欢使用信息准则进行比较,例如WAIC或PSIS-LOO。brms
软件包具有waic()
、loo()
和compare_ic()
函数,允许您比较模型的相应WAIC或LOO分数。 - PhilGLMMadaptive::mixed_model()
。他在 GitHub 上还有很棒的说明文档。 - Dion Groothof