首页 文章

使用MuMIn r.squaredGLMM计算Poisson GLMM的R平方

提问于
浏览
4

我使用在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)如何解决它 . 任何帮助深表感谢 . 我不认为我可以在不提供整个数据集的情况下生成可重现的示例,但是知道此错误的确切含义将有助于我的工作 .

Update:

在错误消息的建议和一些解释(谢谢堆栈溢出!)我手动将我的个人级效果包含在模型中 . 现在我得到一个不同的错误:

Warning message:
In r.squaredGLMM.merMod(model) :
  exp(beta0) of 0.2 is too close to zero, estimate may be unreliable

这是否意味着我的固定效果的预期Beta太接近于零?

2 回答

  • 3

    该错误意味着在将单个级别的随机效果添加到原始模型后(参见Nakagawa & Schielzeth 2013 paper), glmer 发出错误(已转换为警告消息) . 您应该手动将此术语添加到模型中 . 它的形式为 (1 | IND) ,其中 IND 是因子变量,每次观察一级(例如 factor(1:nrow(data)) ) .

    然而,在包括该术语之后,模型将不会收敛(并且似乎是这种情况)可能会发生 .

  • 3

    我有同样的问题与相同的错误消息 . 删除NA值后,它对我来说效果很好 . 对于NA值,glmer是可以的,但r.squaredGLMM似乎有问题 .

相关问题