我正在y ~ v + m + s + m:s + (1|subunit)用 lmer() 拟合模型。 s是一个与 相互作用的连续变量m,一个具有 3 个级别的分类因子:A、B和C。
拟合模型使用A作为因子的参考水平m:
fit_ref_A <- lmer(y ~ 1 + v + m*s + (1|subunit), data=df)
B和C的参数估计值可以使用 A 的估计值以及B和C的差值来计算。我有兴趣提取置信区间。
运行 confint() 给出As处变量斜率的置信区间。我还对B和C的斜率的置信区间感兴趣,而不仅仅是与A的斜率差异的置信区间。有没有办法从中提取这个?到目前为止,我唯一能想到的是以B为参考重新调平,适合新的配合,然后以C作为参考重新调平,并适合第三次配合。sfit_ref_A
问题:有没有办法从中提取所有内容(尤其是置信区间)fit_ref_A?
代码:
library(lme4)
# create the dataset, unbalanced at the lowest stratum ( 2 repeats for m==A instead of 3)
set.seed(2)
s_levels <- 1:5
m_levels <- c("A", "B", "C")
v_levels <- c("L2", "L3", "L4")
reps <- 1:3
df <- expand.grid(rep=reps, s=s_levels, m=m_levels, v=v_levels)
df$subunit <- as.factor(paste(df$v,"-",df$m,"-",df$s, sep=""))
df$y <- rnorm(nrow(df), 0, 1)
df <- subset(df, !(rep==3 & m=="A")) # drop the 3rd repeat for m=="A"
table(df$m) # shows 30 for A, 45 for B, 45 for C as expected
# fit 3 different models, with three different reference levels for 'm'
fit_ref_A <- lmer(y ~ 1 + v + m*s + (1|subunit), data=df)
df$m <- relevel(df$m, ref = "B")
fit_ref_B <- lmer(y ~ 1 + v + m*s + (1|subunit), data=df)
df$m <- relevel(df$m, ref = "C")
fit_ref_C <- lmer(y ~ 1 + v + m*s + (1|subunit), data=df)
# Calculate the confidence intervals for the continuous variable s at the three
# different levels for categorical factor m. Must use 3 separate fits.
cis_at_m_reference_A <- confint(fit_ref_A)
cis_at_m_reference_B <- confint(fit_ref_B)
cis_at_m_reference_C <- confint(fit_ref_C)
cis_at_m_reference_A["s",]
cis_at_m_reference_B["s",]
cis_at_m_reference_C["s",]
# Any way to just extract all three from fit_ref_A?