为什么我在 lmerTest 中使用 ls_means 语句得到空结果?

如何解决为什么我在 lmerTest 中使用 ls_means 语句得到空结果?

这是我的数据:

subject     arm treat   bline   change
'subject1'  'L' N   6.3597  4.9281
'subject1'  'R' T   10.3499 1.8915
'subject3'  'L' N   12.4108 -0.9008
'subject3'  'R' T   13.2422 -0.7357
'subject4'  'L' T   8.7383  2.756
'subject4'  'R' N   10.8257 -0.531
'subject5'  'L' N   7.1766  2.0536
'subject5'  'R' T   8.1369  1.9841
'subject6'  'L' T   10.3978  9.0743
'subject6'  'R' N   11.3184  3.381
'subject8'  'L' T   10.7251  2.9658
'subject8'  'R' N   10.9818  2.9908
'subject9'  'L' T   7.3745   2.9143
'subject9'  'R' N   9.4863  -3.0847
'subject10' 'L' T   11.8132  -2.1629
'subject10' 'R' N   9.5287   0.1401
'subject11' 'L' T   8.2977   6.2219
'subject11' 'R' N   9.3691   0.7408
'subject12' 'L' T   12.6003  -0.7645
'subject12' 'R' N   11.7329  0.0342
'subject13' 'L' N   9.4918  2.0716
'subject13' 'R' T   9.6205  1.5705
'subject14' 'L' T   9.3945  4.6176
'subject14' 'R' N   11.0176 1.445
'subject16' 'L' T   8.0221  1.4751
'subject16' 'R' N   9.8307  -2.3697

当我使用 treatarm 作为因子拟合混合模型时:

m <- lmer(change ~ bline + treat + arm + (1|subject),data=change1)
ls_means(m,which = NULL,level=0.95,ddf="Kenward-Roger")

ls_means 语句不返回结果。任何人都可以帮助解决问题吗?

解决方法

我们需要更多信息。这是一个看起来不错的可重现示例:

# Standard
logical.vector = c(TRUE,TRUE,FALSE,TRUE)

# Test Patterns

# Case 1 (non-match): should be FALSE
!any(logical.vector != c(TRUE,TRUE))
 
# Case 2 (non-match): should be FALSE
!any(logical.vector != c(FALSE,TRUE)) 

# Case 3 (non-match): should be FALSE
!any(logical.vector != c(TRUE,TRUE)) 

# Case 4 (non-match): should be FALSE
!any(logical.vector != c(FALSE,FALSE)) 

# Case 5 (match): should be TRUE
!any(logical.vector != c(TRUE,TRUE)) 

此时我最好的猜测是您在模型拟合方面遇到了一些问题。 set.seed(101) library(lme4) library(lmerTest) dd <- expand.grid(subject=factor(1:40),arm=c("L","R")) ## replicate N/T in random order for each subject dd$treat <- c(replicate(40,sample(c("N","T")))) dd$bline <- rnorm(nrow(dd)) dd$change <- simulate(~bline+treat+arm+(1|subject),newdata=dd,newparams=list(beta=rep(1,4),theta=1,sigma=1))[[1]] m <- lmer(change ~ bline + treat + arm + (1|subject),data=dd) ls_means(m,which = NULL,level=0.95,ddf="Kenward-Roger") ## Least Squares Means table: ## ## Estimate Std. Error df t value lower upper Pr(>|t|) ## armL 1.37494 0.22716 55.6 6.0527 0.91981 1.83007 1.275e-07 *** ## armR 2.54956 0.22716 55.6 11.2235 2.09443 3.00469 6.490e-16 *** 有时可能是不透明/吞咽警告或错误消息。你有没有收到任何你忽略告诉我们的警告?如果您使用 lmerTest 重新运行模型(即使用 lme4::lmer(...) 中的基本版本,而不是 lme4 中的增强版本),您是否看到任何警告?

,

我也看到空结果:

> ls_means(m,ddf="Kenward-Roger")
Least Squares Means table:

     Estimate Std. Error df t value lower upper Pr(>|t|)

  Confidence level: 95%
  Degrees of freedom method: Kenward-Roger 

但是,emmeans 包运行良好。您可以使用 emmeans()lsmeans() - 后者只是重新标记 emmeans() 结果。 “估计边际均值”是一个更通用的术语。

> library(emmeans)
> lsmeans(m,"treat")
 treat lsmean   SE df lower.CL upper.CL
 N      0.996 0.72 15   -0.539     2.53
 T      2.290 0.72 15    0.755     3.82

Results are averaged over the levels of: arm 
Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

> lsmeans(m,"arm")
 arm lsmean    SE   df lower.CL upper.CL
 L     1.97 0.737 15.6    0.403     3.53
 R     1.32 0.737 15.6   -0.248     2.88

Results are averaged over the levels of: treat 
Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

我怀疑 lmerTest::ls_means() 不支持“字符”类的预测器。如果您将 treatarm 更改为因数,它可能会起作用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?