技术标签: 混合线性模型
很多朋友写信问我, 像要知道固定因子的显著性和随机因子的显著性如何计算,他们使用的是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
文章浏览阅读1w次,点赞2次,收藏27次。来源:机器人小妹 很多时候企业拥有重复,乏味且困难的工作流程,这些流程往往会减慢生产速度并增加运营成本。为了降低生产成本,企业别无选择,只能自动化某些功能以降低生产成本。 通过数字化..._人工智能平台
文章浏览阅读2.2k次。热加载能够在每次保存修改的代码后自动刷新 electron 应用界面,而不必每次去手动操作重新运行,这极大的提升了开发效率。安装 electron 热加载插件热加载虽然很方便,但是不是每个 electron 项目必须的,所以想要舒服的开发 electron 就只能给 electron 项目单独的安装热加载插件[electron-reloader]:// 在项目的根目录下安装 electron-reloader,国内建议使用 cnpm 代替 npmnpm install electron-relo._electron-reloader
文章浏览阅读942次。在11.0 进行定制化开发,会根据需要去掉recovery模式的一些选项 就是在device.cpp去掉一些选项就可以了。_android recovery 删除 部分菜单
文章浏览阅读3.7k次。https://www.yuque.com/mnn/cn/cvrt_linux_mac基础依赖这些依赖是无关编译选项的基础编译依赖• cmake(3.10 以上)• protobuf (3.0 以上)• 指protobuf库以及protobuf编译器。版本号使用 protoc --version 打印出来。• 在某些Linux发行版上这两个包是分开发布的,需要手动安装• Ubuntu需要分别安装 libprotobuf-dev 以及 protobuf-compiler 两个包•..._mnn 编译linux
文章浏览阅读1.8k次。CSS3新增动画属性“@-webkit-keyframes”,从字面就可以看出其含义——关键帧,这与Flash中的含义一致。利用CSS3制作动画效果其原理与Flash一样,我们需要定义关键帧处的状态效果,由CSS3来驱动产生动画效果。下面讲解一下如何利用CSS3制作淡入淡出的动画效果。具体实例可参考刚进入本站时的淡入效果。1. 定义动画,名称为fadeIn@-webkit-keyf_css3入场效果淡入淡出
文章浏览阅读2.8k次。计算机系统应包括硬件和软件两个子系统,硬件和软件又必须依次分别包括中央处理器和系统软件。按人的要求接收和存储信息,自动进行数据处理和计算,并输出结果信息的机器系统。计算机是脑力的延伸和扩充,是近代科学的重大成就之一。计算机系统由硬件(子)系统和软件(子)系统组成。前者是借助电、磁、光、机械等原理构成的各种物理部件的有机组合,是系统赖以工作的实体。后者是各种程序和文件,用于指挥全系统按指定的要求进行..._计算机系统包括硬件系统和软件系统 软件又必须包括
文章浏览阅读7.9k次,点赞3次,收藏22次。一 定义这是最早出现的置换算法。该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。但该算法与进程实际运行的规律不相适应,因为在进程中,有些页面经常被访问,比如,含有全局变量、常用函数、例程等的页面,FIFO 算法并不能保证这些页面不被淘汰。这里,我_进程调度fifo算法代码
文章浏览阅读133次。rownum是oracle才有的写法,rownum在oracle中可以用于取第一条数据,或者批量写数据时限定批量写的数量等mysql取第一条数据写法SELECT * FROM t order by id LIMIT 1;oracle取第一条数据写法SELECT * FROM t where rownum =1 order by id;ok,上面是mysql和oracle取第一条数据的写法对比,不过..._mysql 替换@rownum的写法
文章浏览阅读790次,点赞3次,收藏4次。官网下载下载链接:http://www.eclipse.org/downloads/点击Download下载完成后双击运行我选择第2个,看自己需要(我选择企业级应用,如果只是单纯学习java选第一个就行)进入下一步后选择jre和安装路径修改jvm/jre的时候也可以选择本地的(点后面的文件夹进去),但是我们没有11版本的,所以还是用他的吧选择接受安装中安装过程中如果有其他界面弹出就点accept就行..._ecjelm
文章浏览阅读245次。原文链接:https://linux.cn/article-7801-1.htmlifconfigping <IP地址>:发送ICMP echo消息到某个主机traceroute <IP地址>:用于跟踪IP包的路由路由:netstat -r: 打印路由表route add :添加静态路由路径routed:控制动态路由的BSD守护程序。运行RIP路由协议gat..._ifconfig 删除vlan
文章浏览阅读224次。reduxredux里要求把数据都放在公共的存储区域叫store里面,组件中尽量少放数据,假如绿色的组件要给很多灰色的组件传值,绿色的组件只需要改变store里面对应的数据就行了,接着灰色的组件会自动感知到store里的数据发生了改变,store只要有变化,灰色的组件就会自动从store里重新取数据,这样绿色组件的数据就很方便的传到其它灰色组件里了。redux就是把公用的数据放在公共的区域去存..._redux redis
文章浏览阅读2.2k次,点赞3次,收藏6次。unzip版本不支持4G以上的压缩包所以要使用p7zip:Linux一个高压缩率软件wget http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2tar jxvf p7zip_9.20.1_src_all.tar.bz2cd p7zip_9.20.1make && make install 如果安装失败,看一下报错是不是因为没有下载gcc 和 gcc ++(p7_linux 7za解压中文乱码