2016-11-29 25 views
0

我正在运行中的R线性混合效应模型,我是能够成功运行我的代码,并得到结果的事后检验。11聚物为错误消息

我的代码如下:

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:

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.61 
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

是距离因素吗?如果不在lmer模型中尝试as.factor(distance)。 –

+1

我投票结束这个问题作为题外话,因为它是关于如何使用R没有一个可重复的例子。 – gung

+0

做了一些更正,希望清除东西 – 2016-11-29 16:53:17

回答

3

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

显示的模型使用固定效应~ distance + Cats拟合。现在,Cats不在所提供的数据集中,所以这是一个问题。但除此之外,distance作为定量预测器进入模型(如果我相信read.csv陈述等)。该模型意味着预期的Density中的变化与distance中的变化成比例。这是一个合理的模型?也许,也许不是。但是,对于distance进行多重比较是否合理?当然不。从这个模型中,在20到120之间的distance s之间的变化将与120和220之间的distance之间的变化完全相同。来自模型概要的估计斜率,体现了你需要知道的关于效果distance。多重比较不应该完成。

现在,人们可能会从这个问题中猜测,你真正想要做的是拟合一个模型,其中四个distance各自具有其自己的效果,与其他距离分开。这需要一个以factor(distance)作为预测的模型;在这种情况下,factor(distance)将占3自由度,而不是1 d.f.为distance作为定量预测。对于这样的模型,通过多重比较进行跟踪是合适的(除非可能的距离也与其他一些预测因子相互作用)。如果你要适应这样的模式,我相信你会发现有会在你lsmeans通话没有任何错误(但你需要一个library("lsmeans")声明,而不是在你的代码所示。

最终,让节目没有错误是运行因此,我真正的答案是要仔细考虑什么是合理的数据模型,我可能会建议您从统计顾问那里寻求一对一的帮助,以确保您了解建模问题一旦解决了,那么对该模型的适当解释就是下一步;再次,这可能需要一些建议。

其他有关提供的代码次要笔记:

  • 第一read.csv呼叫无所作为,因为它没有存储数据。
  • R是大小写敏感的,所以在技术上,Density是不是在你的数据集或者
  • 当数据帧是attach版,你不也需要在lmer调用data说法。
  • 由于数据文件中的逗号分隔符未显示,因此Houses具有“房屋1”,“房屋2”等级的明显事实在您的列表中被搞乱了。
+0

想给+超过1 ... –

+0

谢谢你的帮助。我为所有的错误感到抱歉。这是我第一次使用这种格式,我试图简化我的数据的某些部分,以便更容易地跟踪和运行。我会确保不要再犯这个错误。 – Emkraw

+0

不要太担心格式 - 模型和解释是最重要的。 (我已经在CrossValidated上留下了这个)。 – rvl