交互作用失败lmerTest与In pf(F.stat,qr(Lc)$ rank,nu.F):产生的NaN
我试图在两个单独的数据集上执行lmerTest,出于某种原因,跟踪其中一个数据集的错误。
在PF(F.stat,QR(LC)$排名,nu.F):NaN的生产
This dataset给我的交互项的habitat
和soil
之间没有问题的p值。它具有相似的结构
Analysis of Variance Table of type III with Satterthwaite approximation for degrees of freedom
Sum Sq Mean Sq NumDF DenDF F.value Pr(>F)
habitat 0.057617 0.028809 2 8.8434 1.0880 0.37805
soil 0.232708 0.232708 1 2.6732 8.7888 0.06848 .
habitat:soil 0.308003 0.154001 2 2.7134 5.8163 0.10443
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
This dataset |
ANOVA(种),数据= frl_light, REML = T)11聚物(SQRT(绝对压力)〜栖息*土壤+(1)然而抛出错误,并且不能给出
habitat
和light
之间交互的p值。密度自由度测量也是0,这可能是问题。ANOVA(11聚物(SQRT(绝对压力)〜栖*光+(1 |种),数据= frl_soil, REML = T))
Analysis of Variance Table of type III with Satterthwaite
approximation for degrees of freedom
Sum Sq Mean Sq NumDF DenDF F.value Pr(>F)
habitat 0.00845 0.004223 2 7.9751 0.3494 0.7154
light 0.01634 0.016336 1 1.9241 1.3517 0.3689
habitat:light 0.42813 0.214067 2 0.0000 17.7124
Warning message:
In pf(F.stat, qr(Lc)$rank, nu.F) : NaNs produced
我不知道为什么lmerTest适用于一个数据集,但不适用于其他数据集,因为两个数据集至少在我看来都是实际上难以区分的。如果有人能够解决这个问题,请提供帮助。
更新1:我试过本博尔克的建议,而不是使用肯沃德罗杰估计。但是,我们的答案似乎有所不同。我正在运行R 3.3.1,lme4 1.1-12和lmerTest 2.0-32。这是我的输出
ANOVA(11聚物(SQRT(绝对压力)〜栖*光+(1 |种), +数据= frl_soil,REML = T), + DDF = “Kenward-罗杰”)
anova from lme4 is returned
some computational error has occurred in lmerTest
Analysis of Variance Table
Df Sum Sq Mean Sq F value
habitat 2 0.00244 0.001219 0.1009
light 1 0.00476 0.004763 0.3941
habitat:light 2 0.42813 0.214067 17.7124
更新1.1:这是与SAS,其中,I与ABS的平方根增加一个附加列,作为sqrtabs混合模型分析的输出。
FILENAME REFFILE'/folders/myfolders/frl_soil.csv';
PROC IMPORT DATAFILE = REFFILE DBMS = CSV OUT = WORK.FRLSOIL; GETNAMES = YES;跑;
PROC CONTENTS DATA = WORK.FRLSOIL;跑;
%web_open_table(WORK.FRLSOIL);
PROC MIXED数据= WORK。FRLSOIL; CLASS物种栖息地light sqrtabs; model sqrtabs =栖息地光栖息地* light/DDFM = KENWARDROGER; 随机拦截物种; 跑;
Type 3 Tests of Fixed Effects
Effect Num DF Den DF F Value Pr > F
habitat 2 10 1.11 0.3681
light 1 10 0.45 0.5159
habitat*light 2 10 0.27 0.7716
回答:
我不能告诉你到底为什么萨特斯韦特近似这里为您提供了一个零DF估计(这确实是为什么你的错误和相互作用没有$ P $ - 值);你必须仔细研究代码才能看到(键入lmerTest:::calcSatterthMultDF
并开始挖掘...)我做了一个小挖掘位;关键线在其中是
E <- sum((nu.m/(nu.m - 2)) * as.numeric(nu.m > 2)) nu.F <- 2 * E * as.numeric(E > q)/(E - q)
其中(我认为)nu.m
($ \ nu_m $)是自由度的数目由Welch-Satterthwaite approximation作为估计。我不知道为什么(1)lmerTest
设置为E
,因此nu.F
为0时为nu.m <= 2
; (2)在一个数据集内的组内差异的特定组合给出nu.m < 2
,并且在另一个数据集中不存在...
同时,如果你喜欢,你可以使用Kenward-Roger近似值(它在计算上更昂贵,但总体上稍微更精确...)使用来自第二链路的数据集:
frl_soil <- read.csv("frl_soil.csv") library(lmerTest)
head(frl_soil,2)
## X species habitat light abs
## 1 1 ANI2GR gen G.cs 2.67477395
## 2 2 DIPTAC gen G.cs 0.09549154
anova(lmer(sqrt(abs) ~ habitat*light + (1|species),
data=frl_soil, REML=TRUE),
ddf="Kenward-Roger")
## Analysis of Variance Table of type III with Kenward-Roger
## approximation for degrees of freedom
## Sum Sq Mean Sq NumDF DenDF F.value Pr(>F)
## habitat 0.00842 0.004208 2 8.1220 0.3482 0.71602
## light 0.01568 0.015679 1 2.0712 1.2973 0.36928
## habitat:light 0.40886 0.204432 2 2.0713 16.9152 0.05212 .
sessionInfo()
## other attached packages:
## [1] lmerTest_2.0-32 lme4_1.1-13 Matrix_1.2-6
以上是 交互作用失败lmerTest与In pf(F.stat,qr(Lc)$ rank,nu.F):产生的NaN 的全部内容, 来源链接: utcz.com/qa/257644.html