library (asaur)
library(survival)
dados=asaur::pharmacoSmoking
attach(dados)
cens_smoking<-dados[,3]
tempo_smoking=ttr
Surv(tempo_smoking,cens_smoking)
## [1] 182+ 14 5 16 0 182+ 14 77 2 0 12 182+ 21 3 170
## [16] 25 4 182+ 140 63 15 140 110 182+ 0 182+ 15 182+ 4 56
## [31] 2 80 182+ 56 0 14 14 28 182+ 6 182+ 14 15 182+ 75
## [46] 30 4 56 182+ 182+ 5 8 140 20 63 30 8 50 14 0
## [61] 84 0 105 182+ 182+ 182+ 7 182+ 0 8 1 182+ 12 182+ 49
## [76] 182+ 182+ 2 182+ 56 182+ 0 28 155 2 0 0 1 140 1
## [91] 28 1 182+ 77 56 182+ 182+ 182+ 182+ 182+ 21 60 0 182+ 65
## [106] 182+ 182+ 182+ 182+ 2 40 100 1 45 14 30 42 2 182+ 60
## [121] 10 0 170 15 182+
ekmE<- survfit(Surv(tempo_smoking,cens_smoking)~1)
summary(ekmE)
## Call: survfit(formula = Surv(tempo_smoking, cens_smoking) ~ 1)
##
## time n.risk n.event survival std.err lower 95% CI upper 95% CI
## 0 125 12 0.904 0.0263 0.854 0.957
## 1 113 5 0.864 0.0307 0.806 0.926
## 2 108 6 0.816 0.0347 0.751 0.887
## 3 102 1 0.808 0.0352 0.742 0.880
## 4 101 3 0.784 0.0368 0.715 0.860
## 5 98 2 0.768 0.0378 0.697 0.846
## 6 96 1 0.760 0.0382 0.689 0.839
## 7 95 1 0.752 0.0386 0.680 0.832
## 8 94 3 0.728 0.0398 0.654 0.810
## 10 91 1 0.720 0.0402 0.645 0.803
## 12 90 2 0.704 0.0408 0.628 0.789
## 14 88 7 0.648 0.0427 0.569 0.737
## 15 81 4 0.616 0.0435 0.536 0.707
## 16 77 1 0.608 0.0437 0.528 0.700
## 20 76 1 0.600 0.0438 0.520 0.692
## 21 75 2 0.584 0.0441 0.504 0.677
## 25 73 1 0.576 0.0442 0.496 0.669
## 28 72 3 0.552 0.0445 0.471 0.646
## 30 69 3 0.528 0.0447 0.447 0.623
## 40 66 1 0.520 0.0447 0.439 0.615
## 42 65 1 0.512 0.0447 0.431 0.608
## 45 64 1 0.504 0.0447 0.424 0.600
## 49 63 1 0.496 0.0447 0.416 0.592
## 50 62 1 0.488 0.0447 0.408 0.584
## 56 61 5 0.448 0.0445 0.369 0.544
## 60 56 2 0.432 0.0443 0.353 0.528
## 63 54 2 0.416 0.0441 0.338 0.512
## 65 52 1 0.408 0.0440 0.330 0.504
## 75 51 1 0.400 0.0438 0.323 0.496
## 77 50 2 0.384 0.0435 0.308 0.479
## 80 48 1 0.376 0.0433 0.300 0.471
## 84 47 1 0.368 0.0431 0.292 0.463
## 100 46 1 0.360 0.0429 0.285 0.455
## 105 45 1 0.352 0.0427 0.277 0.447
## 110 44 1 0.344 0.0425 0.270 0.438
## 140 43 4 0.312 0.0414 0.240 0.405
## 155 39 1 0.304 0.0411 0.233 0.396
## 170 38 2 0.288 0.0405 0.219 0.379
plot(ekmE, xlab="Tempo (semanas)",ylab="S(t) estimada", main = "Curva de Sobrevivência Estimada para dados de Smoking")
Nesse exercicio, sobreviver significa não voltar a fumar.
ekm2<- survfit(Surv(tempo_smoking,cens_smoking)~1)
t<- tempo_smoking[cens_smoking==1]
tj<-c(0,as.numeric(levels(as.factor(t))))
surv<-c(1,as.numeric(levels(as.factor(ekm2$surv))))
surv<-sort(surv, decreasing=T)
k<-length(tj)-1
prod<-matrix(0,k,1)
for(j in 1:k){
prod[j]<-(tj[j+1]-tj[j])*surv[j]
}
tm<-sum(prod)
tm
## [1] 73.984
tempo medio de 147.9398 e a mediana é 49.
ekm4E<- survfit(Surv(tempo_smoking,cens_smoking)~levelSmoking)
plot(ekm4E,xlab="Tempo (dias)",ylab="S(t) estimada",col=c(1,2))
legend("topright",col=c(2,1),c("leve","forte"),lwd=1, bty="n")
As curvas se tocam em mais de um ponto, logo o teste de Peto deve ser o mais indicado. Vamos realizar os dois apenas por fins interpretativos.
survdiff(Surv(tempo_smoking,cens_smoking)~levelSmoking,rho=0)
## Call:
## survdiff(formula = Surv(tempo_smoking, cens_smoking) ~ levelSmoking,
## rho = 0)
##
## N Observed Expected (O-E)^2/E (O-E)^2/V
## levelSmoking=heavy 89 62 62.7 0.00842 0.0297
## levelSmoking=light 36 27 26.3 0.02010 0.0297
##
## Chisq= 0 on 1 degrees of freedom, p= 0.9
survdiff(Surv(tempo_smoking,cens_smoking)~levelSmoking,rho=1)
## Call:
## survdiff(formula = Surv(tempo_smoking, cens_smoking) ~ levelSmoking,
## rho = 1)
##
## N Observed Expected (O-E)^2/E (O-E)^2/V
## levelSmoking=heavy 89 42.1 41.4 0.0112 0.054
## levelSmoking=light 36 16.8 17.5 0.0265 0.054
##
## Chisq= 0.1 on 1 degrees of freedom, p= 0.8
A um nivel de significancia de 5%, não rejeito a hipotese de que existe diferença nos grupos.
ekm6E<- survfit(Surv(tempo_smoking,cens_smoking)~grp)
plot(ekm6E,xlab="Tempo (dias)",ylab="S(t) estimada",col=c(1,2))
legend("topright",col=c(2,1),c("combination","patchOnly"),lwd=1, bty="n")
As curvas não tocam em mais de um ponto, logo podemos usar os dois testes.
survdiff(Surv(tempo_smoking,cens_smoking)~grp,rho=0)
## Call:
## survdiff(formula = Surv(tempo_smoking, cens_smoking) ~ grp, rho = 0)
##
## N Observed Expected (O-E)^2/E (O-E)^2/V
## grp=combination 61 37 49.9 3.36 8.03
## grp=patchOnly 64 52 39.1 4.29 8.03
##
## Chisq= 8 on 1 degrees of freedom, p= 0.005
survdiff(Surv(tempo_smoking,cens_smoking)~grp,rho=1)
## Call:
## survdiff(formula = Surv(tempo_smoking, cens_smoking) ~ grp, rho = 1)
##
## N Observed Expected (O-E)^2/E (O-E)^2/V
## grp=combination 61 23.1 32.1 2.53 8.01
## grp=patchOnly 64 35.8 26.8 3.04 8.01
##
## Chisq= 8 on 1 degrees of freedom, p= 0.005
A um nivel de significancia de 5%, rejeito a hipotese de que existe diferença nos grupos.