R语言建立和可视化混合效应模型mixed effect model

最近我们被客户要求撰写关于混合效应模型的研究报告。我们已经学习了如何处理混合效应模型

由Kaizong Ye,Sherry Deng撰写

本文的重点是如何建立和可视化混合效应模型的结果。本文使用数据集,用于探索草食动物种群对珊瑚覆盖的影响。


knitr::opts_chunk$set(echo = TRUE)

library(tidyverse) # 数据处理
library(lme4) #  lmer   glmer 模型



me_data <- read_csv("mixede.csv")

创建一个基本的混合效应模型:

该模型以珊瑚覆盖层为因变量(elkhorn_LAI),草食动物种群和深度为固定效应(c。 urchinden,c.fishmass,c.maxD)和调查地点作为随机效应(地点)。

注意:由于食草动物种群的测量规模存在差异,因此我们使用标准化的值,否则模型将无法收敛。我们还使用了因变量的对数。我正在根据这项特定研究对数据进行分组。

summary(mod)
## Linear mixed model fit by maximum likelihood  ['lmerMod']

## 
##      AIC      BIC   logLik deviance df.resid 
##    116.3    125.1    -52.1    104.3       26 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -1.7501 -0.6725 -0.1219  0.6223  1.7882 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  site     (Intercept) 0.000    0.000   
##  Residual             1.522    1.234   
## Number of obs: 32, groups:  site, 9
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)  10.1272     0.2670  37.929
## c.urchinden   0.5414     0.2303   2.351
## c.fishmass    0.4624     0.4090   1.130
## c.maxD        0.3989     0.4286   0.931
## 
## Correlation of Fixed Effects:
##             (Intr) c.rchn c.fshm
## c.urchinden  0.036              
## c.fishmass  -0.193  0.020       
## c.maxD       0.511  0.491 -0.431
## convergence code: 0
## boundary (singular) fit: see ?isSingular

绘制效应大小图:

如果您有很多固定效应,这很有用。


自适应网页宽度的 Bilibili 视频

视频

线性混合效应模型(LMM,Linear Mixed Models)和R语言实现案例

探索见解

去bilibili观看

探索更多视频

plot(mod)

效应大小的格式化图:

让我们更改轴标签和标题。

# 注意:轴标签应按从下到上的顺序排列。 
# 要查看效应大小和p值,设置show.values和show.p= TRUE。只有当效应大小的值过大时,才会显示P值。
  title="草食动物对珊瑚覆盖的影响")

创建模型摘要输出表。这将提供预测变量,包括其估计值,置信区间,估计值的p值以及随机效应信息。

 tab(mod)

格式化表格

# 注:预测标签(pred.labs)应从上到下排列;dv.labs位于表格顶部的因变量的名称。


                  pred.labels =c("(Intercept)", "Urchins", "Fish", "Depth"), 

R语言 线性混合效应模型实战案例

阅读文章


用数据绘制模型估计

我们可以在实际数据上绘制模型估计值!我们一次只针对一个变量执行此操作。注意:数据已标准化以便在模型中使用,因此我们绘制的是标准化数据值,而不是原始数据

步骤1:将效应大小估算值保存到data.frame中


随时关注您喜欢的主题


# 使用函数。 term=固定效应,mod=你的模型。

effect(term= "c.urchinden", mod= mod)
summary(effects) #值的输出
## 
##  c.urchinden effect
## c.urchinden
##     -0.7      0.4        2        3        4 
##  9.53159 10.12715 10.99342 11.53484 12.07626 
## 
##  Lower 95 Percent Confidence Limits
## c.urchinden
##      -0.7       0.4         2         3         4 
##  8.857169  9.680160 10.104459 10.216537 10.306881 
## 
##  Upper 95 Percent Confidence Limits
## c.urchinden
##     -0.7      0.4        2        3        4 
## 10.20601 10.57414 11.88238 12.85314 13.84563
# 将效应值另存为df:
x  <- as.data.frame(effects)

步骤2:使用效应值df绘制估算值

如果要保存基本图(仅固定效应和因变量数据),可以将其分解为单独的步骤。注意:对于该图,我正在基于此特定研究对数据进行分组。

#基本步骤:
  #1创建空图

  #2 从数据中添加geom_points()

  #3 为模型估计添加geom_point。我们改变颜色,使它们与数据区分开来

  #4 为MODEL的估计值添加geom_line。改变颜色以配合估计点。

  #5 添加具有模型估计置信区间的geom_ribbon

  #6 根据需要编辑标签!

#1
chin_plot <- ggplot() + 
  #2
geom_point(data ,  + 
  #3
  geom_point(data=x_, aes(x= chinde, y=fit), color="blue") +
  #4
  geom_line(data=x, aes(x= chinde, y=fit), color="blue") +
  #5
  geom_ribbon(data= x , aes(x=c.urchinden, ymin=lower, ymax=upper), alpha= 0.3, fill="blue") +
  #6
  labs(x="海胆(标准化)", y="珊瑚覆盖层")

chin_plot


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds