以某种方式跟踪问题Creating confidence intervals for regression curve in GLMM using Bootstrapping,我感兴趣的是获取回归曲线和相关的置信区间曲线的正确值。
考虑在GLMM中有一个响应变量,两个连续固定效应和一个随机效应的情况。这是一些虚假数据:
library (dplyr)
set.seed (1129)
x1 <- runif(100,0,1)
x2 <- rnorm(100,0.5,0.4)
f1 <- gl(n = 5,k = 20)
rnd1<-rnorm(5,0.5,0.1)
my_data <- data.frame(x1=x1, x2=x2, f1=f1)
modmat <- model.matrix(~x1+x2, my_data)
fixed <- c(-0.12,0.35,0.09)
y <- (modmat%*%fixed+rnd1)
my_data$y <- ((y - min (y))/max(y- min (y))) %>% round (digits = 1)
rm (y)
我适合的GLMM如下:
m1<-glmer (y ~x1+x2+(1|f1), my_data, family="binomial")
summary (m1)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod'] Family: binomial ( logit ) Formula: y ~ x1 + x2 + (1 | f1) Data: my_data AIC BIC logLik deviance df.resid 65.7 76.1 -28.8 57.7 96 Scaled residuals: Min 1Q Median 3Q Max -8.4750 -0.7042 -0.0102 1.5904 14.5919 Random effects: Groups Name Variance Std.Dev. f1 (Intercept) 1.996e-10 1.413e-05 Number of obs: 100, groups: f1, 5 Fixed effects: Estimate Std. Error z value Pr(>|z|) (Intercept) -9.668 2.051 -4.713 2.44e-06 *** x1 12.855 2.659 4.835 1.33e-06 *** x2 4.875 1.278 3.816 0.000136 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Correlation of Fixed Effects: (Intr) x1 x1 -0.970 x2 -0.836 0.734 convergence code: 0 boundary (singular) fit: see ?isSingular
绘制y与x1:
plot (y~x1, my_data)
应该有可能从m1的摘要中得出回归曲线。我了解到我需要反转链接功能(在本例中为“ logit”):
y = 1/(1+exp(-(Intercept+b*x1+c*x2)))
为了在二维空间中绘制x1的回归曲线,我在公式中设置了x2 = mean(x2)
(这也很重要-以下图中的红线会忽略x2,显然会导致相当大的偏差)。回归线:
xx <- seq (from = 0, to = 1, length.out = 100)
yy <- 1/(1+exp(-(-9.668+12.855*xx+4.875*mean(x2))))
yyy <- 1/(1+exp(-(-9.668+12.855*xx)))
lines (yy ~ xx, col = "blue")
lines (yyy~ xx, col = "red")
我认为,蓝色线条看起来不太好(当然,红色线条更糟)。因此,作为一个附带问题:y = 1/(1+exp(-(Intercept+b*x1+c*x2)))
始终是对logit-link进行反向转换的正确选择吗?我之所以问是因为我发现了这个https://sebastiansauer.github.io/convert_logit2prob/,这使我感到怀疑。还是有另一个原因导致模型不太适合?也许我的数据创建过程有些“糟糕”。
我现在需要的是将95%置信区间添加到曲线上。我认为使用bootMer
函数进行引导应该是一个好方法。但是,我发现的所有示例都是在具有单一固定效果的模型上。 @Jamie Murphy提出了类似的问题,但他对以下模型感兴趣,该模型包含连续变量和类别变量作为固定效应:Creating confidence intervals for regression curve in GLMM using Bootstrapping
但是,当涉及具有多个连续变量作为固定效应的模型时,我会迷路。也许有人可以帮助解决此问题-可能需要对本教程的第二部分进行修改: https://www.r-bloggers.com/2015/06/confidence-intervals-for-prediction-in-glmms/