lmer错误消息的事后测试

时间:2016-11-29 00:59:23

标签: r

我在R中运行线性混合效果模型,我能够成功运行我的代码并获得结果。

我的代码如下:

library(lme4)
library(multcomp)
read.csv(file="bh_new_all_woas.csv")  
whb=read.csv(file="bh_new_all_woas.csv")  
attach(whb)  
head(whb)  
whb.model = lmer(Density ~ distance + (1|Houses) + Cats, data = whb)  
summary(whb.model)

但是,我想比较一下有4个等级的距离固定因子。我尝试按照以下方式运行lsmean:

lsmeans(whb.model, pairwise ~ distance, adjust = "tukey") 

弹出此错误:

Error in match(x, table, nomatch = 0L) : 'match' requires vector arguments

我还尝试使用此代码:

glht(whb.model, linfct=mcp(distance="tukey"))

并得到了相同的结果。我的数据样本如下:

Houses  distance   abund       density      
House 1 20         0           0
House 1 120        6.052357    0.00077061
House 1 220        3.026179    0.000385305
House 1 320        7.565446    0.000963263
House 2 20         0           0
House 2 120        4.539268    0.000577958
House 2 220        6.539268    0.000832606
House 2 320        5.026179    0.000639953
House 3 20         0           0
House 3 120        6.034696    0.000768362
House 3 220        8.565446    0.001090587
House 3 320        5.539268    0.000705282
House 4 20         0           0
House 4 120        6.052357    0.00077061
House 4 220        8.052357    0.001025258
House 4 320        2.521606    0.000321061
House 5 20         4.513089    0.000574624
House 5 120        6.634916    0.000844784
House 5 220        4.026179    0.000512629
House 5 320        5.121827    0.000652131
House 6 20         2.513089    0.000319976
House 6 120        9.308185    0.001185155
House 6 220        7.803613    0.000993587
House 6 320        6.130344    0.00078054
House 7 20         3.026179    0.000385305
House 7 120        9.052357    0.001152582
House 7 220        7.052357    0.000897934
House 7 320        6.547785    0.00083369
House 8 20         5.768917    0.000734521
House 8 120        4.026179    0.000512629
House 8 220        4.282007    0.000545202
House 8 320        7.537835    0.000959747
House 9 20         3.513089    0.0004473
House 9 120        5.026179    0.000639953
House 9 220        8.052357    0.001025258
House 9 320        9.573963    0.001218995
House 10 20        2.255828    0.000287221
House 10 120       5.255828    0.000669193
House 10 220       10.060874   0.001280991
House 10 320       8.539268    0.001087254

有人对如何解决此问题有任何建议吗?

1 个答案:

答案 0 :(得分:3)

哪个问题需要修复?一个问题是模型,另一个是后续问题。

使用固定效果~ distance + Cats拟合显示的模型。现在,Cats不在提供的数据集中,因此这是一个问题。但除此之外,distance作为定量预测器进入模型(如果我相信read.csv语句等)。此模型表示预期Density中的更改与distance中的更改成比例。这是一个合理的模型吗?也许,也许不是。但对distance进行多重比较是否合理呢?当然不。从这个模型中,distance的20到120之间的变化将与distance的120和220之间的变化完全相同。估计的{em>斜率 {{ 1}},从模型摘要中,体现了您需要了解的distance效果的所有内容。不应进行多重比较。

现在,人们可能从一个问题中猜到,你真正想要做的是拟合一个模型,其中四个distance中的每一个都有自己的效果,与其他距离分开。这需要一个distance作为预测变量的模型;在这种情况下,factor(distance)将占3个自由度,而不是1个自由度。 factor(distance)作为定量预测因子。对于这样的模型,通过多次比较来跟进它是合适的(除非可能的距离也与一些其他预测因子相互作用)。如果你适合这样的模型,我相信你会发现distance电话中没有错误(虽然你需要lsmeans声明,但代码中没有显示。

最终,让程序无误地运行并不一定与产生合理或有意义的答案相同。所以我真正的答案是仔细考虑什么是数据的合理模型。我建议您寻求统计顾问的一对一帮助,以确保您了解建模问题。一旦确定,那么下一步就是对该模型进行适当的解释;而且,这可能需要一些建议。

有关所提供代码的其他小调:

  • 第一次library("lsmeans")电话无法完成任何操作,因为它不会存储数据。
  • R区分大小写,因此从技术上讲,read.csv不在您的数据集中
  • 如果数据框为Density,则您在attach电话中也不需要data参数。
  • 由于您数据中的逗号分隔符,lmer具有级别" House 1"," House 2"等等的明显事实在您的列表中混乱了文件未显示。