首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GLM中的“对比误差”信息与lsmeans Tukey检验

GLM中的“对比误差”信息与lsmeans Tukey检验
EN

Stack Overflow用户
提问于 2018-04-14 05:18:55
回答 1查看 450关注 0票数 0

我定义了一个广义线性模型如下:

代码语言:javascript
复制
glm(formula = ParticleCount ~ ParticlePresent + AlgaePresent + 
ParticleTypeSize + ParticlePresent:ParticleTypeSize + AlgaePresent:ParticleTypeSize, 
family = poisson(link = "log"), data = PCB)

我有以下重要的互动

代码语言:javascript
复制
                                 Df  Deviance  AIC  LRT Pr(>Chi)   
<none>                               666.94  1013.8                  
ParticlePresent:ParticleTypeSize  6  680.59  1015.4 13.649 0.033818 * 
AlgaePresent:ParticleTypeSize     6  687.26  1022.1 20.320 0.002428 **

我正在尝试进行一个后期测试(Tukey),以比较使用lsmeans包的ParticleTypeSize的交互。然而,当我继续工作时,我会收到以下信息:

代码语言:javascript
复制
library(lsmeans)
leastsquare=lsmeans(glm.particle3,~ParticleTypeSize,adjust ="tukey")

Error in `contrasts<-`(`*tmp*`, value = contrasts.arg[[nn]]) : 
  contrasts apply only to factors

通过应用以下方法,我检查了ParticleTypeSize是否是一个有效因素:

代码语言:javascript
复制
 l<-sapply(PCB,function(x)is.factor(x))
 l
      Sample     AlgaePresent  ParticlePresent ParticleTypeSize 
        TRUE            FALSE            FALSE             TRUE 
   ParticleCount 
       FALSE 

我很困惑,也不知道如何纠正这条错误信息。任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2018-04-14 14:42:16

当您指定的变量不是一个因素时,就会发生此错误。你测试并发现它是,所以这是一个谜,我所能猜测的是,数据是变化的,因为你符合模型。因此,尝试用当前的数据集重新拟合模型。

所有这些话,我怀疑你想要做什么。首先,您有ParticleTypeSize与另外两个预测器进行交互,这意味着考虑该因素的边际均值(lsmeans)可能是不可取的。存在交互的事实意味着,这些变量的模式会根据其他变量的值发生变化。

第二,AlgaePresentParticlePresent真的是数值变量吗?用他们的名字来说,他们似乎应该是因素。如果它们确实是指示符(0和1),这是可以的,但是如果您使用的是lsmeans这样的函数,那么将它们编码为因子仍然比较干净,在这些函数中,各种因素和协变量被以截然不同的方式处理。

顺便说一句, being 包正在被废弃,其后继的being包正在出现新的发展。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49828200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档