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

won*_*urg 7 r time-series lme4 mixed-models

我已经找到了类似的问题,如果有相关的问题我已经错过了,那就道歉了.

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

受试者暴露于一种类型的喂食器,其将具有香味/无味的不同组合,具有视觉图案/空白,并且具有以两种空间布置之一呈现的这些视觉或香味图案.

到目前为止,我的模型是:

mod<-lmer(timeonfeeder ~ scent_yes_no + visual_yes_no + 
    pattern_one_or_two + (1|subject), data=data)
Run Code Online (Sandbox Code Playgroud)

如何将访问号码合并到模型中,以查看这些因素是否会影响馈线在一段时间内所花费的时间?

Ben*_*ker 10

您有多种选择(对于CrossValidated,这个问题可能稍微好一点).

  • 正如@Dominix建议的那样,随着时间的推移,您可以允许进线器的线性增加或减少.允许这种变化在不同的鸟类之间变化是有意义的:

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

    timeonfeeder ~ factor(time) + ... + (1|subject)
    
    Run Code Online (Sandbox Code Playgroud)

    这可能是没有意义的,你的情况,因为你有一个大量的观测,所以它需要很多参数(这将是,如果你有更明智,说,每个个体3个时间点)

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

    library(mgcv)
    gamm(timeonfeeder ~ s(time) + ... , random = ~1|subject
    
    Run Code Online (Sandbox Code Playgroud)

    (1)这假设跨学科的时间模式是相同的; (2)因为gamm()使用lme而不是lmer引擎盖,你必须指定随机效果作为单独的参数.(您也可以使用在引擎盖下使用的gamm4lmer.)

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

    lme(timeonfeeder ~ time + ... ,
        random = ~ time|subject,
        correlation = corAR1(form= ~time|subject) , ...)
    
    Run Code Online (Sandbox Code Playgroud)