Como usar covariáveis ​​dependentes do tempo com regressão cox em R

7

Não sei como gerar covariáveis ​​dependentes do tempo em R para usar a regressão cox.

Eu sei que você precisa reorganizar seu conjunto de dados em intervalos entre os horários dos eventos. Eu acredito que posso fazer isso com os tutoriais flutuando. Depois disso, embora eu esteja preso. O que agora? Para cada covariável agora preciso calcular seu valor em cada intervalo de tempo específico? Como eu faria isso? Preciso voltar ao banco de dados e pegar a data em que uma taxa de pulso foi registrada e, em seguida, atualizar o valor do pulso de acordo com a data?

Eu só quero confirmar que, ao fazer covariáveis ​​dependentes do tempo, você geralmente precisa voltar e extrair mais informações de data / hora do banco de dados e atualizar todas as informações de covariáveis. Basicamente, os tutoriais fornecidos transformam seu conjunto de dados no formato "longo" não é a única coisa que preciso fazer, certo?

user798719
fonte

Respostas:

8

É difícil sem ver seus dados, então tentarei torná-los genéricos. Primeiro de tudo, as duas principais maneiras pelas quais um quadro de dados deve ser usado no survivalpacote:

Os esqueletos

  • ID - uma variável única para identificar cada unidade de análise (por exemplo, paciente, país, organização)
  • Evento - uma variável binária para indicar a ocorrência do evento testado (por exemplo, morte, revolução, falência)
  • Tempo - Tempo até o evento ou até que as informações terminem ( censura à direita ). O modelo de Cox é melhor usado com o tempo contínuo, mas quando o estudo termina ao longo dos anos (especialmente em relação aos países), os períodos mensais podem fazer.
  • ( Muitas vezes ) Algumas covariáveis

Vamos usar um modelo inventado de tentar encontrar o risco para países que caem em guerra civil (a event) por mais de dez anos (em períodos mensais). Usando uma única covariável ( previousCivilWar) que não depende do tempo:

# the first country was censored before an event and the second 
# experienced the event after 8 years
id time event prevCivilWar 
 1  120     0   0 
 2   96     1   1 

Adicionando covariáveis ​​dependentes do tempo: Método 1

  • Covariável - Nesse caso, você precisa saber o valor original, se ele mudou e para quê - e se sim, quando (em que feitiço).
  • Alterando a variável de tempo para iniciar e terminar - quando necessário para indicar o horário da mudança para (qualquer uma) covariáveis

Aqui vamos adicionar a variável binária para indicar> 40% de pobreza is40pov:

id time1 time2 event prevCivilWar is40pov
 1    0    80   0               0       0
 1   80   120   0               0       1
 2    0    24   0               1       0
 2   24    60   0               1       1
 2   60    96   1               1       1

Ao usar covariáveis ​​dependentes do tempo, precisamos especificar o período exato até que ocorra qualquer alteração em qualquer covariável. Observe que os horários precisam se sobrepor. Se um determinado assunto não tiver alterações em nenhuma covariável, basta uma linha.

Método 2 - melhor para alterar continuamente as covariáveis Isso incluirák linhas por ID único, pois existem feitiços (klinhas se censurado, ou menos se o evento já aconteceu antes). Portanto, se você tiver um banco de dados com informações sobre um determinado período de tempo estudado, decida o tamanho da magia que faz sentido para você (o que faz sentido teórico): Se as covariáveis ​​mudam a cada hora - faça-a a cada hora, etc. Depois de ter decidido a duração do feitiço (por exemplo, mês) e o tempo total (por exemplo, dez anos) que cada ID terá <=120 feitiços.

Se necessário, crie o conjunto de dados longitudinal com dados vazios ( NA, 0ou o que for) para as covariáveis ​​dependentes do tempo e faça duas colunas de utilidade extras para as datas / horas de cada feitiço. Em seguida, você pode acessar o banco de dados e buscar os valores específicos para suas covariáveis ​​nessas datas / horas e preenchê-los. Tudo bem se determinadas linhas não tiverem alterações nas covariáveis. Você terminará com algo como:

# The variable pov is the poverty percent of population and measured monthly
id time1 time2 event prevCivilWar pov
 1    0     1   0               0   0.34
 1    1     2   0               0   0.34
 ...
 1   79    80   0               0   0.43
 ...
 1  119   120   1               0   0.41
 2    0     1   0               1   0.25
 ...
 2   23    24   0               1   0.42
 ...
 2   95    96   1               1   0.58 

Para obter mais informações sobre covariáveis ​​e coeficientes dependentes do tempo, consulte a vinheta de 2016 de Therneau, Crowson e Atkinson .

Yuval Spiegler
fonte
Você tem algum código ou função que faz isso no R?
Guilherme Parreira