混合线性模型如何检测固定因子和随机因子的显著性以及计算R2_混合效应模型怎么计算r2-程序员宅基地

技术标签: 混合线性模型  

很多朋友写信问我, 像要知道固定因子的显著性和随机因子的显著性如何计算,他们使用的是lme4这个R包, 但是这个包使用anova时没有P值,还要手动计算, 随机因子也需要自己计算loglikehood值, 然后使用LRT的卡方检验进行显著性检验, 其实lme4包有扩展的包可以非常友好的做这件事情.

1. 载入数据和软件包

###载入软件包和数据
library(lme4)
library(lmerTest)
library(sjstats)
library(learnasreml)
data(fm)

2. 软件包介绍

lme4

  • R语言中最流行的混合线性包
  • 结果不太友好, 所以才有下面两个包作为辅助
  • 安装方法
install.packages("lme4")

lmerTest

  • 主要是用于检测lme4对象的固定因子和随机因子,它有两个函数:
  • lmerTest::anova.lmerModLmerTest用于检测固定因子的显著性, 方差分析表采用III平方和的形式.
  • lmerTest::ranova用于检测随机因子的显著性, 使用的是LRT检验, 给出的是卡方结果.
  • 安装方法
install.packages("lmerTest")

sjstats

  • 可以计算R2
  • 可以提取方差组分
  • 安装方法
install.packages("lmerTest")

3. 使用lme4进行混合线性分析

模型介绍

  • 固定因子: Spacing + Rep
  • 随机因子: Fam

建模

### 固定因子: Spacing+Rep, 随机因子: Fam
fm1 <- lmer(h1 ~Spacing + Rep + (1|Fam), fm)

固定因子检验

anova(fm1) # 固定因子显著性检验
Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
Spacing 1775.888 1775.888 1 786.2359 34.98368 4.957481e-09
Rep 5339.632 1334.908 4 781.5386 26.29670 1.762292e-20

可以看到Spacing 和Rep都达到极显著

随机因子显著性检验

ranova(fm1) # 随机因子显著性检验,LRT
npar logLik AIC LRT Df Pr(>Chisq)
<none> 8 -2831.504 5679.008 NA NA NA
(1 | Fam) 7 -2876.161 5766.323 89.31466 1 3.367543e-21

可以看到Fam达到极显著

计算R2

r2(fm1) # 计算R2
R-Squared for Generalized Linear Mixed Model

[34mFamily : gaussian (identity)
Formula: h1 ~ Spacing + Rep + (1 | Fam)

[39m   Marginal R2: 0.116
Conditional R2: 0.277

计算固定因子每个水平的P值


p_value(fm1) # 计算每个水平的显著性

term p.value std.error
(Intercept) 1.535094e-127 0.7915991
Spacing3 4.957481e-09 0.5463546
Rep2 2.886600e-01 0.8082299
Rep3 7.443430e-08 0.8218056
Rep4 1.720753e-10 0.7995633
Rep5 4.635631e-01 0.7663026

提取方差组分

re_var(fm1) # 计算方差组分
_sigma_2
50.7633345854535
Fam_tau.00
11.3168413429073

4. 使用asreml进行对照

建模

library(asreml)
fm2 = asreml(h1 ~ Spacing + Rep, random = ~ Fam, data=fm,trace=F)

固定因子检验

anova(fm2) # 固定因子显著性检验, 这里anova 是anova.asreml
Df Sum of Sq Wald statistic Pr(Chisq)
(Intercept) 1 253059.46646 4985.08358 0.000000e+00
Spacing 1 1164.71720 22.94406 1.667844e-06
Rep 4 5339.63197 105.18678 0.000000e+00
residual (MS) NA 50.76333 NA NA

随机因子显著性检验

这里首先构建一个空模型, 然后使用LRT检验

fm_Null = asreml(h1 ~ Spacing + Rep, data=fm,trace=F)

lrt.asreml(fm2,fm_Null) # 随机因子显著性检验LRT
Df LR statistic Pr(Chisq)
fm2/fm_Null 1 89.31466 0
summary(fm2)$varcomp[,1:2] # 方差组分
gamma component
Fam!Fam.var 0.2229334 11.31684
R!variance 1.0000000 50.76333

5. 关于混合线性模型计算R2

还有一个包叫MuMIn,也可以计算R2

library(MuMIn)
r.squaredLR(fm1)#计算R2

0.217233511687581

6. 完整代码分享

# 混合线性模型, 如何检测固定因子和随机因子

###载入数据
library(lme4)
library(lmerTest)
library(sjstats)
library(learnasreml)
data(fm)
str(fm)

### 固定因子: Spacing+Rep, 随机因子: Fam
fm1 <- lmer(h1 ~Spacing + Rep + (1|Fam), fm)
summary(fm1)

anova(fm1) # 固定因子显著性检验
ranova(fm1) # 随机因子显著性检验,LRT

r2(fm1) # 计算R2

p_value(fm1) # 计算每个水平的显著性

re_var(fm1) # 计算方差组分


### 对比asreml
fm2 = asreml(h1 ~ Spacing + Rep, random = ~ Fam, data=fm)
anova(fm2) # 固定因子显著性检验, 这里anova 是anova.asreml
fm_Null = asreml(h1 ~ Spacing + Rep, data=fm)
lrt.asreml(fm2,fm_Null) # 随机因子显著性检验LRT
summary(fm2)$varcomp[,1:2] # 方差组分


library(MuMIn)
r.squaredLR(fm1)#计算R2

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yijiaobani/article/details/90045837

智能推荐

usb hid gadget模拟鼠标键盘_usb host gadget模拟鼠标-程序员宅基地

文章浏览阅读1.5w次,点赞7次,收藏24次。在lichee/linux-3.3/drivers/usb/gadget_usb host gadget模拟鼠标

图形化方式和模板方式创建KVM虚拟机_kvm图形化-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏9次。一、搭建环境首先搭建一个图形化界面的centos操作系统1 打开虚拟化引擎2 安装相关软件yum -y install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager wget3 启动服务并开启开机自动启动systemctl enable libvirtd && systemctl start libvirtd二、图形化方式创建虚拟机1 上传镜像文件到宿主机(阿里云镜像_kvm图形化

SATI下载-安装-使用 一看便懂+spss聚类(附安装包)-程序员宅基地

文章浏览阅读1.1w次,点赞22次,收藏91次。1.下载安装包网盘提取:链接:https://pan.baidu.com/s/1jeZq3v9Lby5DDQUa7vbNoQ提取码:msn72.安装解压---点击.exe文件进行安装----使用3.使用实例如果有数据可以直接导入进行分析,这里是第一次使用,数据获取也分享一下首先打开知网,输入“人工智能”进行检索选择60条数据进行导出 打开SATI软件,选择刚刚导出的文件,1.2.3部完成后,点击转换按钮将转换后的文件保存,点击下面ok,i ..._sati下载

ps自定义形状工具_Acorn for Mac(轻量级图片处理工具)-程序员宅基地

文章浏览阅读573次。Acorn for Mac是一款运行在Mac OS X平台上的一款轻量级图片处理软件,它具备全面的图像编辑工具、圆形文字工具、矢量工具、各种照片效果等,如果你非常想编辑一些照片,但又不想打开类似于PS那样的大型图片处理软件,不妨可以试试这款acorn for mac,acorn mac 下载拥有ps的基础工具和滤镜效果,允许用户对图片进行移动和调整形状,作为ps的轻量级替代者,它功能强大,小巧简便..._ps 复制剪切粘贴形状下载 csdn

android原生!史上最全的Android面试题集锦,快来收藏!_安卓面试题-程序员宅基地

文章浏览阅读337次。开头在大厂,写得一手好文档是一个非常吃香的技能。这可不只是一个锦上添花的东西,而是很多工程师晋升,打造自己话语权的武器。 我这两年在组内的深刻体会就是,大部分厉害的高级工程师(不包括那些纯混日子靠资历晋升的人),写文档的能力一点也不含糊,很能抓住上级和项目的G点。可能有人会觉得,我技术牛逼就行了,为啥还要提高写文档的能力,有这功夫我还不如多看看源码分析?这是一些初级或者刚入门的工程师的普遍的困惑。这是因为大部分刚刚入行的朋友有一个很深的误区,就是他们以为做软件工程是一个和计算机打交道的工作,其实不然。_安卓面试题

C# 之 WPF 统计图表开发方案_c# wpflivechart-程序员宅基地

文章浏览阅读9.2k次,点赞8次,收藏72次。C# 之 WPF 统计图表开发文档一、前言二、环境配置1、开发环境2、加载 LiveCharts 库3、添加必须的头文件三、基础图形1、柱状图一、前言本项目的统计图使用LiveCharts 控件集成。LiveCharts, 官网:https://lvcharts.net 是一款简单,灵活,交互式和强大的 DOTNET数据可视化图表控件,内置多种统计图表,可满足本项目的需求。二、环境配置..._c# wpflivechart

随便推点

Java泛型的学习和使用_java泛型需要学吗-程序员宅基地

文章浏览阅读283次。前面,由于对泛型擦除的思考,引出了对Java-Type体系的学习。本篇,就让我们继续对“泛型”进行研究:JDK1.5中引入了对Java语言的多种扩展,泛型(generics)即其中之一。1. 什么是泛型?泛型,即“参数化类型”,就跟在方法或构造函数中普通的参数一样,当一个方法被调用时,实参替换形参,方法体被执行。当一个泛型声明被调用,实际类型参数取代形式类型参数。 ..._java泛型需要学吗

在Python中,如何将一个字符串数组转换成整型数组_python 字符串数组转为整数数组-程序员宅基地

文章浏览阅读6.2k次,点赞4次,收藏12次。py1:>>> arr = ['22','44','66','88']>>> arr = map(int,arr)>>> print(arr)[22, 44, 66, 88]py2:>>> arr = ['22','44','66','88']>>> arr = list(map(int,arr))>>> print(arr)[22, 44, 66, 88]_python 字符串数组转为整数数组

u3d_6.如何销毁—nunityengine.objec及其子类-程序员宅基地

文章浏览阅读2.2k次。题目归类区(看题目字体颜色识第几部分)ps :下面题目可能稍有点多,翻页会较麻烦,根据题目的颜色辨别是第几部分吧(超链接功能不会,也懒得做了)第一部分1. 请简述值类型与引用类型的区别2.C# 中所有引用类型的基类是什么3. 请简述 ArrayList 和 List 的主要区别4. 请简述 GC (垃圾回收)产生的原因,并描述如何避免?5. _6.如何销毁—nunityengine.objec及其子类

数字人轻松学习Blender系列之八:建模-5_digitalman数字人c4d-程序员宅基地

文章浏览阅读870次。https://www.jianshu.com/p/991e308affd8 【前言】这一篇简单谈谈如何创建点、线、面,尤其是面的一些命令。【学习】一、创建边面工具快捷键 :F1、如果选择两个点将创建一条边。在正视图建立一个平面,按TAB键进入编辑模式,按A 取消对平面选择。按CTRL+鼠标左键点击创建一个点,按A 取消;再如此操作,创建三个点。选择..._digitalman数字人c4d

java栈和队列验证回文串_数据结构作业之栈和队列实现字符串回文数判断-程序员宅基地

文章浏览阅读949次。字符串回文的判断是比较常见的问题,有各种方法来判断回文串。在数据结构中,利用栈和队列的特性也可以来实现回文判断。我们将字符串压入栈,然后在弹出,将弹出的元素压入队列,并出队进行判断。大概的思路就是这样,很久之前写的了,具体的实现思路都忘了,大概阐述下思路,在这里做个笔记,方便以后看看。下面我们来看看实现:#include #include #include #include "windows.h"..._java用队列和栈判断一个字符串是否是回文串

Error: Loading PostCSS Plugin failed: Cannot find module ‘postcss-import‘_cannot find module 'postcss-import-程序员宅基地

文章浏览阅读2w次,点赞3次,收藏16次。Vue cli-3使用css转换postcss插件报错Error: Loading PostCSS Plugin failed: Cannot find module ‘postcss-import’寻找错误解决问题1.安装npm install postcss-px-to-viewport --save-dev2.添加配置文件postcss-config.js运行报错报错提示:没有找到 postcss-import模块猜想:①使用postcss插件需要额外npm install pos_cannot find module 'postcss-import