[英]Random effect with gam() with betar family in R
我在使用betar
系列进行gam()
分析时遇到了麻烦,奇怪的是它以前运行得很好。 我重新启动 R 后,出现了各种错误和警告消息。
我正在分析一个比例对另一个比例 (0,1) 的影响和一个随机效应(因子)与 betaregression 系列。 数据如下所示。
> str(data_original)
'data.frame': 35 obs. of 17 variables:
$ ProportionBirdsScavenging: num 0.6619 0.4062 0.6943 0.0143 0.0143 ...
$ pointWeight : int 3 233 10 89 4 22 44 99 89 17 ...
$ Area : Factor w/ 6 levels "Hamert","KempenBroek",..: 3 1 1 1 1 1 1 1 1 2 ...
$ OverheadCover : num 0.7 0.671 0.679 0.79 0.62 ...
这是我的电话
mygam <- gam(ProportionBirdsScavenging ~ OverheadCover + s(Area, bs="re"), family=betar(link="logit"), data = data_original, weights = pointWeight)
当我运行它时,它向我显示Error in is.factor(...) : unused argument (bs = "re")
。 我已阅读有关?gam::s
、 ?is.factor
、 ?mgcv::gam
,并在互联网上搜索,但找不到任何对我?mgcv::gam
内容。 我尝试过更改Area
的结构,尝试不同的参数,更新所有包,从在线工作脚本中复制准确的代码并填充我的变量。 最后一种方法告诉我它可能与我的数据有关,而不是我的电话。 据我了解,数据结构应该适合这样的分析。 此外,它与之前完全相同的数据(和脚本)完美配合。
如果我在没有随机因素的情况下尝试通话
mygam <- gam(ProportionBirdsScavenging ~ OverheadCover, family = betar(link="logit"), data = data_original, weights = pointWeight)
它向我显示了Warning message: In model.matrix.default(mt, mf, contrasts) : non-list contrasts argument ignored
,但工作正常。 经过一些在线研究,我发现这可能与更新有关(什么可以解释为什么在我重新启动 R 后它的工作方式有所不同)。 显然,这条消息曾经是沉默的,但现在没有新的更新了。 任何人都可以证实这一点吗? 我应该担心这个警告吗?
此外,如果我执行gam.check
它会给我Error in xy.coords(x, y, xlabel, ylabel, log) : 'x' and 'y' lengths differ
,这很奇怪,因为长度相等(均为 35 )。
但是,没有+ s(Area, bs="re")
的gam
至少不会产生错误(只是警告),但是当我尝试时会出现错误
coeftest(mygam, vcov = sandwich)
它告诉我Error in bread. %*% meat. : non-conformable arguments
Error in bread. %*% meat. : non-conformable arguments
Error in bread. %*% meat. : non-conformable arguments
。 没有sandwich
的coeftest
工作正常,所以它与vcov = sandwich
。 互联网搜索并没有给出太多答案,不幸的是也没有得到答案。
有谁知道这里发生了什么? 我很想听听想法和想法。 最后,我尝试使用Area
作为随机效果运行gam
,但我认为其他警告和错误消息可能会导致我们出现问题。
弄清楚了。 显然, gam()
的函数gam
包和mgcv
包工作方式不同。 我应该使用mgcv:gam
。 然后它与随机效果完美配合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.