Para esta terceira aula prática de Análise de Sobrevivência e Confiabilidade, precisaremos dos seguintes pacotes:
require(flexsurv)
require(reslife)
Pacote flexsurv: Responsável pelo
ajuste de modelos paramétricos flexíveis aos dados de tempo até a
ocorrência de um evento de interesse.
Pacote reslife: Responsável por
fornecer uma estimativa para o tempo médio residual de ocorrência de um
evento de interesse.
Esta seção é dedicada à descrição das bases de dados utilizadas nesta aula.
Essa base de dados é proveniente de assessorias estatísticas realizadas no Departamento de Estatística da UFPR. Os dados contém os tempos de reincidência, em meses, de um grupo de 20 pacientes com câncer de bexiga que foram submetidos a um procedimento cirúrgico realizado por laser. Os tempos obtidos foram:
3, 5, 6, 7, 8, 9, 10, 10+, 12, 15, 15+, 18, 19, 20, 22, 25, 28, 30, 40, 45+,
em que o simbolo + indica censura.
No estudo analisado neste exemplo, são apresentados os tempos, em dias até a ocorrência dos primeiros sinais de alterações indesejadas no estado geral de saúde de 45 pacientes de ambos os sexos que receberam tratamento quimioterápico após terem sido submetidos à cirurgia de intestino. Houve um acompanhamento total de 250 dias desde a entrada do primeiro paciente até o término do estudo.
7, 8, 10, 12, 13, 14+, 19, 23, 25+, 26, 27, 31, 31+, 49, 59+, 64+, 87, 89, 107, 117, 119, 230+, 233+, 130, 148, 153, 156, 159, 191, 222, 200+, 203+, 210+, 220+, 220+, 228+, 235+, 240+ , 240+, 240+, 241+, 245+, 247+, 248+, 250+,
em que o símbolo + indica a censura.
0 fabricante de um tipo de isolante elétrico quer conhecer o comportamento de seu produto funcionando a uma temperatura de 200Cº. Um teste de vida foi realizado nestas condições uasando-se 60 isoladores elétricos. O teste terminou quando 45 deles havia falhado (censura do tipo II). As 15 unidades que não haviam falhado ao final do teste foram, desta forma, censuradas no tempo t= 2729 horas:
151, 164, 336, 365, 403, 454, 455, 473, 538, 577, 592, 628, 632, 647, 675, 727, 785, 801, 811, 816, 867, 893, 930, 937, 976, 1008, 1040, 1051, 1060, 1183, 1329, 1334, 1379, 1380, 1633, 1769, 1827, 1831, 1849, 2016, 2282, 2415, 2430, 2686, 2729, 2729+, 2729+, 2729+, 2729+, 2729+, 2729+, 2729+, 2729+, 2729+, 2729+, 2729+, 2729+, 2729+, 2729+, 2729+,
em que o símbolo + indica a censura.
Nesta seção, aprenderemos como ajustar todos os modelos paramétricos vistos em sala de aula. Mas antes de fazer esses ajustes, vamos carregar a base de dados dos pacientes com câncer de bexiga:
tempos<-c(3,5,6,7,8,9,10,10,12,15,15,18,19,20,22,25,28,30,40,45)
cens<-c(1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0)
dados1<-data.frame(tempos,cens)
O ajuste de todos os modelos paramétricos será feito
a partir da função flexsurvreg. Essa
função possui, basicamente, os seguintes
argumentos:
formula: a fórmula do modelo. No
caso de modelos sem covariáveis, a sua estrutura é, por
exemplo, Surv(tempos, cens) ~ 1
dist: a distribuição utilizada.
Pode ser uma das seguintes: gengamma.orig,
weibull, gamma, exp,
llogis e lnorm.
data: a base de dados.
Em todos os modelos ajustados, a função
flexsurvreg estima os parâmetros do modelo
pelo método da máxima verossimilhança, utilizando
métodos numéricos. Além disso, a função reporta um
intervalo de confiança para os parâmetros e também uma
estimativa para os respectivos erros padrões. Na saída,
são também reportados os seguintes:
N: tamanho da amostra.Events: número de ocorrências do
evento.Censored: número de observações
censuradas.Total time at risk: soma de todos os tempos
observados (censurados ou não).Log-likelihood: valor da função de
log-verossimilhança.AIC: Critério de Informação de
AkaikePara mais informações e detalhes sobre essa função,
utilize o comando ?flexsurvreg()
Já as medidas de interesse com respeito à análise de
sobrevivência e confiabilidade, como os tempos médio e mediano
de ocorrência do evento de interesse e percentis, são obtidos a
partir da função summary. Essa função
recebe como argumento o modelo criado e os
outros argumentos dessa função são:
type = "mean": fornece o tempo médio de
ocorrência do evento de interesse.type = "median": fornece o tempo mediano de
ocorrência do evento de interesse.type = "quantile": fornece um percentil do
tempo de ocorrência do evento de interesse. Para escolher o
percentil, acrescente o argumento
quantiles = 0,8, por exemplo.cl=0.95 = nível de confiança usado nos
intervalos.se=T = reporta o erro padrão atrelado à
estimativa.Para mais informações e detalhes sobre essa função,
utilize o comando
?summary.flexsurvreg()
O tempo médio residual de ocorrência do evento de interesse
no tempo t é o tempo médio para a ocorrência do evento dado que
o elemento não apresentou o evento até o instante t. É como se fosse a
vida média residual. No R, essa quantidade
é calculada com a função reslifefsr do
pacote reslife. A sintaxe é simples, basta
digitar reslifefsr(ajuste1,20), que retorna o tempo
médio residual de ocorrência do evento de interesse atrelado ao modelo
ajuste1 no tempo t=20.
Para mais informações e detalhes sobre essa
função, utilize o comando
?reslifefsr()
Ao assumir que o tempo \(T\) possui uma distribuição exponencial (\(T\sim Exponencial(\alpha))\), a sua função densidade de probabilidade é dada por:} \[f(t) = \alpha exp\{-\alpha t\},\] em que \(\alpha > 0\) é o parâmetro de taxa e \(t\geq0\).
Utilizando as relações entre as funções básicas estudadas anteriormente, as funções de sobrevivência (confiabilidade), de risco e de risco acumulado são
\[S(t)=exp\{-\alpha t\}\]
\[\lambda(t)=\alpha\]
\[\Lambda(t)=\alpha t\]
Para o ajuste do modelo exponencial, vamos utilizar
a função flexsurvreg com dist="exp":
ajuste_exp<-flexsurvreg(Surv(tempos, cens) ~ 1, dist = "exp", data=dados1)
ajuste_exp
## Call:
## flexsurvreg(formula = Surv(tempos, cens) ~ 1, data = dados1,
## dist = "exp")
##
## Estimates:
## est L95% U95% se
## rate 0.0490 0.0305 0.0788 0.0119
##
## N = 20, Events: 17, Censored: 3
## Total time at risk: 347
## Log-likelihood = -68.27389, df = 1
## AIC = 138.5478
Assim, \(\hat{\alpha}=0,0490\) é o estimador de máxima verossimilhança para \(\alpha\).
Os comandos a seguir fazem os gráficos das funções de sobrevivência, risco e risco acumulado para este modelo, comparando com a estimação não-paramétrica:
plot(ajuste_exp,xlab="Tempos (meses)",ylab="Função de Sobrevivênca S(t)")
plot(ajuste_exp,xlab="Tempos (meses)",ylab=expression("Função de Risco " ~ lambda(t) ),type="hazard")
plot(ajuste_exp,xlab="Tempos (meses)",ylab=expression("Função de Risco Acumulado " ~ Lambda(t) ),type="cumhaz")
Os comandos a seguir calculam, na sequência, o tempo médio de ocorrência do evento de interesse, o tempo mediano de ocorrência do evento de interesse e o percentil 80 do tempo de ocorrência do evento de interesse
Mean_exp<-summary(ajuste_exp,type="mean",cl=0.95,se=T)
Mean_exp
##
## est lcl ucl se
## 1 20.41176 12.7985 32.74889 5.132306
Median_exp<-summary(ajuste_exp,type="median",cl=0.95,se=T)
Median_exp
##
## est lcl ucl se
## 1 14.14836 9.178828 22.41646 3.488359
quantile80_exp<-summary(ajuste_exp,type="quantile",
quantiles=0.8,cl=0.95,se=T)
quantile80_exp
##
## quantile est lcl ucl se
## 1 0.8 32.85147 20.99045 53.03236 8.166447
Já o comando a seguir fornece o tempo médio residual de
ocorrência do evento de interesse no instante t=20
meses.
Resid20_exp<-reslifefsr(ajuste_exp,20)
Resid20_exp
## [1] 20.41176
Ao assumir que o tempo \(T\) possui uma distribuição Weibull (\(T\sim Weibull(\alpha,\gamma)\)), a sua função densidade de probabilidade é dada por:
\[f(t) = \frac{\gamma t^{\gamma-1}}{\alpha^\gamma} exp\left\{-\left(\frac{t}{\alpha }\right)^\gamma\right\},\]
em que \(\alpha > 0\) é o parâmetro de escala, \(\gamma > 0\) é o parâmetro de forma e \(t\geq0\).
Utilizando as relações entre as funções básicas estudadas anteriormente, as funções de sobrevivência (confiabilidade), de risco e de risco acumulado são
\[S(t)=exp\left\{-\left(\frac{t}{\alpha }\right)^\gamma\right\}\]
\[\lambda(t)=\frac{\gamma t^{\gamma-1}}{\alpha^\gamma}\]
\[\Lambda(t) = \left(\frac{t}{\alpha}\right)^{\gamma-1}\]
Para o ajuste do modelo Weibull, vamos utilizar a função
flexsurvreg com dist="weibull":
ajuste_wei<-flexsurvreg(Surv(tempos, cens) ~ 1, dist = "weibull", data=dados1)
ajuste_wei
## Call:
## flexsurvreg(formula = Surv(tempos, cens) ~ 1, data = dados1,
## dist = "weibull")
##
## Estimates:
## est L95% U95% se
## shape 1.543 1.066 2.235 0.291
## scale 21.339 15.591 29.206 3.417
##
## N = 20, Events: 17, Censored: 3
## Total time at risk: 347
## Log-likelihood = -66.13336, df = 2
## AIC = 136.2667
Assim, \(\hat{\gamma}=1,543\) é o estimador de máxima verossimilhança para \(\gamma\) e \(\hat{\alpha}=1,543\) é o estimador de máxima verossimilhança para \(\alpha\).
Os comandos a seguir fazem os gráficos das funções de sobrevivência, risco e risco acumulado para este modelo, comparando com a estimação não-paramétrica:
plot(ajuste_wei,xlab="Tempos (meses)",ylab="Função de Sobrevivênca S(t)")
plot(ajuste_wei,xlab="Tempos (meses)",ylab=expression("Função de Risco " ~ lambda(t) ),type="hazard")
plot(ajuste_wei,xlab="Tempos (meses)",ylab=expression("Função de Risco Acumulado " ~ Lambda(t) ),type="cumhaz")
Os comandos a seguir calculam, na sequência, o tempo médio de ocorrência do evento de interesse, o tempo mediano de ocorrência do evento de interesse e o percentil 80 do tempo de ocorrência do evento de interesse:
Mean_wei<-summary(ajuste_wei,type="mean",cl=0.95,se=T)
Mean_wei
##
## est lcl ucl se
## 1 19.20078 13.98625 26.24761 3.102184
Median_wei<-summary(ajuste_wei,type="median",cl=0.95,se=T)
Median_wei
##
## est lcl ucl se
## 1 16.82823 11.97493 23.21932 2.937372
quantile80_wei<-summary(ajuste_wei,type="quantile",
quantiles=0.8,cl=0.95,se=T)
quantile80_wei
##
## quantile est lcl ucl se
## 1 0.8 29.04556 21.71682 38.51505 4.50519
Já o comando a seguir fornece o tempo médio residual de
ocorrência do evento de interesse no instante t=20
meses.
Resid20_wei<-reslifefsr(ajuste_wei,20)
Resid20_wei
## [1] 11.57553
Ao assumir que o tempo \(T\) possui uma distribuição lognormal (\(T\sim lognormal(\mu,\sigma)\)), a sua função densidade de probabilidade é dada por:
\[f(t)=\frac{1}{\sqrt{2\pi} t \sigma}exp\left\{-\frac{1}{2}\left(\frac{ln(t)-\mu}{\sigma}\right)^2\right\},\]
em que \(\mu \in \textbf{R}\) é a média do logaritmo do tempo de ocorrência do evento de interesse, \(\sigma > 0\) é o desvio-padrão e \(t \geq 0\).
Utilizando as relações entre as funções básicas estudadas anteriormente, as funções de sobrevivência (confiabilidade), de risco e de risco acumulado são
(t) = ()]
\[\lambda(t) = \frac{f(t)}{S(t)}\]
\[\Lambda(t) = -ln(S(t))\]
Para o ajuste do modelo lognormal, vamos utilizar a
função flexsurvreg com dist="lnorm":
ajuste_lognorm<-flexsurvreg(Surv(tempos, cens) ~ 1, dist = "lnorm", data=dados1)
ajuste_lognorm
## Call:
## flexsurvreg(formula = Surv(tempos, cens) ~ 1, data = dados1,
## dist = "lnorm")
##
## Estimates:
## est L95% U95% se
## meanlog 2.717 2.372 3.063 0.176
## sdlog 0.765 0.544 1.075 0.133
##
## N = 20, Events: 17, Censored: 3
## Total time at risk: 347
## Log-likelihood = -65.7399, df = 2
## AIC = 135.4798
Assim, \(\hat{\mu}=2,717\) é o estimador de máxima verossimilhança para \(\mu\) e \(\hat{\sigma}=0,765\) é o estimador de máxima verossimilhança para \(\sigma\).
Os comandos a seguir fazem os gráficos das funções de sobrevivência, risco e risco acumulado para este modelo, comparando com a estimação não-paramétrica:
plot(ajuste_lognorm,xlab="Tempos (meses)",ylab="Função de Sobrevivênca S(t)")
plot(ajuste_lognorm,xlab="Tempos (meses)",ylab=expression("Função de Risco " ~ lambda(t) ),type="hazard")
plot(ajuste_lognorm,xlab="Tempos (meses)",ylab=expression("Função de Risco Acumulado " ~ Lambda(t) ),type="cumhaz")
Os comandos a seguir calculam, na sequência, o tempo médio de ocorrência do evento de interesse, o tempo mediano de ocorrência do evento de interesse e o percentil 80 do tempo de ocorrência do evento de interesse
Mean_lognorm<-summary(ajuste_lognorm,type="mean",cl=0.95,se=T)
Mean_lognorm
##
## est lcl ucl se
## 1 20.28026 13.96182 32.47712 4.719672
Median_lognorm<-summary(ajuste_lognorm,type="median",cl=0.95,se=T)
Median_lognorm
##
## est lcl ucl se
## 1 15.13751 10.51528 20.67908 2.670368
quantile80_lognorm<-summary(ajuste_lognorm,type="quantile",
quantiles=0.8,cl=0.95,se=T)
quantile80_lognorm
##
## quantile est lcl ucl se
## 1 0.8 28.814 19.57879 44.53052 6.323311
Já o comando a seguir fornece o tempo médio residual
de ocorrência do evento de interesse no instante t=20
meses.
Resid20_lognorm<-reslifefsr(ajuste_lognorm,20)
Resid20_lognorm
## [1] 17.15706
Ao assumir que o tempo \(T\) possui uma distribuição loglogística (\(T\sim loglogística(\alpha,\gamma)\)), a sua função densidade de probabilidade é dada por:
\[f(t)=\frac{\gamma}{\alpha^\gamma}t^{\gamma-1}\left(1+(t/\alpha)^\gamma\right)^{-2}\]
em que \(\alpha > 0\) é o parâmetro de escala, \(\gamma > 0\) é o parâmetro de forma e \(t \geq 0\).
Utilizando as relações entre as funções básicas estudadas anteriormente, as funções de sobrevivência (confiabilidade), de risco e de risco acumulado são
\[S(t)=\frac{1}{1+(t/\alpha)^\gamma}\]
\[\lambda(t)=\frac{\gamma(t/\alpha)^{\gamma-1}}{\alpha\left[1+(t/\alpha)^\gamma\right]}\]
\[\Lambda(t) = -ln(S(t))\]
Para o ajuste do modelo loglogístico, vamos utilizar
a função flexsurvreg com dist="llogi":
ajuste_loglogi<-flexsurvreg(Surv(tempos, cens) ~ 1, dist = "llogi", data=dados1)
ajuste_loglogi
## Call:
## flexsurvreg(formula = Surv(tempos, cens) ~ 1, data = dados1,
## dist = "llogi")
##
## Estimates:
## est L95% U95% se
## shape 2.22 1.51 3.28 0.44
## scale 15.45 10.85 21.98 2.78
##
## N = 20, Events: 17, Censored: 3
## Total time at risk: 347
## Log-likelihood = -66.03053, df = 2
## AIC = 136.0611
Assim, \(\hat{\gamma}=2,22\) é o estimador de máxima verossimilhança para \(\gamma\) e \(\hat{\alpha}=15,45\) é o estimador de máxima verossimilhança para \(\alpha\).
Os comandos a seguir fazem os gráficos das funções de sobrevivência, risco e risco acumulado para este modelo, comparando com a estimação não-paramétrica:
plot(ajuste_loglogi,xlab="Tempos (meses)",ylab="Função de Sobrevivênca S(t)")
plot(ajuste_loglogi,xlab="Tempos (meses)",ylab=expression("Função de Risco " ~ lambda(t) ),type="hazard")
plot(ajuste_loglogi,xlab="Tempos (meses)",ylab=expression("Função de Risco Acumulado " ~ Lambda(t) ),type="cumhaz")
Os comandos a seguir calculam, na sequência, o tempo médio de ocorrência do evento de interesse, o tempo mediano de ocorrência do evento de interesse e o percentil 80 do tempo de ocorrência do evento de interesse:
Mean_loglogi<-summary(ajuste_loglogi,type="mean",cl=0.95,se=T)
Mean_loglogi
##
## est lcl ucl se
## 1 22.09722 14.85464 41.00807 6.997423
Median_loglogi<-summary(ajuste_loglogi,type="median",cl=0.95,se=T)
Median_loglogi
##
## est lcl ucl se
## 1 15.44711 11.19229 21.26528 2.700148
quantile80_loglogi<-summary(ajuste_loglogi,type="quantile",
quantiles=0.8,cl=0.95,se=T)
quantile80_loglogi
##
## quantile est lcl ucl se
## 1 0.8 28.81187 19.20576 44.78709 6.688949
Já o comando a seguir fornece o tempo médio residual de
ocorrência do evento de interesse no instante t=20
meses.
Resid20_loglogi<-reslifefsr(ajuste_loglogi,20)
Resid20_loglogi
## [1] 21.69073
Ao assumir que o tempo \(T\) possui uma distribuição Gama (\(T\sim gama(\alpha,\beta)\)), a sua função densidade de probabilidade é dada por:
\[\frac{\beta^\alpha}{\Gamma(\alpha)}t^{\alpha-1}exp\{-\beta t\}\]
em que \(\alpha>0\) é o parâmetro de forma, \(\beta >0\) é o parâmetro de taxa e \(t\geq0\).
Utilizando as relações entre as funções básicas estudadas anteriormente, as funções de sobrevivência (confiabilidade), de risco e de risco acumulado são
\[S(t) = \int_{t}^\infty\frac{\beta^\alpha}{\Gamma(\alpha)}u^{\alpha-1}exp\{-\beta u\}du\]
\[\lambda(t) = \frac{f(t)}{S(t)}\]
\[\Lambda(t) = -ln(S(t))\]
Para o ajuste do modelo gama, vamos utilizar a
função flexsurvreg com dist="gama":
ajuste_gama<-flexsurvreg(Surv(tempos, cens) ~ 1, dist = "gamma", data=dados1)
ajuste_gama
## Call:
## flexsurvreg(formula = Surv(tempos, cens) ~ 1, data = dados1,
## dist = "gamma")
##
## Estimates:
## est L95% U95% se
## shape 2.1439 1.1580 3.9692 0.6737
## rate 0.1115 0.0540 0.2303 0.0413
##
## N = 20, Events: 17, Censored: 3
## Total time at risk: 347
## Log-likelihood = -65.84754, df = 2
## AIC = 135.6951
Assim, \(\hat{\alpha}=2,14\) é o estimador de máxima verossimilhança para \(\alpha\) e \(\hat{\beta}=0,11\) é o estimador de máxima verossimilhança para \(\beta\).
Os comandos a seguir fazem os gráficos das funções de sobrevivência, risco e risco acumulado para este modelo, comparando com a estimação não-paramétrica:
plot(ajuste_gama,xlab="Tempos (meses)",ylab="Função de Sobrevivênca S(t)")
plot(ajuste_gama,xlab="Tempos (meses)",ylab=expression("Função de Risco " ~ lambda(t) ),type="hazard")
plot(ajuste_gama,xlab="Tempos (meses)",ylab=expression("Função de Risco Acumulado " ~ Lambda(t) ),type="cumhaz")
Os comandos a seguir calculam, na sequência, o tempo médio de ocorrência do evento de interesse, o tempo mediano de ocorrência do evento de interesse e o percentil 80 do tempo de ocorrência do evento de interesse:
Mean_gama<-summary(ajuste_gama,type="mean",cl=0.95,se=T)
Mean_gama
##
## est lcl ucl se
## 1 19.22915 14.11851 26.05764 3.139777
Median_gama<-summary(ajuste_gama,type="median",cl=0.95,se=T)
Median_gama
##
## est lcl ucl se
## 1 16.33618 11.67002 22.54571 2.781996
quantile80_gama<-summary(ajuste_gama,type="quantile",
quantiles=0.8,cl=0.95,se=T)
quantile80_gama
##
## quantile est lcl ucl se
## 1 0.8 28.55305 20.3679 41.10753 5.192332
Já o comando a seguir fornece o tempo médio residual de
ocorrência do evento de interesse no instante t=20
meses.
Resid20_gama<-reslifefsr(ajuste_gama,20)
Resid20_gama
## [1] 12.22874
Ao assumir que o tempo \(T\) possui uma distribuição Gama Generalizada (\(T\sim gama(\alpha,\beta)\)), a sua função densidade de probabilidade é dada por:
\[f(t)=\frac{\gamma}{\Gamma(\kappa)\alpha^{\gamma\kappa}}t^{\gamma\kappa-1}exp\{-(\alpha t)^\gamma\}\]
Para esta distribuição, tem-se um parâmetro de escala \(\alpha\) e dois de forma \(\gamma\) e \(\kappa\), o que a torna bastante flexível
Para o ajuste do modelo gama generalizado, vamos
utilizar a função flexsurvreg com
dist="gengamma.orig":
ajuste_gengama<-flexsurvreg(Surv(tempos, cens) ~ 1, dist = "gengamma.orig", data=dados1)
ajuste_gengama
## Call:
## flexsurvreg(formula = Surv(tempos, cens) ~ 1, data = dados1,
## dist = "gengamma.orig")
##
## Estimates:
## est L95% U95% se
## shape 4.14e-01 2.15e-03 7.99e+01 1.11e+00
## scale 5.52e-02 8.03e-26 3.80e+22 1.55e+00
## k 1.07e+01 4.57e-04 2.51e+05 5.50e+01
##
## N = 20, Events: 17, Censored: 3
## Total time at risk: 347
## Log-likelihood = -65.69348, df = 3
## AIC = 137.387
Assim, \(\hat{\alpha}=0,052\) é o estimador de máxima verossimilhança para \(\alpha\), \(\hat{\gamma}=0,414\) é o estimador de máxima verossimilhança para \(\gamma\) e \(\hat{\kappa}=1,07\) é o estimador de máxima verossimilhança para \(\kappa\).
Os comandos a seguir fazem os gráficos das funções de sobrevivência, risco e risco acumulado para este modelo, comparando com a estimação não-paramétrica:
plot(ajuste_gengama,xlab="Tempos (meses)",ylab="Função de Sobrevivênca S(t)")
plot(ajuste_gengama,xlab="Tempos (meses)",ylab=expression("Função de Risco " ~ lambda(t) ),type="hazard")
plot(ajuste_gengama,xlab="Tempos (meses)",ylab=expression("Função de Risco Acumulado " ~ Lambda(t) ),type="cumhaz")
Os comandos a seguir calculam, na sequência, o tempo médio de ocorrência do evento de interesse, o tempo mediano de ocorrência do evento de interesse e o percentil 80 do tempo de ocorrência do evento de interesse:
#Mean_gengama<-summary(ajuste_gengama,type="mean",cl=0.95,se=T)
Mean_gengama<-NA
Median_gengama<-summary(ajuste_gengama,type="median",cl=0.95,se=T)
Median_gengama
##
## est lcl ucl se
## 1 15.6301 0 Inf NaN
quantile80_gengama<-summary(ajuste_gengama,type="quantile",
quantiles=0.8,cl=0.95,se=T)
quantile80_gengama
##
## quantile est lcl ucl se
## 1 0.8 28.55103 26.1183 Inf NaN
Já o comando a seguir fornece o tempo médio residual de
ocorrência do evento de interesse no instante t=20
meses.
Resid20_gengama<-reslifefsr(ajuste_gengama,20)
Resid20_gengama
## [1] 14.38189
Para encerrar a aula de hoje, vamos comparar, graficamente, as funções de sobrevivência, risco e risco acumulado, dos 6 modelos. lwd.ci=0, lty.ci=0)
plot(ajuste_exp,xlab="Tempos (meses)",ylab="Função de Sobrevivênca S(t)",lwd.ci=0, lty.ci=0, col="red")
lines(ajuste_wei,lwd.ci=0, lty.ci=0, col="blue")
lines(ajuste_lognorm,lwd.ci=0, lty.ci=0, col="green")
lines(ajuste_loglogi,lwd.ci=0, lty.ci=0, col="orange")
lines(ajuste_gama,lwd.ci=0, lty.ci=0, col="purple")
lines(ajuste_gengama,lwd.ci=0, lty.ci=0, col="gray")
legend(30,1,legend=c("Exponencial","Weibull","Log-Normal","Log-Logísitca","Gama","Gama-Generalizada"),fill=c("red","blue","green","orange","purple","gray"))
plot(ajuste_exp,xlab="Tempos (meses)",ylab="Função de Sobrevivênca S(t)",lwd.ci=0, lty.ci=0, col="red",type="hazard",ylim=c(0,0.2))
lines(ajuste_wei,lwd.ci=0, lty.ci=0, col="blue",type="hazard")
lines(ajuste_lognorm,lwd.ci=0, lty.ci=0, col="green",type="hazard")
lines(ajuste_loglogi,lwd.ci=0, lty.ci=0, col="orange",type="hazard")
lines(ajuste_gama,lwd.ci=0, lty.ci=0, col="purple",type="hazard")
lines(ajuste_gengama,lwd.ci=0, lty.ci=0, col="gray",type="hazard")
legend(0,0.2,legend=c("Exponencial","Weibull","Log-Normal","Log-Logísitca","Gama","Gama-Generalizada"),fill=c("red","blue","green","orange","purple","gray"))
plot(ajuste_exp,xlab="Tempos (meses)",ylab="Função de Sobrevivênca S(t)",lwd.ci=0, lty.ci=0, col="red",type="cumhaz")
lines(ajuste_wei,lwd.ci=0, lty.ci=0, col="blue",type="cumhaz")
lines(ajuste_lognorm,lwd.ci=0, lty.ci=0, col="green",type="cumhaz")
lines(ajuste_loglogi,lwd.ci=0, lty.ci=0, col="orange",type="cumhaz")
lines(ajuste_gama,lwd.ci=0, lty.ci=0, col="purple",type="cumhaz")
lines(ajuste_gengama,lwd.ci=0, lty.ci=0, col="gray",type="cumhaz")
legend(0,4,legend=c("Exponencial","Weibull","Log-Normal","Log-Logísitca","Gama","Gama-Generalizada"),fill=c("red","blue","green","orange","purple","gray"))
Na sequência, os comandos a seguir trazem uma comparação de resumos numéricos atrelados à algumas quantidades de interesse:
Resumo<-cbind(c(Mean_exp[[1]][1],Mean_wei[[1]][1],Mean_lognorm[[1]][1],Mean_loglogi[[1]][1],Mean_gama[[1]][1],Mean_gengama[[1]][1]),
c(Median_exp[[1]][1],Median_wei[[1]][1],Median_lognorm[[1]][1],Median_loglogi[[1]][1],Median_gama[[1]][1],Median_gengama[[1]][1]),
c(quantile80_exp[[1]][2],quantile80_wei[[1]][2],quantile80_lognorm[[1]][2],quantile80_loglogi[[1]][2],quantile80_gama[[1]][2],quantile80_gengama[[1]][2]),
c(Resid20_exp,Resid20_wei,Resid20_lognorm,Resid20_loglogi,Resid20_gama,Resid20_gengama))
colnames(Resumo)<-c("Média","Mediana","Percentil 80","Residual em 20")
rownames(Resumo)<-c("Exponencial","Weibull","Log-Normal","Log-Logística","Gama","Gama Generalizada")
Resumo
## Média Mediana Percentil 80 Residual em 20
## Exponencial 20.41176 14.14836 32.85147 20.41176
## Weibull 19.20078 16.82823 29.04556 11.57553
## Log-Normal 20.28026 15.13751 28.814 17.15706
## Log-Logística 22.09722 15.44711 28.81187 21.69073
## Gama 19.22915 16.33618 28.55305 12.22874
## Gama Generalizada NA 15.6301 28.55103 14.38189
1- Para a base de dados do tratamento quimioterápico, ajuste todos os 6 modelos vistos hoje.
2- Para a base de dados de isolante elétrico, ajuste todos os 6 modelos vistos hoje.