© Ricardo Solar/UFMG - compartilhamento e utilização não-comercial livres. Não reproduzir sem autorização
rm(list=ls()) ##remove todos os elementos existentes no Environment
dev.off() ##apaga todo o device grafico
## null device
## 1
library(survival)
library(ggplot2)
library(survminer)
## Loading required package: ggpubr
##
## Attaching package: 'survminer'
## The following object is masked from 'package:survival':
##
## myeloma
dados<- read.table("ataque.txt",header=T, stringsAsFactors = T)
#attach(dados)
summary(dados)
## Interacao Distancia tempo Ataque
## hom:62 longe:61 Min. : 5.0 Min. :0.0000
## nef:60 perto:61 1st Qu.:166.2 1st Qu.:0.0000
## Median :600.0 Median :0.0000
## Mean :406.1 Mean :0.4836
## 3rd Qu.:600.0 3rd Qu.:1.0000
## Max. :600.0 Max. :1.0000
plot(dados)
m.completo <- survreg(Surv(tempo,Ataque)~Interacao*Distancia, data=dados)
m.n <- survreg(Surv(tempo,Ataque)~1, data=dados)
anova(m.n,m.completo,test="Chisq")
anova(m.completo,test="Chisq")
# simplificando:
#retirando a interacao:
m.completo2 <- update(m.completo, .~.-Interacao:Distancia)
anova(m.completo, m.completo2, test="Chi")
anova(m.completo2,test="Chisq")
summary(m.completo2)
##
## Call:
## survreg(formula = Surv(tempo, Ataque) ~ Interacao + Distancia,
## data = dados)
## Value Std. Error z p
## (Intercept) 7.411 0.362 20.47 < 2e-16
## Interacaonef 0.816 0.364 2.25 0.025
## Distanciaperto -1.632 0.404 -4.04 5.4e-05
## Log(scale) 0.294 0.116 2.55 0.011
##
## Scale= 1.34
##
## Weibull distribution
## Loglik(model)= -439 Loglik(intercept only)= -451.1
## Chisq= 24.33 on 2 degrees of freedom, p= 5.2e-06
## Number of Newton-Raphson Iterations: 5
## n= 122
m.completo2.1 = survfit(Surv(tempo,Ataque)~Interacao, data=dados)
summary(m.completo2.1)
## Call: survfit(formula = Surv(tempo, Ataque) ~ Interacao, data = dados)
##
## Interacao=hom
## time n.risk n.event survival std.err lower 95% CI upper 95% CI
## 5 62 1 0.984 0.0160 0.953 1.000
## 10 61 3 0.935 0.0312 0.876 0.999
## 15 58 1 0.919 0.0346 0.854 0.990
## 20 57 1 0.903 0.0375 0.833 0.980
## 33 56 1 0.887 0.0402 0.812 0.969
## 35 55 1 0.871 0.0426 0.791 0.959
## 40 54 2 0.839 0.0467 0.752 0.935
## 46 52 1 0.823 0.0485 0.733 0.923
## 56 51 1 0.806 0.0502 0.714 0.911
## 70 50 1 0.790 0.0517 0.695 0.898
## 82 49 1 0.774 0.0531 0.677 0.886
## 95 48 1 0.758 0.0544 0.659 0.873
## 102 47 1 0.742 0.0556 0.641 0.859
## 112 46 1 0.726 0.0567 0.623 0.846
## 115 45 1 0.710 0.0576 0.605 0.832
## 132 44 1 0.694 0.0585 0.588 0.818
## 145 43 1 0.677 0.0594 0.571 0.804
## 170 42 2 0.645 0.0608 0.536 0.776
## 202 40 1 0.629 0.0613 0.520 0.762
## 206 39 1 0.613 0.0619 0.503 0.747
## 265 38 1 0.597 0.0623 0.486 0.732
## 266 37 1 0.581 0.0627 0.470 0.717
## 275 36 1 0.565 0.0630 0.454 0.702
## 311 35 1 0.548 0.0632 0.438 0.687
## 353 34 1 0.532 0.0634 0.421 0.672
## 470 33 1 0.516 0.0635 0.406 0.657
## 510 32 2 0.484 0.0635 0.374 0.626
## 537 30 1 0.468 0.0634 0.359 0.610
## 540 29 1 0.452 0.0632 0.343 0.594
## 545 28 1 0.435 0.0630 0.328 0.578
##
## Interacao=nef
## time n.risk n.event survival std.err lower 95% CI upper 95% CI
## 10 60 2 0.967 0.0232 0.922 1.000
## 30 58 2 0.933 0.0322 0.872 0.999
## 40 56 1 0.917 0.0357 0.849 0.989
## 52 55 1 0.900 0.0387 0.827 0.979
## 60 54 1 0.883 0.0414 0.806 0.968
## 67 53 1 0.867 0.0439 0.785 0.957
## 120 52 1 0.850 0.0461 0.764 0.945
## 125 51 1 0.833 0.0481 0.744 0.933
## 165 50 1 0.817 0.0500 0.724 0.921
## 193 49 1 0.800 0.0516 0.705 0.908
## 200 48 1 0.783 0.0532 0.686 0.895
## 231 47 1 0.767 0.0546 0.667 0.882
## 245 46 1 0.750 0.0559 0.648 0.868
## 300 45 1 0.733 0.0571 0.630 0.854
## 319 44 1 0.717 0.0582 0.611 0.840
## 360 43 1 0.700 0.0592 0.593 0.826
## 367 42 1 0.683 0.0601 0.575 0.812
## 410 41 1 0.667 0.0609 0.557 0.797
## 450 40 1 0.650 0.0616 0.540 0.783
## 470 39 1 0.633 0.0622 0.522 0.768
## 480 38 1 0.617 0.0628 0.505 0.753
## 510 37 1 0.600 0.0632 0.488 0.738
plot(m.completo2.1,mark=c(16,1),lty=c(1,2),las=1,ylab= "Probabilidade de sobrevivencia", xlab="Tempo (s)",bty="l")
# legenda
legend("bottomleft",legend=levels(dados$Interacao),lty=c(1,2),pch=c(16,1),bty="n")
m.completo2.2 = survfit(Surv(tempo,Ataque)~Distancia, data=dados)
summary(m.completo2.2)
## Call: survfit(formula = Surv(tempo, Ataque) ~ Distancia, data = dados)
##
## Distancia=longe
## time n.risk n.event survival std.err lower 95% CI upper 95% CI
## 30 61 1 0.984 0.0163 0.952 1.000
## 70 60 1 0.967 0.0228 0.924 1.000
## 82 59 1 0.951 0.0277 0.898 1.000
## 112 58 1 0.934 0.0317 0.874 0.999
## 145 57 1 0.918 0.0351 0.852 0.990
## 165 56 1 0.902 0.0381 0.830 0.980
## 170 55 1 0.885 0.0408 0.809 0.969
## 200 54 1 0.869 0.0432 0.788 0.958
## 266 53 1 0.852 0.0454 0.768 0.946
## 311 52 1 0.836 0.0474 0.748 0.934
## 319 51 1 0.820 0.0492 0.729 0.922
## 353 50 1 0.803 0.0509 0.709 0.909
## 360 49 1 0.787 0.0524 0.691 0.897
## 367 48 1 0.770 0.0538 0.672 0.884
## 470 47 2 0.738 0.0563 0.635 0.857
## 510 45 2 0.705 0.0584 0.599 0.829
## 540 43 1 0.689 0.0593 0.582 0.815
##
## Distancia=perto
## time n.risk n.event survival std.err lower 95% CI upper 95% CI
## 5 61 1 0.984 0.0163 0.952 1.000
## 10 60 5 0.902 0.0381 0.830 0.980
## 15 55 1 0.885 0.0408 0.809 0.969
## 20 54 1 0.869 0.0432 0.788 0.958
## 30 53 1 0.852 0.0454 0.768 0.946
## 33 52 1 0.836 0.0474 0.748 0.934
## 35 51 1 0.820 0.0492 0.729 0.922
## 40 50 3 0.770 0.0538 0.672 0.884
## 46 47 1 0.754 0.0551 0.653 0.870
## 52 46 1 0.738 0.0563 0.635 0.857
## 56 45 1 0.721 0.0574 0.617 0.843
## 60 44 1 0.705 0.0584 0.599 0.829
## 67 43 1 0.689 0.0593 0.582 0.815
## 95 42 1 0.672 0.0601 0.564 0.801
## 102 41 1 0.656 0.0608 0.547 0.786
## 115 40 1 0.639 0.0615 0.530 0.772
## 120 39 1 0.623 0.0621 0.512 0.757
## 125 38 1 0.607 0.0625 0.496 0.742
## 132 37 1 0.590 0.0630 0.479 0.727
## 170 36 1 0.574 0.0633 0.462 0.712
## 193 35 1 0.557 0.0636 0.446 0.697
## 202 34 1 0.541 0.0638 0.429 0.682
## 206 33 1 0.525 0.0639 0.413 0.666
## 231 32 1 0.508 0.0640 0.397 0.650
## 245 31 1 0.492 0.0640 0.381 0.635
## 265 30 1 0.475 0.0639 0.365 0.619
## 275 29 1 0.459 0.0638 0.350 0.603
## 300 28 1 0.443 0.0636 0.334 0.587
## 410 27 1 0.426 0.0633 0.319 0.570
## 450 26 1 0.410 0.0630 0.303 0.554
## 480 25 1 0.393 0.0625 0.288 0.537
## 510 24 1 0.377 0.0621 0.273 0.521
## 537 23 1 0.361 0.0615 0.258 0.504
## 545 22 1 0.344 0.0608 0.243 0.487
plot(m.completo2.2,mark=c(16,1),lty=c(1,2),las=1,ylab= "Probabilidade de sobrevivencia", xlab="Tempo (s)",bty="l")
# legenda
legend("bottomleft",legend=levels(dados$Distancia),lty=c(1,2),pch=c(16,1),bty="n")
################
m.completo2.3 = survfit(Surv(tempo,Ataque)~Distancia+Interacao, data=dados)
summary(m.completo2.3)
## Call: survfit(formula = Surv(tempo, Ataque) ~ Distancia + Interacao,
## data = dados)
##
## Distancia=longe, Interacao=hom
## time n.risk n.event survival std.err lower 95% CI upper 95% CI
## 70 31 1 0.968 0.0317 0.908 1.000
## 82 30 1 0.935 0.0441 0.853 1.000
## 112 29 1 0.903 0.0531 0.805 1.000
## 145 28 1 0.871 0.0602 0.761 0.997
## 170 27 1 0.839 0.0661 0.719 0.979
## 266 26 1 0.806 0.0710 0.679 0.958
## 311 25 1 0.774 0.0751 0.640 0.936
## 353 24 1 0.742 0.0786 0.603 0.913
## 470 23 1 0.710 0.0815 0.567 0.889
## 510 22 1 0.677 0.0840 0.531 0.864
## 540 21 1 0.645 0.0859 0.497 0.838
##
## Distancia=longe, Interacao=nef
## time n.risk n.event survival std.err lower 95% CI upper 95% CI
## 30 30 1 0.967 0.0328 0.905 1.000
## 165 29 1 0.933 0.0455 0.848 1.000
## 200 28 1 0.900 0.0548 0.799 1.000
## 319 27 1 0.867 0.0621 0.753 0.997
## 360 26 1 0.833 0.0680 0.710 0.978
## 367 25 1 0.800 0.0730 0.669 0.957
## 470 24 1 0.767 0.0772 0.629 0.934
## 510 23 1 0.733 0.0807 0.591 0.910
##
## Distancia=perto, Interacao=hom
## time n.risk n.event survival std.err lower 95% CI upper 95% CI
## 5 31 1 0.968 0.0317 0.908 1.000
## 10 30 3 0.871 0.0602 0.761 0.997
## 15 27 1 0.839 0.0661 0.719 0.979
## 20 26 1 0.806 0.0710 0.679 0.958
## 33 25 1 0.774 0.0751 0.640 0.936
## 35 24 1 0.742 0.0786 0.603 0.913
## 40 23 2 0.677 0.0840 0.531 0.864
## 46 21 1 0.645 0.0859 0.497 0.838
## 56 20 1 0.613 0.0875 0.463 0.811
## 95 19 1 0.581 0.0886 0.431 0.783
## 102 18 1 0.548 0.0894 0.398 0.755
## 115 17 1 0.516 0.0898 0.367 0.726
## 132 16 1 0.484 0.0898 0.336 0.696
## 170 15 1 0.452 0.0894 0.306 0.666
## 202 14 1 0.419 0.0886 0.277 0.635
## 206 13 1 0.387 0.0875 0.249 0.603
## 265 12 1 0.355 0.0859 0.221 0.570
## 275 11 1 0.323 0.0840 0.194 0.537
## 510 10 1 0.290 0.0815 0.167 0.503
## 537 9 1 0.258 0.0786 0.142 0.469
## 545 8 1 0.226 0.0751 0.118 0.433
##
## Distancia=perto, Interacao=nef
## time n.risk n.event survival std.err lower 95% CI upper 95% CI
## 10 30 2 0.933 0.0455 0.848 1.000
## 30 28 1 0.900 0.0548 0.799 1.000
## 40 27 1 0.867 0.0621 0.753 0.997
## 52 26 1 0.833 0.0680 0.710 0.978
## 60 25 1 0.800 0.0730 0.669 0.957
## 67 24 1 0.767 0.0772 0.629 0.934
## 120 23 1 0.733 0.0807 0.591 0.910
## 125 22 1 0.700 0.0837 0.554 0.885
## 193 21 1 0.667 0.0861 0.518 0.859
## 231 20 1 0.633 0.0880 0.482 0.832
## 245 19 1 0.600 0.0894 0.448 0.804
## 300 18 1 0.567 0.0905 0.414 0.775
## 410 17 1 0.533 0.0911 0.382 0.745
## 450 16 1 0.500 0.0913 0.350 0.715
## 480 15 1 0.467 0.0911 0.318 0.684
plot(m.completo2.3,mark=c(16,1,16,1), col=1:4, lty=c(1,2,1,2),las=1,ylab= "Probabilidade de ataque", xlab="Tempo (s)",bty="l", lwd=2)
# legenda
legend("bottomleft",legend=c("Hom-Longe", "Nef-Longe", "Hom-Perto", "Nef-Perto"),lty=c(1,2,1,2),pch=c(16,1, 16, 1),bty="n", col=1:4)
ggsurvplot(
m.completo2.3, # survfit object with calculated statistics.
xlab = "Time in seconds", # customize X axis label.
break.time.by = 100, # break X axis in time intervals by 100.
ncensor.plot = TRUE, # plot the number of censored subjects at time t
legend.title="Tratamento",
legend.labs = c("Longe - Hom", "Longe - NEF", "Perto - Hom", "Perto - NEF") # change legend labels.
)