Как указать случайные эффекты, используя гамма-модели в R? - PullRequest
0 голосов
/ 28 мая 2018

Я использую гамма-модели в пакете mgcv, чтобы проанализировать, как конкретные меры разнообразия, например.Шеннон меняется со временем и с переменными среды, например.температура.

У меня есть исходная модель для анализа временных рядов:

modf<-gamm(y~ as.factor(year) + s(doy,bs='cc',k=kdy),method=mth,correlation=tcor,data=d,
           control=ctrl,random=NULL,gamma=1)

Я хочу включить температуру в качестве случайного эффекта и подумал о том, чтобы сделать что-то вроде:

modf<-gamm(y~ as.factor(year) + s(doy,bs='cc',k=kdy), + s(temp,bs="re"),method=mth,
           correlation=tcor,data=d,control=ctrl,gamma=1)

Однако до сих пор я видел это только для гаммы, а не для гамма.Это все еще работает таким образом?

Пример типа структуры данных:

  • $ total_abundance: num 6364161 1929775 7057036 1266342 3981198 ...
  • $ Шеннон: число 1,87 2,08 1,95 1,84 2,06 ...
  • $ оборот: число 0,613 0,475 0,525 0,556 0,429 ...
  • $ год: int 1985 1986 1987 1987 1987 1987 1989 1989 1991
  • $ month: int 8 12 3 7 8 5 1 8 1 9 ...
  • $ day: int 20 8 15 6 17 9 16 29 14 4 ...
  • $temp: num 25.5 9.87 4.8 19.72 26.03 ...
  • $ doy: num 232 342 74 187 229 130 16 241 14 247 ...

где doy - «день года»и учитывает сезонность

Спасибо

1 Ответ

0 голосов
/ 29 мая 2018

То, что вы хотите сделать, не имеет никакого смысла, если только вы не хотите, чтобы линейный эффект temp варьировался в пределах уровней группирующего фактора.

Как правило, вы указываете этот случайный наклониспользование random в качестве

list(group = ~ x)

, где group - переменная группирования факторов, а x - ваша temp.

.случайный перехват для уникальных значений temp, который, вероятно, запрашивает слишком много данных.

Эквивалент s(time, bs = "re") требует, чтобы вы удалили перехват из формулы random:

 list(group = ~ x - 1)

, но вам все еще нужна переменная group.

Если вы просто хотите контролировать temp, добавьте его как линейный параметрический эффект (+ temp) или плавный эффект (+ s(temp)) в формуле gamm().

...