0

我在gam()与家人的分析中遇到了麻烦,betar奇怪的是它之前运行良好。重新启动 R 后,出现了各种错误和警告消息。

我正在分析一个比例对另一个比例 (0,1) 的影响以及一个带有 beta 回归系列的随机效应 (因子)。数据如下所示。

> 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,搜索了互联网,但找不到任何适合我的东西。我已经尝试过改变 的结构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)。

但是,gam没有+ s(Area, bs="re")至少不会产生错误(只有警告),但是当我尝试时会出现错误

coeftest(mygam, vcov = sandwich)

它告诉我Error in bread. %*% meat. : non-conformable arguments。Acoeftest没有sandwich工作正常,所以它与vcov = sandwich. 互联网搜索并没有给出太多信息,不幸的是没有给出答案。

有谁知道这里发生了什么?我很想听听想法和想法。最后,我尝试将gamwithArea作为随机效果运行,但我认为其他警告和错误消息可能会导致我们遇到问题。

4

1 回答 1

0

弄清楚了。显然包和包的gam()功能不同。我应该使用. 然后它与随机效果完美配合。gammgcvmgcv:gam

于 2020-01-22T09:44:50.743 回答