将时间序列合并到 R 中的混合效应模型中(使用 lme4)

Incorporating time series into a mixed effects model in R (using lme4)

我已经搜索过类似的问题,但很简短,如果我遗漏了相关问题,我们深表歉意。

我正在查看在不同条件下花在喂食器上的时间(因变量),每个受试者访问喂食器 30 次。

受试者接触一种类型的喂食器,这种喂食器将具有不同的组合:scented/unscented,视觉 patterns/being 空白,并且这些视觉或气味模式以两种空间排列之一呈现.

到目前为止我的模型是:

mod<-lmer(timeonfeeder ~ scent_yes_no + visual_yes_no + 
    pattern_one_or_two + (1|subject), data=data)

如何将访问次数合并到模型中,以查看这些因素是否会随着时间的推移对花在喂食器上的时间产生影响?

你有多种选择(这个问题对 CrossValidated 来说可能稍微好一点)。

  • 正如@Dominix 所建议的,您可以允许随时间线性增加或减少馈线时间。允许这种变化因鸟类而异可能是有意义的:

    timeonfeeder ~ time + ... + (time|subject)
    
  • 可以允许随时间变化的任意模式(即不仅仅是线性的):

    timeonfeeder ~ factor(time) + ... + (1|subject)
    

    这在你的情况下可能没有意义,因为你有大量的观察,所以它需要很多参数(如果你有,比如说,每个人 3 个时间点,这会更明智)

  • 您可以通过 加法 模型允许更复杂的随时间变化模式,即使用三次样条对随时间变化进行建模。例如:

    library(mgcv)
    gamm(timeonfeeder ~ s(time) + ... , random = ~1|subject
    

    (1) 这假设时间模式在不同对象之间是相同的; (2) 因为 gamm() 在后台使用 lme 而不是 lmer,所以您必须将随机效应指定为单独的参数。 (您也可以使用 gamm4 包,它在底层使用 lmer。)

  • 您可能希望允许时间自相关。例如,

    lme(timeonfeeder ~ time + ... ,
        random = ~ time|subject,
        correlation = corAR1(form= ~time|subject) , ...)