Estrutura de dados e chamada de função para dados recorrentes de eventos com variáveis ​​dependentes do tempo


9

Estou tentando estimar o efeito de 2 medicamentos ( drug1, drug2) na probabilidade de um paciente cair ( event). Os pacientes podem cair mais de uma vez e podem ser colocados ou retirados dos medicamentos a qualquer momento.

Minha pergunta é como os dados devem ser estruturados com relação ao período (dias), especificamente se é necessário haver sobreposição entre os dias. Há duas razões pelas quais acho que minha estrutura está errada, sendo a primeira aparentemente incorreta N. Também estou recebendo alguns erros, onde o período de tempo é um único dia (ou seja time1=4, time2=4) e estou certeza de como estes devem ser codificada. A hora de início das entradas subseqüentes deve ser a hora de parada da entrada anterior? Eu tentei nos dois sentidos (com e sem sobreposição) e, embora a sobreposição se livre do aviso, o Nerro ainda está incorreto.

Warning message:
In Surv(time = c(0, 2, 7, 15, 20, 0, 18, 27, 32, 35, 39, 46, 53,  :
  Stop time must be > start time, NA created

No momento, tenho os dados configurados onde o início da próxima entrada é no dia seguinte. Pacientes únicos são identificados por seus chart numbers.

Time1    Time2    Drug1    Drug2   Event    ChartNo
    0        2        1        0       0        123
    3       10        1        1       1        123
   11       14        1        1       1        123
    0       11        0        1       0        345
    0       19        1        0       1        678
    0        4        0        1       0        900
    5       18        1        1       0        900

O paciente 123 estava em uso de medicamento1 no início do dia 2, após o qual eles receberam o medicamento2. Eles passaram do dia 3 para o dia 10 com os dois medicamentos antes de cair pela primeira vez e depois caíram pela segunda vez no dia 14 enquanto ainda estavam com os dois medicamentos. O paciente 345 passou 11 dias em uso de drogas2 sem cair (depois foi censurado) etc.

A estimativa real é assim:

S <- Srv(time=time1, time2=time2, event=event)
cox.rms <- cph(S ~ Drug1 + Drug2 + cluster(ChartNo), surv=T)

Minha principal preocupação é que, npara a minha análise, seja relatado 2017(o número de linhas nos dados), quando, na realidade, só tenho 314pacientes únicos. Não tenho certeza se isso é normal ou o resultado de algum erro que cometi ao longo do caminho.

> cox.rms$n
Status
No Event    Event 
    1884      133 

O mesmo acontece ao usar a coxph()partir do pacote de sobrevivência.

 n= 2017, number of events= 133

O número de eventos está correto no entanto.

Este Post parece configurá-lo com a 'sobreposição' que descrevi, mas não tenho certeza sobre o Ne eles não parecem estar agrupados ID.


O +cluster(ChartNo)termo deve cuidar das observações repetidas. Uma abordagem alternativa seria adicionar + (1|subject)a uma análise coxme :: coxme.
Dwin

Respostas:


1

Sua formatação de dados está correta.

Você tem vários registros por paciente devido a eventos recorrentes e a complexidade adicional do medicamento, sendo uma covariável variável no tempo. A saída impressa headé útil para entender esses dados.

A abordagem típica para analisar eventos recorrentes, bem como covariáveis ​​com variação de tempo, está formatando os dados para estarem em um formato "longo", em que cada linha representa um intervalo de observações de covariáveis ​​de risco. Por exemplo, vemos que o paciente 123 está tomando o medicamento1 sozinho do tempo 0 ao tempo 2 e, em seguida, muda para tomar o medicamento 1 e o medicamento 2 do tempo 3. Nesse ponto, eles não haviam sofrido uma queda; portanto, sua observação do 0-2 é censurado naquele momento porque não sabemos quanto tempo sua queda chegaria se eles continuassem a tomar a droga 1 sozinha. No momento 3, eles são reinseridos na coorte codificada como um paciente que toma os dois medicamentos por 7 unidades de tempo, após o que experimenta sua primeira queda. Eles experimentam uma segunda queda na mesma combinação de medicamentos apenas quatro unidades de tempo depois.

O número de registros não é um resumo útil dos dados da coorte. Não é de surpreender que o número de linhas seja muito maior que o número de pacientes. Em vez disso, some os horários do início ao fim e registre-o como uma quantidade de tempo de pessoa em risco. O denominador da coorte é útil para entender a incidência. Também é útil resumir o número bruto de pacientes, mas lembre-se de que os dados estão no formato "longo", de modo que seja menor que o número de linhas no seu conjunto de dados.

Para o erro, acho que você pode precisar adicionar 1 unidade à data de "parada". Se o paciente 123 toma o medicamento 1 nos dias 0, 1 e 2 e, em seguida, inicia o medicamento 2 no dia 3, eles tiveram 3 dias de risco de quedas no medicamento 1. No entanto, 2-0 = 2 e esse não é o correto denominador.

O que o argumento "cluster" faz (normalmente) é impor uma fragilidade, que é um tipo de interceptação aleatória que explica o que pode ser uma diferença proporcional de risco atribuível a vários fatores de risco não medidos. Não costumo conduzir análises com fragilidades. Você pode omitir o comando "cluster" e interpretar os resultados como taxas de incidência. Você pode ajustar alternadamente o modelo cox pelo tempo até a primeira queda em todos os pacientes e interpretar as taxas de risco como taxas de risco. Acho que o resultado da fragilidade deve ficar em algum lugar entre esses dois, e nunca estive bem claro qual deveria ser a interpretação.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.