技术标签: 混合线性模型
很多朋友写信问我, 像要知道固定因子的显著性和随机因子的显著性如何计算,他们使用的是lme4
这个R包, 但是这个包使用anova时没有P值,还要手动计算, 随机因子也需要自己计算loglikehood值, 然后使用LRT的卡方检验进行显著性检验, 其实lme4包有扩展的包可以非常友好的做这件事情.
###载入软件包和数据
library(lme4)
library(lmerTest)
library(sjstats)
library(learnasreml)
data(fm)
lme4
install.packages("lme4")
lmerTest
lmerTest::anova.lmerModLmerTest
用于检测固定因子的显著性, 方差分析表采用III平方和的形式.lmerTest::ranova
用于检测随机因子的显著性, 使用的是LRT检验, 给出的是卡方结果.install.packages("lmerTest")
sjstats
install.packages("lmerTest")
模型介绍
建模
### 固定因子: 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) # 计算方差组分
建模
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 |
还有一个包叫MuMIn
,也可以计算R2
library(MuMIn)
r.squaredLR(fm1)#计算R2
0.217233511687581
# 混合线性模型, 如何检测固定因子和随机因子
###载入数据
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
文章浏览阅读1.4k次,点赞12次,收藏20次。最近正在写【高并发专题】的文章,其中,在【高并发专题】中,有不少是分析源码的文章,很多读者留言说阅读源码比较枯燥!问我程序员会使用框架了,会进行CRUD了,是否真的有必要阅读框架源码?!_学编程 需要看开源代码吗知乎
文章浏览阅读10w+次,点赞291次,收藏869次。1 int与Integer的基本使用对比(1)Integer是int的包装类;int是基本数据类型; (2)Integer变量必须实例化后才能使用;int变量不需要; (3)Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ; (4)Integer的默认值是null;int的默认值是0。2 int与Integer的深入对比(1)由于In..._int和integer
文章浏览阅读1.5k次。为实现数据与逻辑代码的分离,可以把数据单独存放,一般用xml 和json格式来存储数据。XML介绍 XML 指可扩展标记语言(EXtensible Markup Language),很类似 HTML。XML 的设计宗旨是传输数据,而非显示数据。 来个xml示例: 张信哲<_传参用xml和json
文章浏览阅读455次。以下数据来自网络,不清楚怎么统计的,也不知道准确性,供参考!2021年5月全国招收程序员429056人。2021年5月全国程序员平均工资14926元,工资中位数13000元,其中96%的人..._go薪资
文章浏览阅读1.3k次。从360度视频到Oculus,通过Facebook 360音频编码与渲染都可实现身临其境的感受,并且使用的声道更少,小于0.5毫秒的渲染延迟。Facebook技术团队撰文对此进行了解读,LiveVideoStack对文章进行了编译。文 / Hans Fugal, Varun Nair译 / 郭俊翔审校 / 包研• 全新的360度空间音频编码和渲染技术,使得空间化的音频在从编辑者到用户的整个处理过程
文章浏览阅读2.5w次,点赞10次,收藏34次。stdafx.h在使用过Visual Studio,VC++的时候,我们新建工程的时候往往在每个.cpp文件的最前面都有一个#include "stdafx.h"。这个文件有他的作用,下面介绍其原理和使用过程中会遇到的一些问题。简介stdafx,全称Standard Application Framework Extensions,标准引用框架扩展。 其实就是头文件预编译,我们知道C..._无法打开预编译头文件 pch
文章浏览阅读302次,点赞3次,收藏10次。推荐开源项目:GCR Cleaner - 管理你的Google Cloud Registry高效又省心项目地址:https://gitcode.com/GoogleCloudPlatform/gcr-cleaner项目简介GCR Cleaner 是一个由 Google Cloud Platform 团队开发的工具,用于自动化清理 Google Cloud Registry (GCR) 中无用...
文章浏览阅读1.7k次。背景在实际的机器视觉项目应用当中图像质量效果是视觉处理方案能否准确和稳定运行的关键因素。在遇到存在噪点的图像时,最常用的图像预处理方法就是进行中值滤波。中值滤波去除图像上存在孤立的噪声点有很好的应用效果,它能提高图像的平滑度。 它在去除噪点时,能够保护图像的边缘,使之不被模糊,保留大部分边缘信息。_labview中值滤波
文章浏览阅读6.1k次。基于Segger的emwin进行液晶屏上的图形开发,减低了很多工作量,也非常的好移植,ST系列的单片机上可以免授权使用。 emwin自带了很多字体,有各种大小的数字的字体,可以在GUI.h里面看到定义了的字体。emwin工程里自带了匹配该版本的图片和字体的生成工具。字体的生成工具FontCvtST。 为了节省内存空间,我们只需要关注自己要用到的字符。_emwin自带字库吗
文章浏览阅读3.5k次,点赞3次,收藏3次。处理鼠标事件、键盘事件及实例,单击“OK”按钮,此时项目目录树右区资源文件下新增了一个“/new/prefix1”子目录项,单击该区下方“添加”按钮上的 ,选“添加文件”,按照如图11.6所示的步骤操作,在弹出的对话框中选择“image/image.png”文件,单击“打开”按钮,将该图片添加到项目中。② 在弹出的对话框中选择资源要存放的路径,如图11.4所示,在“名称”栏中填写资源名称“keyevent”。_qt5开发及实例v2.0-第十一章-qt事件处理及实例
文章浏览阅读2.7k次。/enableMapClick:false 表示禁止地图内景点信息点击// 设置地图允许的最大最小级别// 开启鼠标滚轮缩放// 设置中心点坐标和地图级别// 创建自定义标记 参数:自定义图片路径 大小 偏移量)// 根据坐标批量生成自定义图标点// 创建点// 创建标注// 将标注添加到地图中// 给标记点添加点击事件执行想进行的操作(经个人测试在此处注册点击事件效果最佳,该有的数据项都可以获取)})})},// 创建一个新图标)_vue使用百度地图
文章浏览阅读67次。PHP源码阅读笔记一一、explode和implode函数array explode ( string separator, string string [, int limit] )此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 separator 作为边界点分割出来。如果设置了 limit 参数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含..._implode(): argument must be an array