Из этих данных:Добавление двух случайных эффектов в пределах фактора: GAM
UQdata MudUQ Estuary Site
7.00 10.9 NoriPau A
6.00 13.9 NoriPau A
5.00 10.3 NoriPau B
4.00 7.9 Porirua A
4.00 8.3 Porirua A
4.00 8.7 Porirua A
4.00 10.9 NoriPau B
3.00 9.8 Porirua B
3.00 9.8 Porirua B
3.00 11.5 Porirua B
Я фитинг ниже модели GAM с использованием пакета mgcv:
aa2.estuary <- gam(UQdata~s(MudUQ, bs="ps", k=5) + s(Estuary, bs="re"),
family=Gamma(link=log),data=Antho)
Проблема: Я хочу добавить Estuary
и Site
в Estuary
как два случайных эффектов (т.е. s(Estuary ~ Site + Estuary, bs="re")
), но когда я пытаюсь это он выдает эту ошибку:
aa2.estuary <- gam(UQdata ~ s(MudUQ,bs="ps", k=5) +
s(Estuary~Estuary+Site, bs="re"),
family=Gamma(link=log),data=Antho)
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
contrasts can be applied only to factors with 2 or more levels
In addition: Warning message:
In s(Estuary ~ Estuary + Site, bs = "re") :
number of items to replace is not a multiple of replacement length
Любая помощь здесь будет высоко оценена.
mnel, я попробовал ваш предложить строку:
> aa1.estuary<-gam(UQdata~s(MudUQ,bs="ps", k=5) + s(Estuary, bs="re") + s(Site, Estuary, bs = 're'),family=binomial, gamma=1,data=Antho)
Error in while (mean(ldxx/(ldxx + ldss)) < 0.4) { :
missing value where TRUE/FALSE needed
Любые идеи?
Можете ли вы опубликовать воспроизводимый пример (например, некоторые данные) - пример для 'bs = 're'' из'? Gam.vcomp' не предполагает, что ваш 's (Estuary ~ Site + Estuary, bs = 're') 'правильно (без упоминания интерфейса формулы в вызове' s'). Возможно, 's (Estuary, bs = 're') + s (Site, Estuary, bs = 're')' - это то, что вы хотите – mnel
@mnel Я думаю, это зависит от того, считается ли 'Site: Estuary-1'' Сайт '* вложен * в' Устье''. '? smooth.construct.re.smooth.spec' имеет более подробную информацию. Если это не считается вложенным, может быть проще переключиться на пакет ** gamm4 ** и использовать его 'gamm()', который использует 'glmer()' для соответствия моделям. –
Я добавил новую информацию к вышеуказанной проблеме – brober