首页 > 解决方案 > lsmeans:eval 中的错误(predvars,data,env):找不到对象“位置”

问题描述

因此,我使用 CLM 运行了具有特定列的双向序数回归:gra、location、species 并且它起作用了:

gra.f <- clm(gra ~ location + species + location:species, data = gra)

现在我正在尝试使用 lsmeans 函数成对运行:

pwise <- lsmeans(gra.f, 
                   pairwise ~ location + species, 
                   adjust="tukey")

我得到: eval 中的错误(predvars,data,env):找不到对象“位置”

我不确定我知道问题是什么

PS:如果我删除位置并尝试只做物种,错误仍然是“找不到位置”

标签: rlsmeans

解决方案


lsmeans必须重建数据集(包括所有预测值)以确定参考网格。您报告的错误消息是因为它无法做到这一点。我唯一能猜到的是,用于拟合模型的数据框不再位于工作区或搜索路径中。

如果您恢复数据集或使其可见,lsmeans应该再次工作。或者,添加, data = gralsmeans()通话中。

更新 1

事实证明,问题出现在处理该模型排名不足这一事实的代码中。具有讽刺意味的是,我认为它与序号NEWS文件中的这个条目有关: 2014-11-12: - Reimplementation of formula, model.frame and design matrix processing motivated by a bug in model.matrix.clm and predict.clm reported by Russell Lenth 2014-11-07 when implementing lsmeans support for clm::ordinal.

我已经输入了一些代码来解决这个问题,显然,

  1. 我的解决方法只在上述更新之前有效
  2. 在过去的 4 年中,没有多少用户遇到排名不足的序数模型;或者至少我没有收到他们的消息,如果他们这样做了。

我现在正试图记住哪些代码行是我的解决方法,哪些仍然需要......当我解决了这个问题后,我会将它推送到emmeans的 github 存储库,并且在一个月左右的时间里,emmeans将在 CRAN 上更新(它将是大于 1.3.1 的版本)。更新emmeans也会使lsmeans工作,因为现在它只是emmeans的前端。

更新 2

现在似乎已修复:

> lsmeans(gra.f, 
+         pairwise ~ location + species, 
+         adjust="tukey")

$`lsmeans`
 location species  lsmean    SE  df asymp.LCL asymp.UCL
 B10      HD       nonEst    NA  NA        NA        NA
 B30      HD       nonEst    NA  NA        NA        NA
 B50      HD       nonEst    NA  NA        NA        NA
 B70      HD      -0.2802 0.191 Inf  -0.65519    0.0949
 Black Pt HD      -0.1298 0.325 Inf  -0.76730    0.5077
 Bolongo  HD       nonEst    NA  NA        NA        NA
      ... Several rows of output omitted ...
 SMA      TT       nonEst    NA  NA        NA        NA

Confidence level used: 0.95 

$contrasts
 contrast                  estimate    SE  df z.ratio p.value
      ... MANY rows of output omitted ...
 B70,HD - Magens,HD          nonEst    NA  NA      NA      NA
 B70,HD - SMA,HD             nonEst    NA  NA      NA      NA
 B70,HD - B10,HS           -0.71283 0.225 Inf  -3.162  0.4869
 B70,HD - B30,HS            0.07174 0.227 Inf   0.316  1.0000
 B70,HD - B50,HS           -0.74197 0.228 Inf  -3.253  0.4093
 B70,HD - B70,HS           -0.72863 0.226 Inf  -3.229  0.4291
 B70,HD - Black Pt,HS      -0.10537 0.220 Inf  -0.478  1.0000
 B70,HD - Bolongo,HS         nonEst    NA  NA      NA      NA
 B70,HD - Fortuna,HS       -0.64301 0.240 Inf  -2.684  0.8656
 B70,HD - Lindberg,HS      -0.10132 0.220 Inf  -0.460  1.0000
 B70,HD - Magens,HS         0.02351 0.226 Inf   0.104  1.0000
 B70,HD - SMA,HS           -0.05100 0.219 Inf  -0.232  1.0000
 B70,HD - B10,HW             nonEst    NA  NA      NA      NA
 B70,HD - B30,HW             nonEst    NA  NA      NA      NA
 B70,HD - B50,HW             nonEst    NA  NA      NA      NA
 B70,HD - B70,HW             nonEst    NA  NA      NA      NA
 B70,HD - Black Pt,HW        nonEst    NA  NA      NA      NA
 B70,HD - Bolongo,HW         nonEst    NA  NA      NA      NA
 [ reached getOption("max.print") -- omitted 1059 rows ]

P value adjustment: tukey method for comparing a family of 50 estimates

然而,你的问题才刚刚开始。由于缺少数据,您有大量不可估计的组合。祝你好运...

我会将更新的版本推送到https://github.com/rvlenth/emmeans


推荐阅读