微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R:GLMM中的回归线和置信区间具有几个固定影响

如何解决R:GLMM中的回归线和置信区间具有几个固定影响

以某种方式跟踪问题Creating confidence intervals for regression curve in GLMM using Bootstrapping,我感兴趣的是获取回归曲线和相关的置信区间曲线的正确值。

考虑在GLMM中有一个响应变量,两个连续固定效应和一个随机效应的情况。这是一些虚假数据:

library (dplyr)

set.seed (1129)
x1 <- runif(100,1)
x2 <- rnorm(100,0.5,0.4)
f1 <- gl(n = 5,k = 20)
rnd1<-rnorm(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)

enter image description here

应该有可能从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")

enter image description here

我认为,蓝色线条看起来不太好(当然,红色线条更糟)。因此,作为一个附带问题: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/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。