Я попытался провести анализ относительной выживаемости, в частности, регрессии Пуассона в пакете relsurv.И я хочу включить ковариатический термин x время взаимодействия, поскольку опасность (или избыточная опасность) в моей модели не пропорциональна.
library(relsurv)
dat <- rdata
#model without interaction
mod <- rsadd(Surv(time, cens)~sex+agegr+ratetable(age=age*365.241), data = dat, ratetable = slopop,
int = c(0,5,10,15), method = "glm.poi")
summary(mod)
#test for proportional excess hazard
rs.br(mod) #all not significant
#cut time according to interval argument
dat$ytime <- dat$time/365.241
dat$fu <- cut(dat$ytime, c(0, 5, 10, 15), labels = 1:3, include.lowest = T)
#dummy code for interaction
dat$intFe2 <- ifelse(dat$sex==2 & dat$fu==2, 1,0)
dat$intFe3 <- ifelse(dat$sex==2 & dat$fu==3, 1,0)
#model with interaction
mod2 <- rsadd(Surv(time, cens)~sex+agegr+intFe2+intFe3+ratetable(age=age*365.241), data = dat,
ratetable = slopop, int = c(0, 5, 10, 15), method = "glm.poi")
summary(mod2) #interaction should not be significant since the result from rs.br() is not significant
В этом примере взаимодействие не должно быть значительным.Поскольку пол и переменные времени являются факторами или категориями, это моя ссылка .И вот мои ссылки: непропорциональная (стр. 15) модель и relsurv .
Кроме того, я спросил автора, как сделать это в ее пакете,и это ее ответ:
"В общем, вы можете включить взаимодействие между ковариатами, например:
mod <- rsadd(Surv(time, cens) ~ sex * agegr,data = rdata, ratetable = slopop, int = 5, method = "glm.poi")
summary(mod)
Взаимодействие между ковариатой и временем может быть реализовано только с помощью стандартной уловки преобразования данных: давайте предположим, что у вас есть двухлетний период наблюдения, и вы заинтересованы во взаимодействии между возрастом и временем. Вам нужно создать две переменные из переменной age. Первая переменная равна age в первом подинтервале(например, [0, 1]) и 0 в противном случае; вторая переменная тогда равна возрасту на другом подинтервале (в этом примере: (1, 2]) и 0 в противном случае.
Затем вы включаете эти двапеременные в модели (давайте назовем их age_1 и age_2), и с помощью этого вы можете увидеть, каково взаимодействие:
mod <- rsadd(Surv(time, cens) ~ age_1 + age_2, data = rdata, ratetable = slopop, int = 5, method = "glm.poi")
summary(mod)
Вы можете обобщить это для любого числа подынтервals. "
Кто-нибудь знает или может дать мне советы о том, как правильно включить термин?