交互作用失败lmerTest与In pf(F.stat,qr(Lc)$ rank,nu.F):产生的NaN

我试图在两个单独的数据集上执行lmerTest,出于某种原因,跟踪其中一个数据集的错误。

在PF(F.stat,QR(LC)$排名,nu.F):NaN的生产

This dataset给我的交互项的habitatsoil之间没有问题的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)然而抛出错误,并且不能给出habitatlight之间交互的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

回到顶部