我使用在R包“lme4”中使用glmer的Poisson广义混合模型来模拟一种鸟类的丰度。我的数据的一个例子:
abund point_id patch_area vis_per_year year
6 EL_03Plot035 244.69412 C_5 2003
0 RC_BBSM08 101.68909 C_2 2004
0 RP_211021_HSH088 1348.89935 C_3 2011
0 RC_LRSM04 111.74057 C_4 2008
0 RP_225155_p5 1.34007 C_3 2012
0 HO_YORUP105 141.66933 C_3 1998
1 RC_SPSM07 179.16088 C_2 2006
0 BH_MB12_bmh42 16937.30694 <NA> 2002
1 RC_MOSM11 104.43196 C_4 2012
1 RC_YOSM06 141.66933 C_4 2010
0 RP_244006_HMD366 27778.83482 C_3 2012
0 RP_247155_p5 7688.64751 C_3 2012
0 EL_08Plot127 NA C_5 2008
2 HO_LITRR10 160.81729 C_4 1997
0 RC_BPSM07 38.23207 C_4 2009
0 HO_HARRIV5 10.46441 C_3 1999
1 RC_SPSM16 179.16088 C_4 2009
0 RC_YOSM01 141.66933 C_3 2002
0 RP_222799_HSH360 14.94866 C_3 2012
1 RC_WESM33 381.19813 C_2 2006
0 RP_209841_HSH017 2269.11227 C_3 2011
0 RC_LRSM03 111.74057 C_3 2001
0 RP_26718_HHO097 26.95666 C_3 2012
0 RP_236935_p14 7979.05373 C_3 2012
0 BD_miles_medium_2 NA C_2 2003
“丰数”是每年在该点检测到的最大鸟数的计数数据,“point_id”是测量点的名称,“patch_area”是该点所在的栖息地补丁的区域,vis_per_year是一个有序因子观察水平协变量,表示一年中一个点的访问次数,“年”表示观察年份。除了少数例外情况,每年每个点只有一个丰度计数(行)。
我的型号规格是:
model=glmer(abund ~ scale(year) + (1|vis_per_year) + (1|patchid/point_id), family = poisson, data)
到目前为止,对于诊断我已经使用包“aods3”中的gof检查了我的模型过度离散,检查了随机效果的QQ图,并将包含我的固定效果的模型(我只有一个)与空模型进行了比较仅使用来自“lmerTest”的anova命令的随机效果结构。该模型略微不足,并且使用AIC或anova标准排名高于空模型。
我现在正在尝试为最终模型计算R ^ 2。我阅读了https://ecologyforacrowdedplanet.wordpress.com/2013/02/26/r-squared-for-mixed-models/上的博客条目和随后的帖子更新以及相关的手稿,并安装了MuMIn包用于计算边际和条件R ^ 2。但是,当我尝试使用r.squared.GLMM(Model)时,抛出以下错误:
Error in glmer(formula = SALS ~ scale(year) + (1 | vis_per_year) + (1 | :
fitting model with the observation-level random effect term failed. Add the term manually
另外:警告信息:
In t(mm[!is.na(ff), ]) :
error in evaluating the argument 'x' in selecting a method for function 't': Error in mm[!is.na(ff), ] : (subscript) logical subscript too long
为了隔离我尝试在没有point_id和visit_per年的情况下运行模型的错误源,但是如果没有包含这些协变量,则会抛出相同的错误。这个错误究竟意味着什么 - 如何手动将观察项添加到模型中?我已经阅读了MuMIn的文档,但我不知道1)确切的错误意味着什么,以及2)如何解决它。任何帮助深表感谢。我不认为我可以在不提供整个数据集的情况下生成可重现的示例,但是了解此错误的确切含义将有助于我的工作。
更新
根据错误消息的建议和一些解释(谢谢堆栈溢出!)我手动将我的个人级效果包含在模型中。现在我得到了一个不同的错误:
Warning message:
In r.squaredGLMM.merMod(model) :
exp(beta0) of 0.2 is too close to zero, estimate may be unreliable
这是否意味着我的固定效果的预期Beta太接近于零?
答案 0 :(得分:3)
错误意味着在将单个级别的随机效果添加到原始模型后(请参阅Nakagawa & Schielzeth 2013论文),glmer
发出错误(已转换为警告消息)。您应该手动将此术语添加到模型中。它的格式为(1 | IND)
,其中IND
是一个因子变量,每次观察一级(例如factor(1:nrow(data))
)。
然而,可能会发生这样的情况:包含该模型后,该模型不会收敛(似乎就是这种情况)。