我在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
有人对如何解决此问题有任何建议吗?
答案 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")
电话无法完成任何操作,因为它不会存储数据。read.csv
不在您的数据集中Density
,则您在attach
电话中也不需要data
参数。lmer
具有级别" House 1"," House 2"等等的明显事实在您的列表中混乱了文件未显示。