Você está na página 1de 15

1.

Nao-Linearidade (Residuos de Martingale)


ggcoxfunctional (Surv(Tempo, Status)~Idade+log(Idade) + sqrt(Idade), data =
BaseTBM)
MODELOS DE REGRESSÃO DE RISCOS PROPORCIONAIS DE COX PARA
DIFERENTES CATEGORIAS DE EVENTOS

summary(modelo_óbito)
Call:
coxph(formula = Surv(Tempo, Desfecho == 1) ~ Genero + L.lesao +
T.entrada + TBHIV + P.resistenc + Idade_catentre.31.e.60.anos +
Idade_catmaior.que.60.anos, data = BaseTBM, ties = "breslow")

n= 406, number of events= 128

coef exp(coef) se(coef) z Pr(>|z|)


Genero 0.3331 1.3953 0.1828 1.822 0.068403 .
L.lesao 0.3439 1.4105 0.2061 1.669 0.095203 .
T.entrada 0.8282 2.2893 0.2192 3.778 0.000158 ***
TBHIV 0.5534 1.7392 0.2889 1.915 0.055465 .
P.resistenc -0.1158 0.8906 0.2626 -0.441 0.659147
Idade_catentre.31.e.60.anos 0.2961 1.3447 0.2364 1.253 0.210270
Idade_catmaior.que.60.anos 0.5567 1.7450 0.2444 2.278 0.022746 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

exp(coef) exp(-coef) lower .95 upper .95


Genero 1.3953 0.7167 0.9752 1.997
L.lesao 1.4105 0.7090 0.9417 2.113
T.entrada 2.2893 0.4368 1.4898 3.518
TBHIV 1.7392 0.5750 0.9872 3.064
P.resistenc 0.8906 1.1228 0.5324 1.490
Idade_catentre.31.e.60.anos 1.3447 0.7437 0.8461 2.137
Idade_catmaior.que.60.anos 1.7450 0.5731 1.0808 2.817

Concordance= 0.673 (se = 0.028 )


Likelihood ratio test= 29.11 on 7 df, p=1e-04
Wald test = 30.59 on 7 df, p=7e-05
Score (logrank) test = 31.31 on 7 df, p=5e-05

Modelo para a categoria "óbito" (Desfecho == 1):

A variável "T.entrada" tem um coeficiente positivo significativo (coef = 0.8282, p < 0.001), o
que significa que um aumento no tempo de internação está associado a um maior risco de óbito.

A variável "Idade_catmaior.que.60.anos" também é significativa (coef = 0.5567, p = 0.023),


indicando que pacientes com idade superior a 60 anos têm um maior risco de óbito em
comparação com aqueles com idade inferior a 31 anos.

As variáveis "Genero," "L.lesao," "TBHIV," "P.resistenc," e "Idade_catentre.31.e.60.anos" não


são significativas.
summary(modelo_alta)
Call:
coxph(formula = Surv(Tempo, Desfecho == 2) ~ Genero + L.lesao +
T.entrada + TBHIV + P.resistenc + Idade_catentre.31.e.60.anos +
Idade_catmaior.que.60.anos, data = BaseTBM)

n= 406, number of events= 229

coef exp(coef) se(coef) z Pr(>|z|)


Genero 0.08463 1.08832 0.13843 0.611 0.540940
L.lesao -0.09290 0.91128 0.14912 -0.623 0.533280
T.entrada 0.24878 1.28246 0.19428 1.281 0.200365
TBHIV -0.20210 0.81701 0.17102 -1.182 0.237312
P.resistenc -0.71314 0.49010 0.23809 -2.995 0.002743 **
Idade_catentre.31.e.60.anos 0.11493 1.12180 0.15119 0.760 0.447148
Idade_catmaior.que.60.anos -0.70798 0.49264 0.21016 -3.369 0.000755 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

exp(coef) exp(-coef) lower .95 upper .95


Genero 1.0883 0.9188 0.8297 1.4275
L.lesao 0.9113 1.0974 0.6803 1.2206
T.entrada 1.2825 0.7798 0.8763 1.8768
TBHIV 0.8170 1.2240 0.5843 1.1424
P.resistenc 0.4901 2.0404 0.3073 0.7815
Idade_catentre.31.e.60.anos 1.1218 0.8914 0.8341 1.5087
Idade_catmaior.que.60.anos 0.4926 2.0299 0.3263 0.7437

Concordance= 0.6 (se = 0.022 )


Likelihood ratio test= 32.56 on 7 df, p=3e-05
Wald test = 28.59 on 7 df, p=2e-04
Score (logrank) test = 29.47 on 7 df, p=1e-04

Modelo para a categoria "alta" (Desfecho == 2):

A única variável significativa é "P.resistenc" (coef = -0.71314, p = 0.003), que sugere que
pacientes com resistência têm um menor risco de receber alta.

As outras variáveis ("Genero," "L.lesao," "T.entrada," "TBHIV," "Idade_catentre.31.e.60.anos,"


e "Idade_catmaior.que.60.anos") não são significativas.
summary(modelo_em_tratamento)
Call:
coxph(formula = Surv(Tempo, Desfecho == 3) ~ Genero + L.lesao +
T.entrada + TBHIV + P.resistenc + Idade_catentre.31.e.60.anos +
Idade_catmaior.que.60.anos, data = BaseTBM)

n= 406, number of events= 29

coef exp(coef) se(coef) z Pr(>|z|)


Genero 0.2420 1.2738 0.3820 0.634 0.5264
L.lesao 1.3568 3.8839 0.6369 2.130 0.0331 *
T.entrada 0.2988 1.3483 0.7814 0.382 0.7021
TBHIV -1.3231 0.2663 0.5354 -2.471 0.0135 *
P.resistenc -0.9152 0.4004 0.5829 -1.570 0.1164
Idade_catentre.31.e.60.anos 0.3879 1.4739 0.5165 0.751 0.4526
Idade_catmaior.que.60.anos 0.4575 1.5801 0.5270 0.868 0.3853
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

exp(coef) exp(-coef) lower .95 upper .95


Genero 1.2738 0.7850 0.60244 2.6935
L.lesao 3.8839 0.2575 1.11459 13.5338
T.entrada 1.3483 0.7417 0.29151 6.2363
TBHIV 0.2663 3.7549 0.09325 0.7606
P.resistenc 0.4004 2.4973 0.12775 1.2551
Idade_catentre.31.e.60.anos 1.4739 0.6785 0.53555 4.0565
Idade_catmaior.que.60.anos 1.5801 0.6329 0.56247 4.4390

Concordance= 0.631 (se = 0.106 )


Likelihood ratio test= 14.42 on 7 df, p=0.04
Wald test = 13.21 on 7 df, p=0.07
Score (logrank) test = 14.58 on 7 df, p=0.04

Modelo para a categoria "em tratamento" (Desfecho == 3):

A variável "TBHIV" é significativa (coef = -1.3231, p = 0.0135), indicando que pacientes com
TBHIV têm um risco menor de permanecer em tratamento.

A variável "L.lesao" também é significativa (coef = 1.3568, p = 0.0331), indicando que pacientes
com lesões específicas têm um maior risco de permanecer em tratamento.

As outras variáveis não são significativas.


summary(modelo_transferido)
Call:
coxph(formula = Surv(Tempo, Desfecho == 4) ~ Genero + L.lesao +
T.entrada + TBHIV + P.resistenc + Idade_catentre.31.e.60.anos +
Idade_catmaior.que.60.anos, data = BaseTBM)

n= 406, number of events= 17

coef exp(coef) se(coef) z Pr(>|z|)


Genero 3.669e-01 1.443e+00 5.100e-01 0.720 0.4718
L.lesao 1.952e-01 1.216e+00 5.394e-01 0.362 0.7174
T.entrada 7.590e-01 2.136e+00 5.808e-01 1.307 0.1913
TBHIV 1.944e+01 2.780e+08 8.142e+03 0.002 0.9981
P.resistenc -1.935e+01 3.961e-09 9.370e+03 -0.002 0.9984
Idade_catentre.31.e.60.anos 3.110e-01 1.365e+00 8.602e-01 0.362 0.7177
Idade_catmaior.que.60.anos 1.631e+00 5.108e+00 8.070e-01 2.021 0.0433 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

exp(coef) exp(-coef) lower .95 upper .95


Genero 1.443e+00 6.929e-01 0.5312 3.921
L.lesao 1.216e+00 8.226e-01 0.4223 3.499
T.entrada 2.136e+00 4.681e-01 0.6843 6.669
TBHIV 2.780e+08 3.598e-09 0.0000 Inf
P.resistenc 3.961e-09 2.525e+08 0.0000 Inf
Idade_catentre.31.e.60.anos 1.365e+00 7.327e-01 0.2529 7.366
Idade_catmaior.que.60.anos 5.108e+00 1.958e-01 1.0504 24.841

Concordance= 0.841 (se = 0.037 )


Likelihood ratio test= 24.53 on 7 df, p=9e-04
Wald test = 12.99 on 7 df, p=0.07
Score (logrank) test = 21.79 on 7 df, p=0.003

Modelo para a categoria "transferido" (Desfecho == 4):

A única variável significativa é "Idade_catmaior.que.60.anos" (coef = 1.631, p = 0.0433),


indicando que pacientes com idade superior a 60 anos têm um maior risco de transferência.

As outras variáveis não são significativas.

TESTES DE PROPORCIONALIDADE DE RISCOS (PH) PARA OS NIVEIS DE


EVENTO
rk.obito <- cox.zph(cox.fit.obito, transform= "rank")
> rk.obito
chisq df p
Genero 6.6139 1 0.01012
L.lesao 3.9069 1 0.04809
T.entrada 3.5038 1 0.06123
TBHIV 11.9887 1 0.00054
P.resistenc 1.7409 1 0.18703
Idade_catentre.31.e.60.anos 0.3012 1 0.58311
Idade_catmaior.que.60.anos 0.0219 1 0.88233
GLOBAL 30.8872 7 6.5e-05
Para a categoria "óbito":

As variáveis "Genero," "L.lesao," "T.entrada," e "TBHIV" violam a suposição de


proporcionalidade de riscos, indicando que seus efeitos não são constantes ao longo do tempo.

A variável "P.resistenc" mantém a suposição de proporcionalidade dos riscos.

As categorias de idade ("Idade_catentre.31.e.60.anos" e "Idade_catmaior.que.60.anos") atendem


à suposição de proporcionalidade de riscos.

rk.alta <- cox.zph(cox.fit.alta, transform= "rank")


> print(rk.alta)
chisq df p
Genero 1.2397 1 0.27
L.lesao 0.0178 1 0.89
T.entrada 0.0392 1 0.84
TBHIV 0.7339 1 0.39
P.resistenc 2.3407 1 0.13
Idade_catentre.31.e.60.anos 0.0442 1 0.83
Idade_catmaior.que.60.anos 0.4415 1 0.51
GLOBAL 4.8743 7 0.68

rk.em_tratamento <- cox.zph(cox.fit.em_tratamento, transform= "rank")


> print(rk.em_tratamento)
chisq df p
Genero 0.237 1 0.626
L.lesao 4.530 1 0.033
T.entrada 0.172 1 0.678
TBHIV 0.563 1 0.453
P.resistenc 1.732 1 0.188
Idade_catentre.31.e.60.anos 0.422 1 0.516
Idade_catmaior.que.60.anos 0.272 1 0.602
GLOBAL 7.957 7 0.336

rk.transferido <- cox.zph(cox.fit.transferido, transform= "rank")


> print(rk.transferido)
chisq df p
Genero 5.10e+00 1 0.024
L.lesao 1.42e-03 1 0.970
T.entrada 1.87e+00 1 0.172
TBHIV 1.44e-11 1 1.000
P.resistenc 9.52e-10 1 1.000
Idade_catentre.31.e.60.anos 7.92e-02 1 0.778
Idade_catmaior.que.60.anos 5.21e-01 1 0.470
GLOBAL 7.95e+00 7 0.337

Para as categorias "alta," "em tratamento," e "transferido":

A maioria das variáveis não viola a suposição de proporcionalidade de riscos, sugerindo que seus
efeitos são aproximadamente constantes ao longo do tempo.
Os testes globais não são estatisticamente significativos em nenhuma das categorias, exceto para
a categoria "óbito," onde sugere uma violação da suposição de proporcionalidade de riscos.

Gráficos DOS RESULTADOS DE TESTES DE PH PARA OS NÍVEIS DE EVENTO


1. > ggcoxdiagnostics(cox.fit.obito, type="schoenfeld", point.size = 0.3)
`geom_smooth()` using formula = 'y ~ x'
> ## Print test results
2. ggcoxdiagnostics(cox.fit.alta, type="schoenfeld", point.size = 0.3)
`geom_smooth()` using formula = 'y ~ x'
> ## Print test results
3. ggcoxdiagnostics(cox.fit.em_tratamento, type="schoenfeld", point.size =
0.3)
`geom_smooth()` using formula = 'y ~ x'
> ## Print test results
4.ggcoxdiagnostics(cox.fit.transferido, type="schoenfeld", point.size = 0.3)
`geom_smooth()` using formula = 'y ~ x
SCRIPT

####### INSTALACAO DE PACOTES E CARREGAMENTO DE BIBLIOTECAS NECESSARIAS #########


install.packages("foreign")
library(foreign)
install.packages("stringr")
library(stringr)
install.packages("stats")
library(stats)
install.packages("dplyr")
library(dplyr)
install.packages("gridExtra")
install.packages("survival")
library(survival)
library(gridExtra)
install.packages("cmprsk")
library(cmprsk)
install.packages("foreign")
library(foreign)
install.packages("haven")

######### CARREGAMENTO DA BASE E LEITURA DOS CODIGOS ##########


library(foreign)
BaseTBM <- read.spss("C:/Users/BENY/Desktop/BaseTBM.sav", to.data.frame = TRUE)
View(BaseTBM)
BaseTBM$Genero <- ifelse(BaseTBM$Genero == "feminino", 0, 1)
BaseTBM$L.lesao <- ifelse(is.na(BaseTBM$L.lesao), 0, 1)
BaseTBM$T.entrada <- ifelse(BaseTBM$T.entrada == "caso novo", 0, 1)
BaseTBM$TBHIV <- ifelse(BaseTBM$TBHIV == "nao tem hiv associado", 0, 1)
BaseTBM$P.resistenc <- ifelse(BaseTBM$P.resistenc == "MR", 0, 1)
colnames(BaseTBM)[colnames(BaseTBM) == "Desfecho1"] <- "Status"
BaseTBM$Status <- ifelse(BaseTBM$Status == "censura", 0, 1)
BaseTBM <- data.frame(BaseTBM, model.matrix(~Desfecho - 1, data = BaseTBM))
### Não-linearidade
install.packages("survminer")
install.packages("survival")
library(survminer)
survminer::myeloma
library(survival)
library(ggplot2)
library(ggpubr)
win.graph()
ggcoxfunctional (Surv(Tempo, Status)~Idade+log(Idade) + sqrt(Idade), data = BaseTBM)

BaseTBM <- data.frame(BaseTBM, model.matrix(~Idade_cat - 1, data = BaseTBM))

BaseTBM <- BaseTBM %>% mutate(Desfecho = as.factor(recode(Base$Desfecho, "Abandono" = 0,


"obito" = 1, "Alta" = 2, "Em tratamento" = 3,"transferido" = 4)))

library(dplyr)

BaseTBM <- BaseTBM %>%


mutate(Desfecho = as.factor(recode(Desfecho, "Abandono" = "0", "obito" = "1", "Alta" = "2", "Em
tratamento" = "3", "transferido" = "4")))

### Prt 1

modelo_óbito <- coxph(Surv(Tempo, Desfecho ==1 ) ~


Genero+L.lesao+T.entrada+TBHIV+P.resistenc+Idade_catentre.31.e.60.anos+Idade_catmaior.que.60.an
os, data = BaseTBM, ties = "breslow")
modelo_alta <- coxph(Surv(Tempo, Desfecho == 2) ~
Genero+L.lesao+T.entrada+TBHIV+P.resistenc+Idade_catentre.31.e.60.anos+Idade_catmaior.que.60.an
os, data = BaseTBM)
modelo_em_tratamento <- coxph(Surv(Tempo, Desfecho == 3) ~
Genero+L.lesao+T.entrada+TBHIV+P.resistenc+Idade_catentre.31.e.60.anos+Idade_catmaior.que.60.an
os, data = BaseTBM)
modelo_transferido <- coxph(Surv(Tempo, Desfecho == 4) ~
Genero+L.lesao+T.entrada+TBHIV+P.resistenc+Idade_catentre.31.e.60.anos+Idade_catmaior.que.60.an
os, data = BaseTBM)

summary(modelo_óbito)
summary(modelo_alta)
summary(modelo_em_tratamento)
summary(modelo_transferido)

## Prt 2
install.packages("prodlim")
library(prodlim)
survminer::%++%
install.packages("lava")
library(lava)
library(cmprsk)
install.packages("crrstep")
library(crrstep)

library(crrstep)
library(cmprsk)
library(cmprsk)

library(cmprsk)
library(cmprsk)

# Criar uma variável de eventos competitivos


BaseTBM$EventosCompetitivos <- cumsum(BaseTBM$Desfecho == 1)
library(cmprsk)

library(cmprsk)

library(cmprsk)

library(cmprsk)

SH <- crr(Hist(Tempo,Desfecho)~
Genero+L.lesao+T.entrada+TBHIV+P.resistenc+Idade_catentre.31.e.60.anos+Idade_catmaior.que.60.an
os, data = BaseTBM, cause=1)

### PARTE 3 - PROPORCIONALIDADE

install.packages("rms")
install.packages("survive")
library(rms)
library(survive)

## Goodness of fit testing approach- schoenfeld residuals


# Fit a model assuming PH for all variables
cox.fit.obito <- coxph(Surv(Tempo, Desfecho == "1") ~
Genero+L.lesao+T.entrada+TBHIV+P.resistenc+Idade_catentre.31.e.60.anos+Idade_catmaior.que.60.an
os, data = BaseTBM, ties = "breslow")
cox.fit.alta <- coxph(Surv(Tempo, Desfecho == "2") ~
Genero+L.lesao+T.entrada+TBHIV+P.resistenc+Idade_catentre.31.e.60.anos+Idade_catmaior.que.60.an
os, data = BaseTBM, ties = "breslow")
cox.fit.em_tratamento <- coxph(Surv(Tempo, Desfecho == "3") ~
Genero+L.lesao+T.entrada+TBHIV+P.resistenc+Idade_catentre.31.e.60.anos+Idade_catmaior.que.60.an
os, data = BaseTBM, ties = "breslow")
cox.fit.transferido <- coxph(Surv(Tempo, Desfecho == "4") ~
Genero+L.lesao+T.entrada+TBHIV+P.resistenc+Idade_catentre.31.e.60.anos+Idade_catmaior.que.60.an
os, data = BaseTBM, ties = "breslow")

rk.obito <- cox.zph(cox.fit.obito, transform= "rank")


rk.alta <- cox.zph(cox.fit.alta, transform= "rank")
rk.em_tratamento <- cox.zph(cox.fit.em_tratamento, transform= "rank")
rk.transferido <- cox.zph(cox.fit.transferido, transform= "rank")

print(rk.obito)
print(rk.alta)
print(rk.em_tratamento)
print(rk.transferido)

## Print test results


win.graph()
ggcoxdiagnostics(cox.fit.obito, type="schoenfeld", point.size = 0.3)
ggcoxdiagnostics(cox.fit.alta, type="schoenfeld", point.size = 0.3)
ggcoxdiagnostics(cox.fit.em_tratamento, type="schoenfeld", point.size = 0.3)
ggcoxdiagnostics(cox.fit.transferido, type="schoenfeld", point.size = 0.3)

Você também pode gostar