# Método
###Estudo Transversal
require(RcmdrMisc)
require(dplyr)
library(colorspace, pos=33)
#notifcações match
banco <- read.csv("C:/Users/edson/Downloads/Base_de_dados_match (1).csv", comment.char="#")
banco$recorrencia2<-0
banco$recorrencia2[banco$recorrencia!="1" & banco$diff<365]<-1
banco$recorrencia2<-as.factor(banco$recorrencia2)
banco$CS_GESTANT<-as.factor(banco$CS_GESTANT)
banco$CS_ESCOL_N<-as.factor(banco$CS_ESCOL_N)
#repetição
## Load survival package
library(survival)
#remoção de duplicatas
dataset <- banco
dataset$NU_IDADE_N<-dataset$NU_IDADE_N-4000
#dataset$recorrencia2<-0
#dataset$recorrencia2[dataset$recorrencia>2 & dataset$diff<60]<-1
#banco$recorrencia2<-as.factor(banco$recorrencia2)
dataset<-arrange(dataset,desc(dataset$DT_NOTIFIC))
dataset<-dplyr::distinct(dataset,dataset$study_ID,.keep_all=T)
tabela <- within(dataset, {
CS_ESCOL_N <- as.factor(CS_ESCOL_N)
CS_GESTANT <- as.factor(CS_GESTANT)
CS_RACA <- as.factor(CS_RACA)
MES <- as.factor(MES)
PCRUZ <- as.factor(PCRUZ)
RESULT <- as.factor(RESULT)
recorrencia2 <- as.factor(recorrencia2)
})
dataset$TRA_ESQUEM<-as.factor(dataset$TRA_ESQUEM)
#criar variável recorrência
tabela<-subset(dataset, select=c(NU_IDADE_N , CS_SEXO, CS_GESTANT, CS_RACA, CS_ESCOL_N, RESULT,
PMM , PCRUZ , TRA_ESQUEM , MES , recorrencia2,
diff, LVC , Tempo_class))
#teste de hiotese em banco bruto as.it is
#require(gtsummary)
#gtsummary::tbl_summary(tabela, by= "CS_SEXO")
#gtsummary::tbl_summary(tabela,by="recorrencia2")
#levando em conta subset de recorrências
#Script de Cox Exaustivo
options(digits=3)
dataset <- within(dataset, {
CS_ESCOL_N <- as.factor(CS_ESCOL_N)
CS_GESTANT <- as.factor(CS_GESTANT)
CS_RACA <- as.factor(CS_RACA)
MES <- as.factor(MES)
PCRUZ <- as.factor(PCRUZ)
RESULT <- as.factor(RESULT)
TRA_ESQUEM <- as.factor(TRA_ESQUEM)
})
dataset$recorrencia2[dataset$recorrencia2==2]<-0
## Create outcome variable, then survival object
dataset <- within(dataset, {
status.dichotomous <- recorrencia2 != 0
survival.vector <- Surv(diff, recorrencia2)
})
dataset$TRA_ESQUEM2<-0
dataset$TRA_ESQUEM2[dataset$TRA_ESQUEM=="4"]<-1
dataset$TRA_ESQUEM2<-as.factor(dataset$TRA_ESQUEM2)
dataset$TRA_ESQUEM3<-0
dataset$TRA_ESQUEM3[dataset$TRA_ESQUEM=="8"]<-1
dataset$TRA_ESQUEM3<-as.factor(dataset$TRA_ESQUEM3)
dataset$TRA_ESQUEM4<-0
dataset$TRA_ESQUEM4[dataset$TRA_ESQUEM=="10"]<-1
dataset$TRA_ESQUEM4<-as.factor(dataset$TRA_ESQUEM4)
dataset$TRA_ESQUEM5<-0
dataset$TRA_ESQUEM5[dataset$TRA_ESQUEM=="3"]<-1
dataset$TRA_ESQUEM5<-as.factor(dataset$TRA_ESQUEM5)
dataset$gestante2<-0
dataset$gestante2[dataset$CS_GESTANT!=1]<-1
dataset$gestante2<-as.factor(dataset$gestante2)
dataset$raca2<-0
dataset$raca2[dataset$CS_RACA!=1]<-1
dataset$raca2<-as.factor(dataset$raca2)
dataset$escola2<-0
dataset$escola2[dataset$CS_ESCOL_N=="7"|dataset$CS_ESCOL_N=="8"|dataset$CS_ESCOL_N=="9"|dataset$CS_ESCOL_N=="10"]<-1
dataset$escola2<-as.factor(dataset$escola2)
## Create vectors for outcome and predictors
outcome <- c("survival.vector")
#predictors <- c("esquema2","cd8_cd4", "idade","cv","COR","gon","Grupo6")
predictors <- c('NU_IDADE_N' , 'CS_SEXO', 'raca2', 'escola2', 'RESULT', 'PMM' , 'PCRUZ' , 'TRA_ESQUEM2' ,'TRA_ESQUEM3','TRA_ESQUEM4','TRA_ESQUEM5' , 'LVC')
## The lines below should not need modification.
## Create list of models
list.of.models <- lapply(seq_along((predictors)), function(n) {
left.hand.side <- outcome
right.hand.side <- apply(X = combn(predictors, n), MARGIN = 2, paste, collapse = " + ")
paste(left.hand.side, right.hand.side, sep = " ~ ")
})
## Convert to a
vector.of.models <- unlist(list.of.models)
## Fit coxph to all models
#list.of.fits <- lapply(vector.of.models, #function(x) {
#
# formula <- as.formula(x)
# fit <- coxph(formula, data = #dataset, id=study_ID)
# suma<- summary(fit)
# result.AIC <- extractAIC(fit)
#
# data.frame(num.predictors = #result.AIC[1],
# AIC = #result.AIC[2],
# model = x,
# suma= #suma[["coefficients"]])
#})
## Collapse to a data frame
#result <- do.call(rbind, list.of.fits)
#result$ciup<-exp(result$suma.coef + #2*result$suma.se.coef.)
#result$cidown<-exp(result$suma.coef - #2*result$suma.se.coef.)
#result$var<- row.names(result)
## Sort and print
#library(doBy)
#a<-orderBy(~ AIC + model, result)
#a<-as.data.frame(a, digits=2)
#result$pvalorsig<-0
#result$pvalorsig[result$suma.Pr...z..<0.05]<-1
#f<-result %>%
#group_by(model) %>%
#summarise(somamodelo= sum(pvalorsig))
#a<-merge(a,f)
#a$dif<-a$num.predictors- a$somamodelo
#filtrar modelos com todas as var em todos os fatores < 0.05
#filtrar modelos com mais de um preditor, vai ser todos uni se binária ou numérica todas as var em todos os fatores < 0.05
#modelomulticomtudosig<-subset(a,a$dif<1 & a$num.predictors>1)
##filtrar modelos com mais de um preditor, vai ser todos uni se binária ou numérica todas -1 as var em todos os fatores < 0.05, para pegar multinomial
#modelomulticomtudosigmenos1<-subset(a,a$dif<2 & a$num.predictors>1)
#modelomulticomtudosigmenos3<-subset(a,a$dif<2 & a$num.predictors>4)
#modelo_uni<-subset(a,a$num.predictors==1)
#htmlTable::htmlTable(modelo_uni)
#htmlTable::htmlTable(modelomulticomtudosig)
#htmlTable::htmlTable(modelomulticomtudosig)
#dataset
table(dataset$LVC)
##
## LVC Ñ_LVC
## 635 5599
tabela$TRA_ESQUEM2<-0
tabela$TRA_ESQUEM2[tabela$TRA_ESQUEM=="4"]<-1
tabela$TRA_ESQUEM2<-as.factor(tabela$TRA_ESQUEM2)
tabela$TRA_ESQUEM3<-0
tabela$TRA_ESQUEM3[tabela$TRA_ESQUEM=="8"]<-1
tabela$TRA_ESQUEM3<-as.factor(tabela$TRA_ESQUEM3)
tabela$TRA_ESQUEM4<-0
tabela$TRA_ESQUEM4[tabela$TRA_ESQUEM=="10"]<-1
tabela$TRA_ESQUEM4<-as.factor(tabela$TRA_ESQUEM4)
tabela$TRA_ESQUEM5<-0
tabela$TRA_ESQUEM5[tabela$TRA_ESQUEM=="3"]<-1
tabela$TRA_ESQUEM5<-as.factor(tabela$TRA_ESQUEM5)
#a<-dataset$diff[dataset$recorrencia3==1]
#edu::resumosnumericos(a)
#a<-as.data.frame(a)
#edu::resumosnumericos(a)
#a<-dataset$diff[dataset$recorrencia2==1]
#a<-as.data.frame(a)
#table(dataset$recorrencia3)
#table(dataset$recorrencia3)
#a<-dataset$diff[dataset$recorrencia2==1]
#edu::resumosnumericos(a)
#a<-dataset$diff[dataset$recorrencia2==1]
#a<-as.data.frame(a)
#edu::resumosnumericos(a)
#modelos univariado logistico
require(survminer)
#edu::modelo_uni(tabela)
#modelo multi logistico logit
sjPlot::tab_model(glm(recorrencia2 ~ CS_SEXO+PCRUZ+LVC+TRA_ESQUEM3+TRA_ESQUEM4,data=dataset,family =binomial(logit)))
|
recorrencia2
|
Predictors
|
Odds Ratios
|
CI
|
p
|
(Intercept)
|
0.37
|
0.27 – 0.50
|
<0.001
|
CS_SEXO [M]
|
1.27
|
1.03 – 1.57
|
0.029
|
PCRUZ [2]
|
1.23
|
0.88 – 1.70
|
0.220
|
PCRUZ [3]
|
1.33
|
0.99 – 1.80
|
0.061
|
PCRUZ [4]
|
1.61
|
1.26 – 2.06
|
<0.001
|
PCRUZ [5]
|
1.55
|
1.10 – 2.18
|
0.011
|
PCRUZ [6]
|
1.38
|
0.79 – 2.29
|
0.235
|
LVC [Ñ_LVC]
|
0.14
|
0.11 – 0.16
|
<0.001
|
TRA_ESQUEM3 [1]
|
8.19
|
1.07 – 49.79
|
0.022
|
TRA_ESQUEM4 [1]
|
7.11
|
3.32 – 15.19
|
<0.001
|
Observations
|
6234
|
R2 Tjur
|
0.100
|
#Modelo gee
#sjPlot::tab_model(gee::gee(recorrencia2 ~ CS_SEXO +PCRUZ+LVC+TRA_ESQUEM3+TRA_ESQUEM4,data=dataset,id=study_ID))
#modelo de cox
sjPlot::tab_model(coxph(Surv(diff, recorrencia2) ~ escola2 + TRA_ESQUEM2 + TRA_ESQUEM3,data=dataset,id=study_ID))
|
Surv(diff, recorrencia2)
|
Predictors
|
Estimates
|
CI
|
p
|
escola2 [1]
|
1.23
|
1.06 – 1.44
|
0.008
|
TRA_ESQUEM2 [1]
|
0.50
|
0.26 – 0.97
|
0.041
|
TRA_ESQUEM3 [1]
|
4.21
|
1.05 – 16.94
|
0.043
|
Observations
|
6234
|
R2 Nagelkerke
|
0.021
|
.Survfit <- survfit(Surv(diff, recorrencia2) ~ escola2 + TRA_ESQUEM2 + TRA_ESQUEM3 , error="greenwood",data=dataset,id=study_ID)
plot(.Survfit)

#3 é 8
#4 é 10