Como gerar dados de sobrevivência com covariáveis ​​dependentes do tempo usando R

9

Quero gerar tempo de sobrevivência a partir de um modelo de riscos proporcionais de Cox que contenha covariáveis ​​dependentes do tempo. O modelo é

h(t|Xi)=h0(t)exp(γXi+αmi(t))

onde é gerado a partir do binômio (1,0,5) e .Ximi(t)=β0+β1Xi+β2Xit

Os valores dos parâmetros verdadeiros são usados ​​comoγ=1.5,β0=0,β1=1,β2=1.5,h0(t)=1

Para covariável independente do tempo (ou seja, eu seguinte maneirah(t|Xi)=h0(t)exp(γXi)

#For time independent case
# h_0(t) = 1
gamma <- -1
u <- runif(n=100,min=0,max=1)
Xi <- rbinom(n=100,size=1,prob=0.5)
T <- -log(u)/exp(gamma*Xi)

Alguém pode me ajudar a gerar dados de sobrevivência com covariáveis ​​variáveis ​​no tempo.

Sheikh
fonte
Que tipo de função é ? É contínuo? Constante por partes? Um algoritmo diferente provavelmente será necessário de acordo. mi(t)
Tristan
mi(t) é uma covariável dependente do tempo; por simplicidade, você pode considerar um relacionamento proporcional com o tempo.
Sheikh
Eu editei a minha pergunta, considerando uma função demi(t)
Sheikh
como você executou o código R a partir da equação acima? significa que a cada morte no mesmo id, o programa precisa descobrir quais são as covariáveis ​​para todos que são x iguais a 1 ou 0. se todas iguais a 1 somam o risco. depois disso, calcule a função de sobrevivência. permite escolher a linha certa para cada assunto.
Qas Amell
Como Z. Zhang aponta, dê uma olhada neste artigo . Além disso, você pode ver a minha resposta à sua pergunta onde eu mostrar como simular para aqueles no grupo em R.Xi=1
Benjamin Christoffersen

Respostas:

9

OK no seu código R, você está assumindo uma distribuição exponencial (risco constante) para o seu risco de linha de base. Suas funções de risco são, portanto:

h(tXi)={exp(αβ0)if Xi=0,exp(γ+α(β0+β1+β2t))if Xi=1.

Em seguida, os integramos em relação a para obter a função de risco cumulativo:t

Λ(tXi)={texp(αβ0)if Xi=0,0texp(γ+α(β0+β1+β2τ))dτif Xi=1.={texp(αβ0)if Xi=0,exp(γ+α(β0+β1))1αβ2(exp(αβ2t)1)if Xi=1.

Estes então nos dão as funções de sobrevivência:

S(t)=exp(Λ(t))={exp(texp(αβ0))if Xi=0,exp(exp(γ+α(β0+β1))1αβ2(exp(αβ2t)1))if Xi=1.

Em seguida, você gera amostrando e , substituindo por e reorganizando a fórmula apropriada (com base em ) para simular . Essa deve ser uma álgebra direta. Você pode codificar em R, mas informe-me por comentário se precisar de mais ajuda. L ~ L n i f o r m ( 0 , 1 ) L S ( t ) X i tXiUUniform(0,1)US(t)Xit

Tristan
fonte
11
Muito obrigado pela álgebra. Codificarei o código em R e entrarei em contato com você para obter mais ajuda.
Sheikh
que resposta perfeita, @tristan. Eu tive uma pergunta semelhante e encontrei sua resposta. Simplesmente fantástico.
Sam
@ Tristan Estou um pouco confuso sobre o significado de alfa na primeira equação que você dá onde Xi = 0. Você se importaria em expandir um pouco isso? Obrigado.
Statwonk
11
@Statwonk segue-se a partir da equação taxa de risco fornecido pelo seu autor
tristan
Desculpe, mas não tenho certeza de como usar a função S (t) para simular os horários. Eu acho que você deve calcular S ^ {- 1} e essa função não é trivial para o caso X_i = 1.
Pmc