如何向混合模型添加偏移

问题描述

我有一个数据集,其中包含来自为期4周的试验的母牛的步数,其中每只动物在第2周开始时都接受了治疗A或治疗B的照射,我想知道这两个治疗组的步速如何与第1周相比,每周都有变化。

如何为模型添加偏移量?

我在添加偏移量之前运行的模型是这样的:

mod.1 <- glmmTMB(Step.count ~ Week*Treatment + (1|Cow.ID),data = data.df,family = poisson) 

这是我的数据示例

data.1 <- data.frame(Cow.ID = rep(1,20),Week = sample(c(1,2,3,4),20,replace = TRUE),Treatment = sample(c("infected"),Step.count = rpois(20,60.1))

data.2 <- data.frame(Cow.ID = rep(2,60.1))

data.3 <- data.frame(Cow.ID = rep(3,Treatment = sample(c("non-infected"),60.1))


data.4 <- data.frame(Cow.ID = rep(4,60.1))


sample.df <- rbind(data.1,data.2,data.3,data.4)

解决方法

不用说一个数据示例就很难说,但是假设您拥有这样的数据名人

library(dplyr)

cows <- tibble(
    Cow.Id = rep(1:4,times = 5),Week = rep(1:5,each = 4),Step.count = floor(runif(20,100,200)),Treatment = rep(c('A','B','A','B'),)

然后,您可以像这样轻松地为每头母牛计算Step.count.offset列:

cows.clean <- cows %>%
    group_by(Cow.Id) %>%
    arrange(Week) %>%
    mutate(
        Step.count.offset = Step.count - first(Step.count)
    ) %>%
    ungroup()