很多朋友寫信問我, 像要知道固定因子的顯著性和隨機(jī)因子的顯著性如何計算,他們使用的是 1. 載入數(shù)據(jù)和軟件包###載入軟件包和數(shù)據(jù) library(lme4) library(lmerTest) library(sjstats) library(learnasreml) data(fm) 2. 軟件包介紹lme4
lmerTest
install.packages("lmerTest") sjstats
install.packages("lmerTest") 3. 使用lme4進(jìn)行混合線性分析模型介紹
建模 固定因子: Spacing+Rep, 隨機(jī)因子: Fam fm1 <- lmer(h1 ~Spacing + Rep + (1|Fam), fm) 固定因子檢驗 anova(fm1) # 固定因子顯著性檢驗
隨機(jī)因子顯著性檢驗 ranova(fm1) # 隨機(jī)因子顯著性檢驗,LRT 可以看到Fam達(dá)到極顯著 計算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) # 計算每個水平的顯著性
提取方差組分 re_var(fm1) # 計算方差組分 _sigma_2 50.7633345854535
Fam_tau.00 11.3168413429073 4. 使用asreml進(jìn)行對照建模 library(asreml) fm2 = asreml(h1 ~ Spacing + Rep, random = ~ Fam, data=fm,trace=F) 固定因子檢驗 隨機(jī)因子顯著性檢驗 這里首先構(gòu)建一個空模型, 然后使用LRT檢驗 fm_Null = asreml(h1 ~ Spacing + Rep, data=fm,trace=F) lrt.asreml(fm2,fm_Null) # 隨機(jī)因子顯著性檢驗LRT summary(fm2)$varcomp[,1:2] # 方差組分
還有一個包叫 library(MuMIn) r.squaredLR(fm1)#計算R2
0.217233511687581 6. 完整代碼分享# 混合線性模型, 如何檢測固定因子和隨機(jī)因子
###載入數(shù)據(jù) library(lme4) library(lmerTest) library(sjstats) library(learnasreml) data(fm) str(fm)
### 固定因子: Spacing+Rep, 隨機(jī)因子: Fam fm1 <- lmer(h1 ~Spacing + Rep + (1|Fam), fm) summary(fm1)
anova(fm1) # 固定因子顯著性檢驗 ranova(fm1) # 隨機(jī)因子顯著性檢驗,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) # 隨機(jī)因子顯著性檢驗LRT summary(fm2)$varcomp[,1:2] # 方差組分
library(MuMIn) r.squaredLR(fm1)#計算R2 |
|