Случайный эффект с gam () с семьей Бетар в R - PullRequest
0 голосов
/ 21 января 2020

У меня проблемы с моим gam() анализом с семьей betar, и странная вещь в том, что раньше он работал идеально. После того, как я перезапустил R, появились все виды сообщений об ошибках и предупреждений.

Я анализирую влияние пропорции на другую пропорцию (0,1) и случайный эффект (фактор) с семейством бетарегрессии. Данные показаны ниже.

> 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, искал inte rnet, но не смог найти ничего, что работает для меня. Я экспериментировал с изменением структуры 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. A coeftest без sandwich работает нормально, поэтому имеет отношение к vcov = sandwich. Целочисленный rnet поиск мало что дает и, к сожалению, не дает ответа.

Кто-нибудь имеет представление о том, что здесь происходит? Я хотел бы услышать мысли и идеи. В конце я пытаюсь запустить gam с Area как случайный эффект, но я думаю, что другие предупреждения и сообщения об ошибках могут привести нас к проблеме.

1 Ответ

0 голосов
/ 22 января 2020

Разобрался. Видимо функции gam() пакета gam и пакета mgcv работают по-разному. Я должен был использовать mgcv:gam. Тогда он отлично работает со случайными эффектами.

...