Você está na página 1de 8

Universidad Nacional Autnoma de Mxico

Facultad de Ciencias

Estadstica III

ANALISIS PARAMETRICO DE SUPERVIVENCIA EN R


Libreras
Usaremos la librera survival que depende de la librera splines para su ejecucin.
> library("splines")
> library("survival")
Objetos de supervivencia
Esta librera utiliza objetos de tipo Surv es decir objetos de supervivencia que pueden
contener tiempos de falla y censurados, un objeto de supervivencia se crea usando la funcin
Surv(time,event) donde time corresponde al vector numrico de tiempos observados y
censurados y event que corresponde al vector binario que indica si el dato es censurado o es
observado, que de forma determinada esta asignada como 0 si el dato es censurado y 1 si
el dato es observado.
> tiempo<-c(2,4,1,3,3,4,5)
> estatus<-c(1,0,0,1,1,1,0)
> Surv(tiempo,estatus)
[1] 2 4+ 1+ 3 3 4 5+
En caso de tener un vector time con valores distintos de uno y cero, se puede configurar este
argumento asignando el nmero o caracter que indica los tiempos de falla.
> tiempo<-c(2,4,1,3,3,4,5)
> estatus<-c("falla","censura","censura","falla","falla","falla","censura")
> Surv(tiempo,estatus=="falla")
[1] 2 4+ 1+ 3 3 4 5+
Modelos paramtricos
En el caso paramtrico el comportamiento de la funcin de riesgo es un criterio para
seleccionar el modelo ms adecuado que pueda ajustarse a la muestra, los modelos ms
usuales para datos de supervivencia son:
Exponencial

Su funcin de riesgo es constante y su propiedad de prdida de memoria la hace adecuada


para modelar procesos de vida sin envejecimiento, dexp proporciona la funcin de densidad
pexp proporciona la funcin de distribucin, qexp proporciona la funcin de cuantiles
rexp simula valores aleatorios.

Profesora Claudia Gonzlez Gonzlez


Ayudante H. Alonso Torres Hernndez

Universidad Nacional Autnoma de Mxico


Facultad de Ciencias

Estadstica III

dexp(x, rate = 1, log = FALSE)


pexp(q, rate = 1, lower.tail = TRUE, log.p = FALSE)
qexp(p, rate = 1, lower.tail = TRUE, log.p = FALSE)
rexp(n, rate = 1)
-pexp(t, r, lower = FALSE, log = TRUE)
La ltima funcin proporciona la funcin de riesgo acumulado, los argumentos son:
x,q
p
rate
n
log, log.p
lower.tail

vector de cuantiles
vector de probabilidades
parmetro lambda de la variable exponencial
tamao de la muestra simulada
argumento lgico, si es igual a TRUE, las probabilidades p se dan como ln(p)
argumento lgico, si es igual a TRUE las probabilidades son P *X x+ , de lo
contrario P [X> x] .

Por ejemplo, simulemos una muestra aleatoria de tamao 10 de una variable aleatoria
exponencial lambda 0.5.
> rexp(10, rate = 0.5)
[1] 0.4053807 0.3887973 2.1213796 0.4148139 1.6020316 4.7555638 2.4756779
[8] 0.7991317 2.8296554 1.6643183
Por ejemplo, calcule los cuantiles de 0.25, 0.5 y 0.75 para una variable aleatoria exponencial
lambda 1 y verifica que sean los cuantiles adecuados.
> probas<-c(0.25,0.5,0.75)
> qexp(probas,rate=1)
[1] 0.2876821 0.6931472 1.3862944
> cuantiles<-qexp(probas,rate=1)
> pexp(cuantiles,rate=1)
[1] 0.25 0.50 0.75
Weibull

Su funcin de riesgo es flexible, pues es creciente, decreciente o constante dependiendo del


valor que tome , dweibull proporciona la funcin de densidad, pweibull proporciona la
funcin de distribucin, qweibull proporciona la funcin de cuantiles, rweibull simula
valores aleatorios.
Profesora Claudia Gonzlez Gonzlez
Ayudante H. Alonso Torres Hernndez

Universidad Nacional Autnoma de Mxico


Facultad de Ciencias

Estadstica III

dweibull(x, shape, scale, log = FALSE)


pweibull(q, shape, scale, lower.tail = TRUE, log.p = FALSE)
qweibull(p, shape, scale, lower.tail = TRUE, log.p = FALSE)
rweibull(n, shape, scale)
-pweibull(t, shape, scale, lower = FALSE, log = TRUE)
La ltima funcin proporciona la funcin de riesgo acumulado, los argumentos son:
x,q
p
n
shape
scale
log, log.p
lower.tail

vector de cuantiles
vector de probabilidades
tamao de la muestra simulada
parmetro alfa de la variable Weibull
es igual a uno entre el parmetro beta (1/) de la variable Weibull
argumento lgico, si es igual a TRUE, las probabilidades p se dan como ln(p)
argumento lgico, si es igual a TRUE las probabilidades son P *X x+ , de lo
contrario P [X> x] .

Gamma

La distribucin gamma tiene propiedades muy similares a la Weibull, sin embargo,


matemticamente es muy difcil de manipular, sus funciones de densidad, distribucin, etc.
son anlogas a las anteriores, dgamma, pgamma, qgamma, rgamma.
dgamma(x, shape, rate = 1, scale = 1/rate, log = FALSE)
pgamma(q, shape, rate = 1, scale = 1/rate, lower.tail = TRUE, log.p = FALSE)
qgamma(p, shape, rate = 1, scale = 1/rate, lower.tail = TRUE, log.p = FALSE)
rgamma(n, shape, rate = 1, scale = 1/rate)
-pgamma(t, ..., lower = FALSE, log = TRUE)
La ltima funcin proporciona la funcin de riesgo acumulado, los argumentos son:
x,q
p
n
rate
shape
scale
log, log.p
lower.tail

vector de cuantiles
vector de probabilidades
tamao de la muestra simulada
parmetro alternativo, de usarse es el parmetro alfa de la distribucin gamma
parmetro beta de la distribucin gamma
es igual a uno entre el parmetro alfa (1/) de la variable Weibull
argumento lgico, si es igual a TRUE, las probabilidades p se dan como ln(p)
argumento lgico, si es igual a TRUE las probabilidades son P *X x+ , de lo
contrario P [X> x] .

Profesora Claudia Gonzlez Gonzlez


Ayudante H. Alonso Torres Hernndez

Universidad Nacional Autnoma de Mxico


Facultad de Ciencias

Estadstica III

Para el uso de las funciones de la distribucin gamma debe definirse solo uno de los
parmetros rate o scale, se sugiere que sea rate el parmetro que se use por la
parametrizacin con la que se presento la distribucin, por ejemplo, generemos una muestra
aleatoria gamma de tamao 10 con parmetros alfa cuatro y beta 2
> rgamma(10, shape=2, rate =4)
[1] 0.39648507 0.21700703 0.09226433 0.53250573 0.61263664 0.49338013
[7] 0.57161994 1.31140039 0.63379841 0.38397079
> rgamma(10, shape=2, scale =(1/4))
[1] 0.5982165 0.1094500 0.2563669 0.2780381 0.2482065 1.2340443 0.1596595
[8] 0.2098287 0.5319511 0.8594335

Log-normal

Su funcin de riesgo tiene la apariencia de una joroba, es decir, toma calor de cero a tiempo
cero, alcanza un mximo, y cuando el tiempo tiene a infinito el riesgo tiende a cero, sus
funciones de densidad, distribucin, etc. son anlogas a las anteriores, dlnorm, plnorm,
qlnorm, rlnorm.
dlnorm(x, meanlog = 0, sdlog = 1, log = FALSE)
plnorm(q, meanlog = 0, sdlog = 1, lower.tail = TRUE, log.p = FALSE)
qlnorm(p, meanlog = 0, sdlog = 1, lower.tail = TRUE, log.p = FALSE)
rlnorm(n, meanlog = 0, sdlog = 1)
-plnorm(t, r, lower = FALSE, log = TRUE)
La ltima funcin proporciona la funcin de riesgo acumulado, los argumentos son:
x,q
p
n
meanlog
sdlog
log, log.p
lower.tail

vector de cuantiles
vector de probabilidades
tamao de la muestra simulada
parmetro mu de la distribucin log-normal
parmetro sigma de la distribucin log-normal
argumento lgico, si es igual a TRUE, las probabilidades p se dan como ln(p)
argumento lgico, si es igual a TRUE las probabilidades son P *X x+ , de lo
contrario P [X> x] .

Profesora Claudia Gonzlez Gonzlez


Ayudante H. Alonso Torres Hernndez

Universidad Nacional Autnoma de Mxico


Facultad de Ciencias

Estadstica III

Gompertz

Su funcin de riesgo aumenta exponencialmente con el aumento del tiempo, el uso de sus
funciones requiere el paquete flexsurv, la funcion dgompertz da la densidad, pgompertz
da la funcin de distribucin, qgompertz da la funcin de cuantiles, hgompertz da la
funcin de riesgo, Hgompertz da la funcin de riesgo acumulado, y rgompertz simula
valores aleatorios.
dgompertz(x, shape, rate = 1, log = FALSE)
pgompertz(q, shape, rate = 1, lower.tail = TRUE, log.p = FALSE)
qgompertz(p, shape, rate = 1, lower.tail = TRUE, log.p = FALSE)
rgompertz(n, shape, rate = 1)
hgompertz(x, shape, rate = 1)
Hgompertz(x, shape, rate = 1)
Los argumentos son:
x,q
p
n
shape
rate
log, log.p
lower.tail

vector de cuantiles
vector de probabilidades
tamao de la muestra simulada
parmetro alfa de la distribucin Gompertz
parmetro beta de la distribucin Gompertz
argumento lgico, si es igual a TRUE, las probabilidades p se dan como ln(p)
argumento lgico, si es igual a TRUE las probabilidades son P *X x+ , de lo
contrario P [X> x] .

Por ejemplo, encuentre los cuantiles de 0.25, 0.5, 0.75 para una variable aleatoria Gompertz
de parmetros alfa 2 y beta 0.1.
> library(flexsurv)
> probas<-c(0.25,0.5,0.75)
> qgompertz(probas, shape=2, rate = 0.1)
[1] 0.9550409 1.3494356 1.6788994

Profesora Claudia Gonzlez Gonzlez


Ayudante H. Alonso Torres Hernndez

Universidad Nacional Autnoma de Mxico


Facultad de Ciencias

Estadstica III

Asignacin del modelo


Exponencial
La distribucin exponencial se caracteriza por la propiedad de no
memoria, esta propiedad describe el proceso de vida sin
envejecimiento, y caracteriza a la funcin exponencial.
Weibull

La familia de distribuciones de Weibull incluyen razones de fallo


crecientes y decrecientes, como muchos fallos que encontramos en la
prctica presentan una tendencia creciente, debido al envejecimiento
o desgaste, esta distribucin es til para describir los patrones de este
tipo de fallo.

Gamma

Puede ser til como un modelo de poblacin cuando los individuos que
sufren determinada enfermedad son sometidos a un programa de
seguimiento regular, pues su funcin de riesgo tiende a una constante
(1/) cuando el tiempo tiende a infinito.

Log-normal

La distribucin log-normal se ajusta a ciertos tipos de fallos (fatiga de


componentes metlicos, vida de los aislamientos elctricos), procesos
continuos (procesos tcnicos) y puede ser una buena representacin
de la distribucin de los tiempos de reparacin.

Gompertz

El modelo de Gompertz se usa para la descripcin de fenmenos


biolgicos y econmicos asociados al crecimiento exponencial del
riesgo, tal es el caso de enfermedades crnico-degenerativas.

Estimacin paramtrica
En algunas ocasiones la complejidad del modelo probabilstico que se asume en una muestra,
dificulta la estimacin de los parmetros que determinan a dicho modelo, por lo cual se hace
necesario utilizar herramientas computacionales que determinan (o aproximen) el valor de los
parmetros que mejor definen el modelo para una muestra particular.
La funcin optim en un mtodo de optimizacin de funciones de propsito general, basado
en los algoritmos Nelder-Mead, quasi-Newton, etc.
optim(par, fn, gr = NULL, ..., method = c("Nelder-Mead", "BFGS", "CG", "L-BFGS-B", "SANN",
"Brent"), lower = -Inf, upper = Inf, )
par
fn
method

lower
upper

valor inicial del parmetro a ser optimizado


a funcin a ser optimizada
el mtodo de optimizacin, el mtodo L-BFGS-B permite definir intervalos en
donde tomara valores el o los parmetros que se desean buscar, es un mtodo
de optimizacin quasi-Newton que permite obtener el mnimo de una funcin.
limite inferior del intervalo de bsqueda.
limite superior del intervalo de bsqueda.

Profesora Claudia Gonzlez Gonzlez


Ayudante H. Alonso Torres Hernndez

Universidad Nacional Autnoma de Mxico


Facultad de Ciencias

convergence

Estadstica III

es un atributo de optim que calcula la eficiencia en la convergencia del


algoritmo, valores muy cercanos a cero son satisfactorios

Dado que usaremos el mtodo L-BFGS-B para maximizar la funcin de verosimilitud,


considerando que el mtodo es para minimizacin de funciones, maximizar la verosimilitud es
anlogo a minimizar la menos verosimilitud, definamos esta ltima funcin.
La funcin de menos log-verosimilitud en el caso de una muestra x que se distribuye
gompertz (,) seria:
library(flexsurv)
funcionMenosLog <- function(p, x)
{
p1 <- p[1]
p2 <- p[2]
cens<- ( x[x[,2]==0])
obs<- (x[x[,2]==1])
ce<- as.numeric(cens[,1])
ob<- as.numeric(obs[,1])
n <- length(ob)
m <- length(ce)
e<-rep(0,m)
f <- rep(0, n)
for (i in 1:n)
{
f[i] <- -log(dgompertz (ob[i], p1, p2))
}
sumaobs <- sum(f)
for (i in 1:m)
{
e[i] <- -log(pgompertz (ce[i], p1, p2))
}
sumacens<-sum(e)
suma<- sumaobs +sumacens
return(suma)
}

Abrimos la librera para el modelo Gompertz


La funcin depender del vector p de parmetros y el objeto
Surv x de la muestra con datos censurados
Asignamos a p1 el valor del parmetro alfa del modelo
Asignamos a p2 el valor del parmetro beta del modelo
Asignamos a cens el vector de datos censurados de la muestra
Asignamos a obs el vector de datos observados de la muestra
Convertimos el vector cens en un vector numrico ce
Convertimos el vector obs en un vector numrico ob
Sea n el numero de datos observados en la muestra
Sea m el numero de datos censurados en la muestra
Generamos un vector e de tamao n con ceros
Generamos un vector f de tamao m con ceros
Asignamos a la i-esima entrada del vector f el i-esimo dato
observado de la muestra evaluado en el menos logaritmo de la
funcin de densidad

Sumamos todas la entradas del vector f


Asignamos a la i-esima entrada del vector e el i-esimo dato
censurado de la muestra evaluado en el menos logaritmo de la
funcin de distribucin

Sumamos todas la entradas del vector e


Sumamos los elementos de ambos vectores

Ya definida en R esta funcin, ahora se utiliza el comando optim para minimizarla. Note que
la funcin puede utilizarse como molde para construir la funcin para otras distribuciones.
Hagamos un ejemplo

Profesora Claudia Gonzlez Gonzlez


Ayudante H. Alonso Torres Hernndez

Universidad Nacional Autnoma de Mxico


Facultad de Ciencias

Estadstica III

> library(flexsurv)
> datos<-rgompertz(100, shape=2, rate = 5)
> status<-sample(c(1,0), size=100, replace=TRUE)
> library(survival)
> muestra<-Surv(datos,status)
> estimadores<-optim(par = c(6, 3), fn = funcionMenosLog,method = c("L-BFGS-B"), lower = c(0,
0),upper = c(Inf,Inf),x = muestra)
> estimadores
$par
[1] 0.3475263 6.1839830
$value
[1] 7.34348
$counts
function gradient
14
14
$convergence
[1] 0
$message
[1] "CONVERGENCE: REL_REDUCTION_OF_F <= FACTR*EPSMCH"
El resultado del commando optim muestra entre otras cosas los parmetros que optimizan
la funcin ($par) el valor de la funcion evaluada en esos parmetros ($value) y la eficiencia en
la convergencia del algoritmo ($convergence)

Profesora Claudia Gonzlez Gonzlez


Ayudante H. Alonso Torres Hernndez

Você também pode gostar