TFM - Sonia Pérez Fernández
TFM - Sonia Pérez Fernández
TFM - Sonia Pérez Fernández
acumulativa/dinámica
Julio de 2015
Estimación de la curva ROC
acumulativa/dinámica
Facultad de Ciencias
Estadística y Computación
Índice de guras iv
Introducción v
1. Preliminares 1
1.1. Nociones básicas de la curva ROC . . . . . . . . . . . . . . . . . . . . . . . 1
2.1.1. Incidente/estática . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.1.2. Incidente/dinámica . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.1.3. Acumulativa/dinámica . . . . . . . . . . . . . . . . . . . . . . . . . 34
i
ii
4. Estudio de simulación 51
Conclusiones 67
Anexos 69
Bibliografía 97
Índice de guras
1.2. Curvas ROC para distintos biomarcadores cuya distribución en ambos sub-
1.4. Ejemplo del seguimiento de cuatro pacientes (los círculos son datos censu-
1.6. Estimación de las curvas de supervivencia para los datos de los ejemplos
consumo de drogas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1. Situación esquemática: los círculos representan datos censurados y las cru-
iii
iv
3.3. Varias estimaciones de la curva ROC: DI = usual curva ROC sin los datos
Kaplan-Meier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
MICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2. Estimación de Rt para diversos tiempos t (4, 7, 10, 13) según las diversas
metodologías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.3. Evolución del área bajo la curva ROC utilizando NK junto con un intervalo
de conanza al 95 % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Introducción
La calidad de una prueba diagnóstica realizada a pacientes no se juzga sólo por sus
diferentes estados de salud. El médico solicita una prueba para decidir, teniendo en cuenta
clínica. Por lo tanto, para que una prueba se incluya en la práctica clínica habitual, es
necesario que ésta sea capaz de reducir la incertidumbre asociada con un cierto estado
como la capacidad para clasicar de manera correcta a los individuos en grupos clínica-
Una forma útil y muy extendida de conocer la calidad de una prueba diagnóstica
denominadas curvas ROC. Pero si el biomarcador que construimos pretende no sólo pre-
decir la aparición o no de una enfermedad o evento (como la muerte), sino también saber
cuándo se produce éste, recurrimos a las llamadas curvas ROC tiempo-dependientes, con
hasta después de t.
Ahora bien, en los ensayos clínicos es muy frecuente la aparición de datos censurados,
v
vi Introducción
esto es, por ejemplo, pacientes que han abandonado el estudio por causas desconocidas
antes de su n. La presencia de sujetos censurados, que no pueden ser asignados directa-
mente a uno de los grupos (caso/control) por desconocimiento de cuál ha sido el tiempo
Por ello, el objetivo principal de este trabajo es mostrar una nueva propuesta para la
antes del tiempo t una probabilidad de pertenecer al grupo positivo y negativo, respecti-
vamente, en vez de recurrir a alternativas más drásticas como pueden ser la clasicación
íntegra en uno de los grupos o la eliminación directa de estos individuos del estudio.
algunas nociones básicas referentes a las curvas ROC y al análisis de supervivencia (ya
presentan tres extensiones de ésta según las diferentes deniciones de casos y controles
en el tiempo: incidente/estática, incidente/dinámica y acumulativa/dinámica, siendo esta
mostrando tres posibles estimaciones de ésta junto con las desventajas de cada una de ellas:
general de este trabajo, es la inclusión de una cuarta propuesta, la cual pretende servir
los posibles estimadores mencionados en el capítulo anterior, tanto con el uso de datos
Preliminares
En este capítulo se presentarán algunas nociones básicas necesarias para la posterior
introducirá el concepto de curva ROC, junto con otras deniciones que la acompañan
comprensión del método de estimación propuesto como objetivo nal de este trabajo, se
Cox.
La curva ROC (del inglés Receiver Operating Characteristics ) es una técnica para
ROC fueron utilizadas en sus inicios, a mediados de los años cincuenta, en teoría de
1
2 Capítulo 1. Preliminares
acerca del uso de este tipo de grácos para los test diagnósticos. En el año 2000, el artículo
Uno de los primeros en utilizar las curvas ROC en Aprendizaje Automático (en inglés
Machine Learning ) fue Spackman en 1989 [31], el cual demostró el poder de estas curvas
ROC en este campo durante los últimos años, debido en parte a que el cálculo de una
simple medida de precisión de un clasicador es, normalmente, una evaluación pobre para
En medicina, una de las primeras aplicaciones de la curva ROC fue publicada en los
años sesenta por Lusted [17], aunque ésta ganó más popularidad en la década de los setenta
( Martinez et al., 2003 [19]; Zhou et al., 2011 [39]). A día de hoy, las nuevas tecnologías
los biomarcadores están en continuo estudio. El análisis de la curva ROC se suele utilizar
para evaluar el poder discriminatorio (de clasicar en clases contrarias) de una variable
Buscar el punto de corte óptimo para minimizar la mala clasicación de estos sujetos.
Tomamos X una variable aleatoria continua (aunque en el caso discreto sería similar) que
para un determinado punto de corte x0 , el resultado del test es positivo (se considera
que el individuo está enfermo) si X es mayor que x0 , y negativo en caso contrario.
(D ), existen cuatro posibilidades que pueden resumirse en una tabla de contingencia 2×2
como la que se muestra a continuación:
Diagnóstico verdadero
Caso (D = 1) Control (D = 0)
Positivo TP FP TP + FP
Test (X > x 0 ) (no de verdaderos positivos) (no de falsos positivos) (no de resultados positivos)
diagnóstico Negativo FN TN FN + TN
( X ≤ x0 ) (no de falsos negativos) (no de verdaderos negativos) (no de resultados negativos)
TP + FN FP + TN
(no de casos) (no de controles)
Diagnóstico verdadero
Caso (D = 1) Control (D = 0)
T P R = P (X > x0 | D = 1) F P R = P (X > x0 | D = 0)
Positivo TP FP
' '
(X > x 0 ) TP + FN FP + TN
Test (proporción de verdaderos positivos) (proporción de falsos positivos)
diagnóstico F N R = P (X ≤ x0 | D = 1) T N R = P (X ≤ x0 | D = 0)
Negativo FN TN
' '
( X ≤ x0 ) TP + FN FP + TN
(proporción de falsos negativos) (proporción de verdaderos negativos)
4 Capítulo 1. Preliminares
SP (x0 ) = T N R = P (X ≤ x0 | D = 0) .
La prueba diagnóstica ideal sería aquella con una sensibilidad y especicidad próximas
a 1, esto es, aquella cuya probabilidad para clasicar correctamente a los individuos, en
en uno u otro grupo se debe jar un criterio, punto de corte, a partir del cual será
vendrá determinada por 1 − FP (x0 ) (= 1 − P (XP > x0 )), siendo FN (x0 ) (= P (XN ≤ x0 ))
su especicidad y quedando por tanto determinada la curva ROC por las coordenadas del
R(p) = 1 − FP (1 − FN )−1 (p) = 1 − P (XP ≤ (1 − FN )−1 (p)) = P (XP > (1 − FN )−1 (p))
R(p) = P (XP > FN−1 (1−p)) = P (FN (XP ) ≥ 1−p) = P (1−FN (XP ) ≤ p) = F1−FN (XP ) (p)
aleatorias, deben estimarse. Una de las posibilidades es suponer que las poblaciones siguen
paramétrico, siendo los más frecuentes sustituir las funciones de distribución desconocidas
por sus Funciones de Distribución Empíricas (FDE) o por las Funciones de Distribución
por sus correspondientes funciones de distribución empíricas. Se tiene que, dadas mues-
asociada a la muestra XN .
XN siguen ambas distribuciones normales, con E(XP ) > E(XN ). Se ha considerado que
−5
1.0
Controles (D=0)
0.12
Casos (D=1)
0.8
0.10
1.52
Función de densidad
●
0.08
0.6
Sensibilidad
0.06
0.4
0.04
0.2
7
0.02
●
0.00
0.0
individuos sanos (curva roja) como enfermos (curva verde). En el gráco de la izquierda
se observa que ambas distribuciones se solapan, por lo que sea cual sea el punto de corte
que tomemos, no todos los individuos estarán bien clasicados, como es habitual en la
práctica. Se han tomado tres puntos de corte diferentes (−5, −1.52 por ser el punto en
la curva ROC resultante de este marcador, en la que aparecen señalados los valores que
Se observa que la sensibilidad, tomando como punto de corte 7, es muy pequeña (cerca
del 20 %), mientras que tomando el punto −5 es muy grande (cerca del 95 %). Esto es
debido a que al tomar el −5 (línea azul en la gura de la izquierda), el área que queda a
la izquierda de éste por debajo de la curva verde es muy pequeña, esto es, la proporción
grande (cerca del 100 %), mientras que tomando el punto −5 es muy pequeña (cerca del
0.05 %). Esto es debido a que al tomar el 7 (línea amarilla en la gura de la izquierda), el
área que queda a la derecha de éste por debajo de la curva roja es muy pequeña, esto es,
mal clasicados (área encerrada a la derecha de la línea violeta y por debajo de la función
Tomando como punto de corte −5, la prueba es muy sensible, por lo que daría
permitiendo sin embargo que muchos sujetos que no tengan la enfermedad sean
8 Capítulo 1. Preliminares
Tomando como punto de corte 7, la prueba es muy especíca, por lo que daría más
sin embargo que muchos sujetos que realmente tienen la enfermedad sean clasicados
Tomando como punto de corte 1.52, la prueba es equilibrada, dando casi la misma
los sanos, aun a sabiendas de que estas probabilidades de buena clasicación no son
Tras estudiar algunos de los resultados grácamente visibles, una pregunta evidente
queda en el aire: ¾Cómo saber cuán bueno es este biomarcador para clasicar correcta-
mente a la población?
Las curvas ROC no sólo aportan información cualitativa, sino que también permiten
ticas, teniendo en cuenta que la variabilidad del muestreo puede dar lugar a distintos
mide calculando los intervalos de conanza de la curva ROC en todos los puntos.
bajo la curva ROC, AU C (del inglés Area Under Curve ), que se dene como la probabili-
dad de clasicar correctamente un par de individuos sano y enfermo, seleccionados al azar
En la práctica, el límite inferior para el área bajo la curva ROC es 0.5, el cual corresponde
al área encerrada bajo el segmento diagonal representado en la Figura 1.1, que sería la
curva ROC resultante de un biomarcador basado en el puro azar, sin ninguna habilidad
Nociones básicas de la curva ROC 9
intrínseca para discriminar entre sujetos con y sin determinada enfermedad. Cabe notar
Veamos a continuación varias curvas ROC con sus correspondientes áreas, para ob-
servar cómo se pueden comparar varios biomarcadores entre sí, y cuál es el motivo de la
1.0
0.30
0.6
0.20
Sensibilidad
0.15
0.4
0.10
0.2
0.05
AUC = 0.99998
0.00
0.0
Controles (D=0)
0.12
Casos (D=1)
0.8
0.10
Función de densidad
0.08
0.6
Sensibilidad
0.06
0.4
0.04
0.2
0.02
AUC = 0.91942
0.00
0.0
1.0
Controles (D=0)
0.12
Casos (D=1)
0.8
0.10
Función de densidad
0.6
0.08
Sensibilidad
0.06
0.4
0.04
0.2
0.02
AUC = 0.72318
0.00
0.0
−10 0 10 20 0.0 0.2 0.4 0.6 0.8 1.0
Figura 1.2: Curvas ROC para distintos biomarcadores cuya distribución en ambos sub-
Como se puede observar en la Figura 1.2, cuanto menos se solapan los valores del
bajo la curva ROC y, por tanto, mayor es la capacidad clasicatoria del biomarcador.
Sin embargo, cuanto más se solapan estos valores (última gráca), más próxima está la
curva ROC a la diagonal, por lo que menor es el AUC, lo que signica que la capacidad
Cabe mencionar que una curva ROC por debajo de la diagonal sería consecuencia
de la clasicación inversa del biomarcador, por lo que bastaría con reformular éste para
valores más pequeños en los individuos enfermos que en los sanos (al contrario de como
muerte, etc.).
El seguimiento viene denido por una fecha de inicio y una fecha de n (ocurrencia
T. Ambas fechas son diferentes para cada individuo, pues los pacientes se incorporan y
ejemplo, el pronóstico del cáncer se valora en función del porcentaje de pacientes que
vivencia.
y se calcula como
S(t) = P (T > t) = 1 − FT (t) .
Por cómo está denida la función de supervivencia y teniendo en cuenta que, por
Z ∞
S(t) = P (T > t) = fT (u)du ,
t
La tasa de decrecimiento de una curva de supervivencia varía según el riesgo que tenga
P (t < T ≤ t + ∆t | T > t)
h(t) = lı́m+ .
∆t→0 ∆t
f (t) −S 0 (t) ∂
h(t) = = = − logS(t) .
S(t) S(t) ∂t
Nociones básicas del análisis de supervivencia 13
Demostración.
P (t<T ≤t+∆t)
P (t < T ≤ t + ∆t | T > t) P (T >t)
h(t) = lı́m+ = lı́m+
∆t→0 ∆t ∆t→0 ∆t
1 f (t)
= · f (t) = .
S(t) S(t)
S(t) = e−H(t) ,
Cabe notar además que se trata de una función no decreciente, y según cuál sea su
incremento, se puede tener información acerca del comportamiento del riesgo a lo largo
ciones especícas que sólo dependen de uno o varios parámetros desconocidos, los cuales
a la información que el investigador tenga del fenómeno que causa el evento, puede de-
terminar las características que el modelo debe seguir en cuanto a la forma de la tasa
de riesgo conforme avanza el tiempo. Por ejemplo, puede que el riesgo de muerte de un
paciente después de someterse a una cirugía sea creciente las primeras horas y después, si
sobrevive, su salud se estabilice hasta lograr su recuperación. En este caso, una función
de riesgo creciente en valores pequeños de tiempo, que alcance un máximo y luego sea
formas especícas del riesgo en el tiempo. Por ejemplo, el modelo exponencial, que presenta
riesgo constante, resultaría inadecuado para modelar el tiempo que tarda un individuo en
morir cuando se le ha detectado una enfermedad terminal, ya que en este caso, el riesgo
muy importante a la hora de seleccionar el modelo. Además de las tratados en las líneas
sucesivas, existen muchos otros modelos, como el modelo Erlang, el modelo Log-logístico
y el modelo Pareto.
Nociones básicas del análisis de supervivencia 15
Modelo Exponencial
constante, h(t) = λ.
La distribución exponencial tiene la propiedad de pérdida de memoria, esto es
P (T ≥ t + z | T ≥ t) = P (T ≥ z) ,
de la cual se sigue que la vida media residual en el tiempo t, E(T − t | T > t) es igual a
E(T ) = 1/λ.
Así, el tiempo de ocurrencia de un evento no depende de lo que haya sucedido en el
Modelo Weibull
α
Su función de supervivencia está dada por S(t) = e−λt con λ > 0 (parámetro de
h(t) = αλtα−1 .
Esta función de riesgo es creciente si α > 1, decreciente si α<1 y constante si α=1
(modelo exponencial), lo cual permite modelar el tiempo de ocurrencia del evento para
Modelo Log-normal
usual hacia esta distribución viene infundada por el hecho de ser decreciente para valores
grandes de t, lo cual no tiene sentido en muchas ocasiones. Sin embargo, este modelo
Modelo Gamma
dada por
λβ tβ−1 e−λt
f (t) =
Γ(β)
donde λ > 0
(parámetro de escala),
Z ∞ β > 0 (parámetro de forma) y Γ(β) es la función
R∞ R λt
λ(λx)β−1 e−λx dx xβ−1 e−x dx
S(t) = t
=1− 0
= 1 − Γ∗ (λt, β)
Γ(β) Γ(β)
Nociones básicas del análisis de supervivencia 17
1 Rt
donde Γ∗ es la función gamma incompleta Γ∗ (t, β) = · 0 xβ−1 e−x dx.
Γ(β)
Su función de riesgo es
λβ tβ−1 e−λt
h(t) = ,
Γ(β) 1 − Γ∗ (λt, β)
la cual para β >1 es monótona creciente, h(0) = 0 y lı́m h(t) = λ, mientras que para
t→∞
β<1 es monótona decreciente, lı́m h(t) = ∞ y lı́m h(t) = λ.
t→0 t→∞
Estimación no paramétrica
La estimación no paramétrica, por otra parte, consiste en dar, para cada uno de los
paciente tras la aparición de una enfermedad, teniendo en cuenta que ningún dato es
censurado y los tiempos de seguimiento, por tanto, se corresponden con los verdaderos
Así, los datos serían los siguientes (ti ), ordenados de manera ascendente para facilitar
ti 13 17 20 20 24 32 36 45
Ŝ(ti ) 7/8 6/8 4/8 3/8 2/8 1/8 0
siguiente gráca:
18 Capítulo 1. Preliminares
Curva de supervivencia
1.0
0.8
0.6
S(t)
0.4
0.2
0.0
0 10 20 30 40
Meses
Figura 1.3: Estimación de la curva de supervivencia para los datos del ejemplo
mente ocurre un suceso previo, llamado censura, que se presenta antes del suceso de
interés. Éste puede deberse a varios motivos, como puede ser el n del estudio (ya que un
estudio no dura indenidamente, por lo que no siempre da tiempo a que todos los pacientes
experimenten el suceso de interés), un fallo diferente al que interesa (lo cual se denomina
sabe que el tiempo de vida completo de este paciente sería superior al tiempo observado.
Es decir, en los datos censurados lo que tenemos es simplemente una cota inferior del
A ●
B ●
D ●
Figura 1.4: Ejemplo del seguimiento de cuatro pacientes (los círculos son datos censurados
Hay diversos tipos de censura: censura por la derecha, censura por la izquierda y
censura por intervalo. La que nos concierne en este trabajo es la primera, por lo que
de éstos. Debido al tiempo disponible y a los costes que el estudio supone, el investigador
decide terminar el estudio a los 5 años del comienzo (sería pues censura de tipo I). Los
tiempos de supervivencia registrados para los pacientes que fallecieron durante el periodo
de estudio son los tiempos desde la aplicación del tratamiento hasta su muerte (indivi-
exactamente, pero son registrados al menos con la longitud del estudio (individuos A y B );
éstas son llamadas observaciones censuradas. Algunos pacientes podrían perderse o
estos dos tiempos, esto es zi = mı́n{ti , ci }. Así, el tiempo de vida exacto del individuo
Los datos del estudio pueden estar representados por la pareja de variables {Z, δ},
donde Z es la variable aleatoria considerada en el párrafo anterior y δ = I(Z = T ), es
La pregunta que cabe hacerse llegados a este punto es: ¾Cómo podemos estimar la
función de supervivencia? Pues bien, hay dos alternativas para ello: la alternativa pa-
ajusta nuestra función de supervivencia (entre las más conocidas se encuentran los mo-
Si estamos ante una muestra en la que ninguna de las observaciones está censurada,
Nociones básicas del análisis de supervivencia 21
lo cual es muy poco común en la práctica, la función de supervivencia puede ser estimada
o
N total de sujetos que sobreviven más allá del tiempo t
Ŝ(t) = o ,
N total de sujetos
o equivalentemente
Ŝ(t) = 1 − F̂ (t)
o
N total de individuos que han fallado antes del tiempo t
F̂ (t) = o .
N total de individuos
cia más utilizado y se dene, para el caso en el que la muestra contenga datos censurados
rrencias del evento de interés correspondiente en el momento ti . Cabe destacar que éste
en una base de datos pequeña que posee sujetos censurados. Los datos son los recogidos en
la siguiente tabla, donde zi denota el tiempo de seguimiento (en meses) de cada paciente
tras la aparición de una enfermedad, ordenados de forma ascendente para facilitar los
+
cálculos. Además, el signo es la forma habitual de indicar que se trata de un dato
censurado, por lo que en esos casos zi = ci , mientras que en el resto los zi se corresponden
siguiente gráca, teniendo en cuenta que los puntos + indican los datos censurados:
Curva de supervivencia
1.0
0.8
0.6
S(t)
0.4
0.2
0.0
0 5 10 15 20 25 30 35
Meses
Figura 1.5: Estimación de la curva de supervivencia para los datos del ejemplo
logaritmo,
k
X d(ti )
log(Ŝ(t)) = log 1 − .
i : t ≤t
r(ti )
i
Nociones básicas del análisis de supervivencia 23
Puesto que la probabilidad de ocurrencia del evento es independiente entre los distintos
k
X d(ti )
V ar log(Ŝ(t)) = V ar log 1 − .
i : t ≤t
r(ti )
i
Kaplan-Meier es igual a
X d(ti )
V ar ŜKM (t) = ŜKM (t) ,
i : t ≤t
r(ti )(r(ti ) − d(t i ))
i
ŜKM (t) − z1−α/2 EE ŜKM (t) , ŜKM (t) + z1−α/2 EE ŜKM (t)
p
donde EE denota el error estándar, esto es, V ar/n, siendo V ar la varianza calculada
anteriormente.
1.0
0.8
0.8
0.6
0.6
S(t)
S(t)
0.4
0.4
0.2
0.2
0.0
0.0
0 10 20 30 40 0 5 10 15 20 25 30 35
Meses Meses
Figura 1.6: Estimación de las curvas de supervivencia para los datos de los ejemplos
Cabe citar también que una parte importante del análisis de supervivencia es la crea-
ción de grácos de curvas de supervivencia para cada grupo de interés. Sin embargo, la
comparación de curvas de supervivencia entre dos grupos debe estar basada en tests es-
tadísticos no paramétricos, entre los que destaca el test logrank, y no basarse únicamente
en impresiones grácas.
utiliza este modelo para analizar la supervivencia de los individuos en un ensayo clínico,
éste nos permite separar los efectos del tratamiento de los efectos de otras variables. El
modelo puede utilizarse también si se conoce de antemano que hay otras variables, aparte
del tratamiento, que están inuyendo en la supervivencia y que no pueden ser controladas
fácilmente en el ensayo clínico. Por tanto, utilizando este modelo se puede mejorar la
estimación del efecto del tratamiento. Los tiempos de supervivencia no están dirigidos
explorar y ajustar por los efectos de varias variables, como pueden ser la edad o la duración
de la enfermedad, las cuales es sabido que suelen afectar en gran medida a la supervivencia.
El ajuste por otras variables que se conoce que afectan al tiempo de supervivencia puede
mejorar la precisión con la cual estamos estimando el efecto del tratamiento, si es el caso.
El método de regresión introducido por Cox se utiliza para estudiar varias variables a
1.0
Ajuste por Cox
Estimador Kaplan−Meier
0.8
0.6
S(t)
0.4
0.2
0.0
0 10 20 30 40 50 60
Meses
de Kaplan-Meier y del modelo de Cox, ajustando por dos covariables (edad, consumo de
drogas)
hasta el comienzo de ese intervalo. Puede interpretarse asimismo como el riesgo de morir
en el instante t.
El modelo de regresión de Cox es similar al modelo de regresión múltiple (en el que
recordemos que se pretende describir la relación entre los valores de una variable, llamada
ty
h(t) = h0 (t) · eβ
26 Capítulo 1. Preliminares
ocurrencia del evento cuando todas las variables explicativas son cero. Los parámetros
relación a los cambios en las variables explicativas. Estos parámetros suelen estimarse
de muerte en un tiempo inicial que otro individuo, se sabe que a lo largo todos los tiempos
venideros, el riesgo de muerte del primero seguirá siendo el doble que el del segundo. Esta
hipótesis de riesgos proporcionales debe ser probada mediante tests estadísticos. Lo más
inicial de riesgos proporcionales. Sin embargo, este modelo gráco es muy subjetivo, y
puede venir muy determinado por el tamaño muestral, por lo que para mejorar un poco
tiempo de supervivencia (log(t)), que proporcionará curvas paralelas si los riesgos son
Era sabido, por lo visto en secciones anteriores. que el conocer la función de supervi-
siguiente relación:
Z t Z t Z t
βty βty ty
H(t) = h(u)du = h0 (u)e =e h0 (u)du = H0 (t)eβ
0 0 0
βt y
⇒ S(t | y) = e−H0 (t)e .
h(t | Yi = 1) h0 (t)eβi
= = eβi ,
h(t | Yi = 0) h0 (t)
por lo que el vector eβ indica cuánto varía la función de riesgo en un mismo tiempo t al
hacer variar en una unidad alguna de las covariables, cuando el resto toman el valor cero.
que la función de riesgo basal h0 (t) no tiene por qué estar especicada. Debido a este
admite gran exibilidad y, por esta razón, es muy utilizado. Sin embargo, si se asume que
los datos siguen una determinada distribución de probabilidad, las inferencias basadas
en esta suposición serán mucho más precisas, esto es, los estimadores de las funciones
de riesgo tendrán errores estándar mucho más pequeños y, por tanto, unos intervalos de
que el modelo de Cox, pero asumiendo, además, que la función de riesgo basal, h0 (t), puede
ser parametrizada de acuerdo a un determinado modelo de distribución de los tiempos de
biomarcador. Es este punto de corte el que marca un criterio para clasicar a los sujetos
través de la curva ROC, la cual, como hemos indicado en el capítulo anterior, representa la
En este capítulo veremos, en primer lugar, las propuestas existentes para la generali-
verdadero tiempo de supervivencia T, tratando los datos censurados de una forma ade-
cuada para conseguir estimaciones válidas. Posteriormente mostraremos que una elección
29
30 Capítulo 2. Curva ROC tiempo-dependiente
vivencia puede interpretarse como una salida binaria que varía con el tiempo, esto es, la
pertenencia de los individuos a uno u otro grupo varía en función de tiempo. Por ejemplo,
alguien que está vivo en un estudio realizado durante un año, puede no pertenecer al
grupo control si se realiza el mismo estudio considerando cinco años. La notación utiliza-
ti = t.
tante t cuando la ocurrencia del evento es previa a este instante, o exactamente éste,
es decir, ti ≤ t.
estos individuos sería como supervivientes a largo plazo. Cabe notar que esta de-
tiempo de supervivencia es mayor que el tiempo t, esto es, ti > t. Estos individuos
no presentan el evento antes del tiempo t, aunque podrían presentarlo más adelante,
que estos conceptos se pueden generalizar para el caso longitudinal, en el que se tiene el
2.1.1. Incidente/estática
Etzioni et al. (1999) [4] y Slate y Turnbull (2000) [29] adoptaron conceptos alternativos
de la sensibilidad y la especicidad tiempo-dependientes usando las siguientes deniciones:
No se
considera
Control
Caso
No se
considera
Inicio seguimiento
de cada sujeto t t*
En base a estas expresiones, los controles son siempre los mismos, pero los casos están
estrechamente ligados con el instante t considerado, es más, los individuos son clasicados
como casos sólamente para un único instante t concreto. Los casos se clasican conforme
el tiempo en el que ocurre el evento, mientras que los controles están denidos como
aquellos sujetos en los que no ocurre el evento durante un periodo de seguimiento jado
(0, t0 ).
Estas deniciones facilitan el uso de los métodos de regresión estándar para caracterizar
la sensibilidad y la especicidad, ya que el tiempo del evento T puede utilizarse como una
covariable. Para estimar los cuantiles de la distribución condicional del marcador X , dado
un tiempo de ocurrencia del suceso T = t, los autores arriba referenciados consideraron la
utilización de métodos paramétricos asumiendo una distribución normal, pero permitiendo
que la media y la varianza fuesen funciones del tiempo medido, del estado real de la
I/E −1
Rt (p) = SEI 1 − SPE (p, t0 ), t (0 ≤ p ≤ 1)
−1
donde 1 − SPE (p, t0 ) = ı́nf{x : 1 − SPE (x, t0 ) ≤ p}.
(sujeto que no presenta el evento hasta pasado el tiempo jo t0 ) sea clasicado como
caso. Para calcular el valor de esta función (Rt ) en cada punto p, lo que se hace es hallar
el ínmo de los puntos de corte del biomarcador que hacen que la probabilidad de falsos
positivos sea a lo sumo p, y posteriormente calcula la sensibilidad incidente para ese punto
de corte en el instante t, es decir, la probabilidad de que un caso (sujeto al que le ocurre
En el año 2006, Cai et al. [3] propuso métodos para estimar la sensibilidad y la es-
los cuales minimizan las hipótesis de distribuciones paramétricas de los métodos anterio-
res.
2.1.2. Incidente/dinámica
Según este enfoque, los conceptos de sensibilidad y especicidad tiempo-dependientes
No se
considera
Control
Caso
No se
considera
Inicio seguimiento
de cada sujeto t
sujeto que en un primer momento (t pequeño) es un control, pasa a jugar el papel de caso
cuando el instante t considerado coincide con el instante de ocurrencia del evento en este
Aquí, la sensibilidad mide la proporción esperada de sujetos con un valor del biomar-
X menor o igual que x0 , entre aquellos que sobreviven más allá del tiempo t.
34 Capítulo 2. Curva ROC tiempo-dependiente
I/D −1
Rt (p) = SEI 1 − SPD (p, t), t (0 ≤ p ≤ 1)
−1
donde 1 − SPD (p, t) = ı́nf{x0 : 1 − SPD (x0 , t) ≤ p}.
Hay una característica particular de esta alternativa que cabe destacar, y es que la
biomarcador longitudinal.
2.1.3. Acumulativa/dinámica
Caso
Control
Caso
Caso
Inicio seguimiento
de cada sujeto t
Utilizando este enfoque, para cualquier tiempo jo t, toda la población será clasicada
como caso o como control en base al estado de vida en ese instante. Además, a medida que
hacemos variar t, cada individuo toma el papel de control para los tiempos tempranos,
tigador es discriminar entre los sujetos que mueren antes o en el instante t, y los que
A/D −1
Rt (p) = SEA 1 − SPD (p, t), t (0 ≤ p ≤ 1)
−1
donde 1 − SPD (p, t) = ı́nf{x0 : 1 − SPD (x0 , t) ≤ p}.
A/D
Si no hay datos censurados, Rt (p) puede estimarse usando la función de distribución
empírica del marcador F̂X en cada uno de los grupos caso y control.
en cualquier tiempo jo t, lo cual no ocurría con los otros dos enfoques, como se puede
observar en la Figura 2.1 y Figura 2.2 anteriores (a los cuales nos hemos referido como
sujetos no especicados ).
Cuando la información es completa, esto es, no existen datos censurados en nuestra
#{xi > x0 ∧ ti ≤ t}
ŜEA (x0 , t) = ,
#{ti ≤ t}
#{xi ≤ x0 ∧ ti > t}
ŜPD (x0 , t) =
#{ti > t}
donde # denota el cardinal del conjunto.
A/D
El problema principal para la estimación de la curva ROC acumulativa/dinámica Rt
es la presencia de datos censurados. Los individuos a los que les ocurre el evento antes de
no es tan evidente cómo debemos tratar a los individuos censurados antes de t, como es
37
38 Capítulo 3. Estimación de la curva ROC acumulativa/dinámica
A
B ●
C
D ●
Inicio seguimiento
de cada sujeto t
Figura 3.1: Situación esquemática: los círculos representan datos censurados y las cruces
en la siguiente sección.
Antes de dar comienzo a la explicación de la siguiente serie de propuestas que han ido
surgiendo a lo largo del tiempo para resolver esta situación, se formaliza la notación a
utilizar:
yi = {zi , δi , xi } ∀i = 1, ..., N
donde
censurado); y
como
[1 − S(t | X > x0 )]P (X > x0 )
SEA (x0 , t) = P (X > x0 | T ≤ t) = ,
1 − S(t)
S(t | X ≤ x0 )P (X ≤ x0 )
SPD (x0 , t) = P (X ≤ x0 | T > t) =
S(t)
donde S(t) es la función de supervivencia, S(t) = P (T > t), y S(t | X > x0 ) es la función
por Kaplan y Meier en 1958 (denido en el capítulo 1). Recordemos que el estimador de
Kaplan-Meier hace uso de toda la información de los datos, incluyendo las observaciones
especicidad sean monótonas. Por denición, tenemos que si x00 > x0 entonces P (X >
x0 | T ≤ t) ≥ P (X > x00 | T ≤ t). Sin embargo, los estimadores resultantes del teorema de
Bayes y el estimador de Kaplan-Meier podrían violar esta monotonía, ya que el estimador
de la probabilidad P (X > x0 ∧ T > t) dado por ŜKM (t | X > x0 ) · [1 − F̂X (x0 )] puede
x=1
x=2.1
x=3.6
x=4 ●
Inicio seguimiento
de cada sujeto t=1 t=2 t=3 t=4
Figura 3.2: Situación esquemática: el círculo representa el tiempo de censura y las cruces
zi 1 1.5+ 2 4 zi 1 1.5+ 4
di 1 0 1 1 di 1 0 1
ri 4 3 2 1 ri 3 2 1
di /ri 1/4 0 1/2 1 di /ri 1/3 0 1
1 − di /ri 3/8 1 1/2 0 1 − di /ri 2/3 1 0
Ŝ(ti ) 3/4 3/4 3/8 0 Ŝ(ti ) 2/3 2/3 0
Así,
3 3
P̂ (X > 0 ∧ T > 3) = ŜKM (3 | X > 0) · [1 − F̂X (0)] = · (1 − 0) = ,
8 8
2 1 1
P̂ (X > 1 ∧ T > 3) = ŜKM (3 | X > 1) · [1 − F̂X (1)] = · 1 − = .
3 4 2
Segundo intento: Basado en el estimador de vecinos próximos (KNN) 41
Por tanto, se tiene que la probabilidad estimada siguiente es negativa, lo cual es una
incongruencia
3 1 1
P̂ (X ∈ (0, 1] ∧ T > 3) = P̂ (X > 0 ∧ T > 3) − P̂ (X > 1 ∧ T > 3) = − =− .
8 2 8
Este problema puede ser atribuido al hecho de que, dado que el conjunto por el que
censurada (x4 =4 con t4 > 1.5) entre aquellos individuos cuyos tiempos de observación
El segundo gran problema que presenta este método de estimación de la curva ROC
dado por
N
1 X
ŜλN (x0 , t) = Ŝλ (t | X = xi ) · I(xi > x0 )
N i=1 N
PN !
j=1 KλN (xj , xi ) · I(zj = tk ) · δj
X
ŜλN (t | X = xi ) = 1− PN
k : tk ≤t j=1 KλN (xj , xi ) · I(zj ≤ tk )
donde KλN (Xj , Xi ) es una función núcleo que depende de un parámetro de suavizado λN .
En su artículo, Akritas [1] propone la siguiente función núcleo
KλN (Xj , Xi ) = I −λN < F̂X (Xi ) − F̂X (Xj ) < λN
donde 2λN ∈ (0, 1) representa el porcentaje de observaciones que son incluidas en cada
entorno.
Hay otras opciones para la función núcleo, sin embargo utilizando los vecinos más
próximos se tiene que las estimaciones de la curva ROC resultantes son invariantes frente
vecino más próximo, el citado autor presenta cotas para el parámetro λN , sucientes para
alcanzar la convergencia débil del estimador de la función de distribución bivariada. Cabe
trico eciente.
ŜλN (x0 , t)
ŜPD (x0 , t) = P̂λN (X ≤ x0 | T > t) = 1 −
ŜλN (t)
donde ŜλN (t) = ŜλN (x0 , t) con x0 = −∞.
Tercer intento: Basado en el estimador de Nelson-Aalen 43
N
1 X
Cabe notar que el numerador de ŜE (x0 , t) es igual a
A
I(Xi > x0 )·(1 − SλN (t | X = Xi )),
N i=1
el cual es una función monótona creciente respecto de x0 , en comparación a lo que sucedía
Otra ventaja importante del estimador NNE es que no supone que el proceso de
Sin embargo, esta propuesta posee una gran desventaja: la elección del parámetro
de suavizado del estimador, λN , queda en manos del investigador, por lo que no hay
objetividad.
P (T ≤ t | X > x0 ) · P (X > x0 )
SEA (x0 , t) = P (X > x0 | T ≤ t) = ,
P (T ≤ t)
P (T > t | X ≤ x0 ) · P (X ≤ x0 )
SPD (x0 , t) = P (X ≤ x0 | T > t) = .
P (T > t)
P (T ≤ t) = P (T ≤ t | X ≤ x0 ) · P (X ≤ x0 ) + P (T ≤ t | X > x0 ) · P (X > x0 )
44 Capítulo 3. Estimación de la curva ROC acumulativa/dinámica
Si X ≤ x0 : e0 (x0 , t) = P (T ≤ t | X ≤ x0 ) · N0 (x0 ) ,
donde N0 (x0 ) y N1 (x0 ) son los tamaños muestrales de los conjuntos {X ≤ x0 } y {X > x0 },
respectivamente.
expresiones:
e1 (x0 , t)
ŜEA (x0 , t) = ,
e0 (x0 , t) + e1 (x0 , t)
N0 (x0 ) − e0 (x0 , t)
ŜPD (x0 , t) = .
N − e0 (x0 , t) − e1 (x0 , t)
eventos que se tendrían teniendo en cuenta aquellos que fueron censurados antes de t.
Para observaciones censuradas, se tiene que estimar la probabilidad de ocurrencia del
evento entre el tiempo de censura c y el tiempo t (t > c). Esta probabilidad P (T ≤ t | T >
c) puede estimarse utilizando la función de riesgo h(t) entre c y t.
Si ocurre la censura entre tk−1 y tk , la probabilidad de ocurrencia del evento antes del
mientras que para estimar el primer sumando, P (c < T ≤ tk | T > c) hay varias
Haciendo uso de esta denición, un sujeto censurado poco después de tk−1 tiene una
probabilidad más alta de ocurrencia del evento que un individuo cuyo tiempo de censura
censura es el punto medio del intervalo (tk−1 , tk ), obteniendo por tanto que una posible
tk − tk−1
estimación de la probabilidad P (c < T ≤ tk | T > c) sería λk−1 .
2
Bajo la hipótesis de que la probabilidad anterior es la misma si la censura se produce
de que H(t) − H(c) << 1, la probabilidad anterior se puede aproximar del siguiente modo
Para calcular esta diferencia, en vez de utilizar el estimador de Kaplan-Meier para estimar
X X X d(ti )
H(t) = h(ti ) hi =
i : ti ≤t i : ti ≤t i : t ≤t
r(ti )
i
Este cálculo debe hacerse para todas las observaciones censuradas antes de t y teniendo
en cuenta que se hará en cada grupo por separado, esto es, considerando los sujetos con
calcular el número esperado de eventos antes del tiempo t. A partir de todos estos valores,
E1 (x0 , t)
ŜEA (x0 , t) = ,
E0 (x0 , t) + E1 (x0 , t)
N0 (x0 ) − E0 (x0 , t)
ŜPD (x0 , t) = ,
N − E0 (x0 , t) − E1 (x0 , t)
X X
donde E0 (x0 , t) = d0 (x0 , ti ) + e0 (x0 , ti ) y E1 (x0 , t) = d1 (x0 , ti ) + e1 (x0 , ti ) ,
i : ti ≤t i : ti ≤t
siendo e0 (x0 , t) y e1 (x0 , t) los valores denidos anteriormente, es decir, el número de eventos
observados antes de t para los conjuntos {X ≤ x0 } y {X > x0 }, respectivamente; y
El principal problema de esta propuesta es el mismo que uno de los que poseía la
to por los autores para solventar esta situación es por medio de la regresión isotónica
(ŜEA (x0 , t), ŜPD (x0 , t)) = (ŜEA (x0 + 1, t), ŜPD (x0 + 1, t))
SEA (x0 , t) + SEA (x0 + 1, t) SPD (x0 , t) + SPD (x0 + 1, t)
= , ,
2 2
primera. Para ello, se tendrá en cuenta toda la muestra, incluyendo los sujetos censurados,
pero tratando a éstos de una forma diferente: en vez de asignarlos de forma íntegra a uno
de que pertenezcan a cada uno de los grupos. Es para esta probabilidad para la cual se
R1
P (X > x0 ∧ T ≤ t) 0
P (X > x0 ∧ T ≤ t | y) dFY
SEA (x0 , t) = = R1
P (T ≤ t) P (T ≤ t | y) dFY
0
R1
P (X ≤ x0 ∧ T > t) 0
P (X ≤ x0 ∧ T > t | y) dFY
SPD (x0 , t) = = R1
P (T > t) P (T > t | y) dFY
0
Una posible estimación del contenido de la integral del numerador de las expresiones
= 1 − P (T > t | yi ) · I(x0 ,∞) (xi ) ∀i = 1, ..., N
Por tanto, si denotamos por P̂i (en verdad sería P̂i (N ), ya que dependerá del tamaño
PN
i=1 (1 − P̂i ) · I(x0 ,∞) (xi )
ŜEA (x0 , t) = PN ,
i=1 (1 − P̂i )
PN
i=1 P̂i · I(−∞,x0 ] (xi )
ŜPD (x0 , t) = PN .
i=1 P̂i
Naturalmente, si zi > t, esto es, el tiempo observado (ya sea el tiempo real de ocurren-
cia del evento o el tiempo de censura) es posterior a t, se tiene que P̂i = 1; y si ti < t, es
decir, el tiempo de ocurrencia del evento, para aquellos sujetos no censurados, se concluye
que P̂i = 0.
Cuando la información es completa, es decir, no hay datos censurados, estos estima-
dores son los usuales. Además, la consistencia de los estimadores anteriores es directa si el
individuos censurados antes del tiempo t considerado. Las propuestas son las siguientes:
donde X es el valor del biomarcador, esto es, se toma como única covariable en el
Puesto que estamos asumiendo que el biomarcador X es una variable aleatoria con-
Los individuos censurados juegan un papel fundamental en esta propuesta. Cabe notar
i-ésimo en el tiempo t (la cual ocurre cuando P̂i = 1/2) implica, con independencia
del grupo al cual sea asignado, un error de 1/2. Por tanto, en estos casos, la capacidad
base de datos utilizada por Wolf, Schmidt y Ulm (2001) [37] con el mismo propósito.
Esta base de libre acceso dentro del paquete KMsurv del software estadístico R contiene el
tiempo hasta la muerte y la edad (utilizada como un biomarcador de mortalidad en este
DI : Curva ROC usual teniendo en cuenta solamente los datos no censurados, que
constituyen un total de 157 pacientes, entre los cuales sólo 17 son controles (diag-
nóstico verdadero),
censurados,
A/D
NC : Estimación de R9 mediante el nuevo método propuesto basado en la regresión
de Cox, y
A/D
NK : Estimación de R9 mediante el nuevo método propuesto basado en el estimador
de Kaplan-Meier.
1.0
1.0
0.8
0.8
0.6
0.6
Sensibilidad
Sensibilidad
DI DI
0.4
0.4
KM NC
AK NK
0.2
0.2
0.0
0.0
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0
1 − Especificidad 1 − Especificidad
Figura 3.3: Varias estimaciones de la curva ROC: DI = usual curva ROC sin los datos
Estudio de simulación
Con el objetivo de estudiar el comportamiento práctico de la metodología propuesta, se
De forma similar a lo realizado por Heatherty y Zheng en su artículo [10], y siguiendo con
distribuciones y parámetros:
dor, (log(T ), X), se corresponde con la distribución Normal bivariada estándar, con
coeciente de correlación ρ. Esto es,
log(T ) 0 1 ρ
≡ N , .
X 0 ρ 1
decir, tiempos de vida altos están asociados a valores pequeños del biomarcador,
capítulo). Además, por ser el segundo valor de ρ más próximo a 1 en valor absoluto,
se tiene una mayor correlación entre ambas variables en ese segundo caso.
51
52 Capítulo 4. Estudio de simulación
• µ = 0, así
Es decir, la mitad de los datos son censurados antes de la ocurrencia del evento.
• µ = 1.19, así
τ = 1/4.
A/D
Se han realizado estimaciones de la curva ROC acumulativa/dinámica, Rt , para los
AK : Estimación basada en el método del vecino más próximo (KN N ) con parámetro
de suavizado λN = 0.1 · N −1/5 (segunda sección),
Capítulo 4. Estudio de simulación 53
Kaplan-Meier.
En la siguiente gura se muestran las curvas ROC teóricas sin censuras de las cuales
1.0
ρ = −1/4 ρ = −3/4
0.8
0.8
Sensibilidad
Sensibilidad
0.6
0.6
0.4
0.4
log(t) = −1 log(t) = −1
log(t) = 0 log(t) = 0
log(t) = 1 log(t) = 1
0.2
0.2
0.0
0.0
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0
1 − Especificidad 1 − Especificidad
Figura 4.1: Curvas ROC reales R(p). En el gráco de la izquierda, se ha considerado que
ha considerado ρ = −3/4
cidad diagnóstica para clasicar correctamente a los sujetos en casos y controles, en cada
uno de los tres tiempos t considerados. Esto es lógico, puesto que en el segundo caso, la
(ρ = −3/4).
A/D A/D A/D
Además, la diferencias entre las curvas Rt=1/e (p), Rt=1 (p) y Rt=e (p) son pequeñas en
ambas grácas, siendo aparentemente aún menores en la gura de la izquierda, lo cual
típica (expresados como media ± desv. típ.) de los cálculos de la siguiente integral a lo
√ Z 1
N |R̂(p) − R(p)| dp
0
cada uno de los cinco métodos enumerados anteriormente, considerando las distintas com-
La primera tabla (Tabla 4.1) se corresponde con los valores resultantes cuando se
considera que los tiempos de censura y los valores del biomarcador son independientes
entre sí, esto es, τ =0 ; mientras que la segunda tabla (Tabla 4.2) recoge los resultados
cuando se considera que la covarianza entre el logaritmo de los tiempos de censura, log(C),
y los valores del biomarcador, X, es τ = 1/4.
Para remarcar visualmente los resultados de la simulación, se han señalado en color
azul y verde las mejores aproximaciones, consideradas como aquellas cuya media de la
en casi todos ellos, las mejores estimaciones (en el sentido que estamos estudiando) se
obtienen a partir del nuevo método propuesto y, además, entre ellos, parece que el basado
en la regresión de Cox obtiene mejores resultados. Las mayores diferencias entre unos
métodos y otros se obtienen, como cabía esperar, cuando los porcentajes de censura son
altos (mitad de los datos censurados antes de t), sobre todo al estimar Rlog(t)=1 . En estos
En la segunda tabla, en la cual se ha considerado que hay relación entre los tiempos de
censura y los valores del biomarcador, los resultados son similares a los mostrados en la
tabla anterior. Sin embargo, en algunos casos, la primera propuesta basada en el método
de estimación de Kaplan-Meier (KM ) funciona mejor que la nueva obtenida a partir del
mismo método de estimación (NK ). Por otra parte, cabe destacar que el método propuesto
utilizando la regresión de Cox (NC ) siempre se encuentra entre los dos mejores.
Capítulo 4. Estudio de simulación 55
N ρ %C log(t) KM AK DI NC NK
100 -1/4 20% -1 0.834 ± 0.376 0.833 ± 0.399 0.827 ± 0.365 0.828 ± 0.373 0.830 ± 0.375
0 0.613 ± 0.271 0.614 ± 0.289 0.625 ± 0.294 0.587 ± 0.266 0.591 ± 0.267
1 0.934 ± 0.463 0.920 ± 0.460 0.887 ± 0.443 0.767 ± 0.392 0.767 ± 0.415
100 -3/4 20% -1 0.476 ± 0.214 0.474 ± 0.248 0.471 ± 0.214 0.468 ± 0.214 0.471 ± 0.214
0 0.424 ± 0.182 0.429 ± 0.212 0.410 ± 0.179 0.390 ± 0.173 0.399 ± 0.181
1 0.591 ± 0.320 0.623 ± 0.362 0.486 ± 0.283 0.411 ± 0.182 0.476 ± 0.176
100 -1/4 50% -1 0.868 ± 0.391 0.866 ± 0.420 0.853 ± 0.374 0.801 ± 0.368 0.835 ± 0.385
0 0.744 ± 0.338 0.745 ± 0.358 0.750 ± 0.350 0.585 ± 0.299 0.614 ± 0.310
1 1.519 ± 0.866 1.092 ± 0.542 1.123 ± 0.453 0.813 ± 0.483 0.956 ± 0.646
100 -3/4 50% -1 0.532 ± 0.231 0.492 ± 0.250 0.489 ± 0.216 0.448 ± 0.211 0.481 ± 0.221
0 0.570 ± 0.243 0.533 ± 0.264 0.487 ± 0.215 0.365 ± 0.171 0.466 ± 0.243
1 1.511 ± 1.065 1.051 ± 0.667 1.118 ± 1.009 0.391 ± 0.181 0.761 ± 0.490
200 -1/4 20% -1 0.821 ± 0.356 0.807 ± 0.381 0.831 ± 0.387 0.816 ± 0.354 0.818 ± 0.356
0 0.618 ± 0.267 0.612 ± 0.286 0.630 ± 0.297 0.591 ± 0.260 0.595 ± 0.261
1 0.950 ± 0.442 0.952 ± 0.472 0.997 ± 0.496 0.784 ± 0.371 0.784 ± 0.398
200 -3/4 20% -1 0.484 ± 0.201 0.499 ± 0.247 0.481 ± 0.201 0.478 ± 0.201 0.481 ± 0.201
0 0.435 ± 0.181 0.435 ± 0.208 0.424 ± 0.177 0.400 ± 0.171 0.412 ± 0.179
1 0.596 ± 0.258 0.618 ± 0.328 0.539 ± 0.245 0.428 ± 0.181 0.532 ± 0.285
200 -1/4 50% -1 0.866 ± 0.380 0.856 ± 0.407 0.879 ± 0.412 0.801 ± 0.358 0.835 ± 0.374
0 0.749 ± 0.334 0.750 ± 0.359 0.784 ± 0.379 0.589 ± 0.300 0.621 ± 0.313
1 1.599 ± 0.882 1.284 ± 0.638 1.453 ± 0.703 0.859 ± 0.509 0.995 ± 0.671
200 -3/4 50% -1 0.535 ± 0.224 0.525 ± 0.264 0.498 ± 0.209 0.456 ± 0.213 0.494 ± 0.219
0 0.581 ± 0.238 0.529 ± 0.247 0.536 ± 0.223 0.375 ± 0.170 0.412 ± 0.263
1 1.278 ± 0.755 1.177 ± 0.689 1.173 ± 0.642 0.457 ± 0.220 1.042 ± 0.517
√ R1
Tabla 4.1: Media ± desviación típica de 0.01 · N · 0 |R̂(p) − R(p)|dp, donde R es la
N ρ %C log(t) KM AK DI NC NK
100 -1/4 20% -1 0.828 ± 0.375 0.829 ± 0.402 0.829 ± 0.370 0.825 ± 0.375 0.830 ± 0.376
0 0.601 ± 0.270 0.614 ± 0.294 0.614 ± 0.301 0.588 ± 0.269 0.604 ± 0.277
1 0.867 ± 0.421 0.913 ± 0.446 0.914 ± 0.407 0.754 ± 0.384 0.823 ± 0.424
100 -3/4 20% -1 0.468 ± 0.207 0.465 ± 0.238 0.470 ± 0.207 0.466 ± 0.205 0.468 ± 0.205
0 0.411 ± 0.179 0.421 ± 0.196 0.415 ± 0.182 0.389 ± 0.167 0.399 ± 0.169
1 0.532 ± 0.291 0.536 ± 0.281 0.522 ± 0.334 0.398 ± 0.169 0.412 ± 0.208
100 -1/4 50% -1 0.830 ± 0.382 0.872 ± 0.420 0.845 ± 0.364 0.803 ± 0.372 0.855 ± 0.396
0 0.657 ± 0.394 0.748 ± 0.354 0.741 ± 0.339 0.582 ± 0.299 0.672 ± 0.345
1 1.253 ± 0.698 1.054 ± 0.495 1.078 ± 0.409 0.779 ± 0.462 1.123 ± 0.657
100 -3/4 50% -1 0.509 ± 0.235 0.484 ± 0.239 0.494 ± 0.225 0.450 ± 0.206 0.482 ± 0.205
0 0.563 ± 0.257 0.499 ± 0.223 0.493 ± 0.235 0.368 ± 0.168 0.421 ± 0.189
1 1.271 ± 0.909 0.698 ± 0.388 1.240 ± 1.041 0.343 ± 0.162 0.539 ± 0.369
200 -1/4 20% -1 0.822 ± 0.359 0.818 ± 0.384 0.832 ± 0.381 0.820 ± 0.359 0.824 ± 0.361
0 0.605 ± 0.266 0.614 ± 0.289 0.638 ± 0.305 0.595 ± 0.266 0.612 ± 0.275
1 0.870 ± 0.402 0.938 ± 0.452 1.029 ± 0.510 0.758 ± 0.374 0.836 ± 0.422
200 -3/4 20% -1 0.474 ± 0.203 0.493 ± 0.246 0.476 ± 0.204 0.472 ± 0.202 0.474 ± 0.201
0 0.430 ± 0.188 0.430 ± 0.202 0.433 ± 0.189 0.406 ± 0.173 0.418 ± 0.176
1 0.561 ± 0.264 0.547 ± 0.258 0.559 ± 0.288 0.423 ± 0.174 0.433 ± 0.202
200 -1/4 50% -1 0.831 ± 0.371 0.859 ± 0.405 0.881 ± 0.410 0.803 ± 0.364 0.855 ± 0.392
0 0.674 ± 0.307 0.753 ± 0.364 0.822 ± 0.406 0.593 ± 0.305 0.692 ± 0.356
1 1.294 ± 0.691 1.222 ± 0.570 1.360 ± 0.619 0.818 ± 0.493 1.217 ± 0.721
200 -3/4 50% -1 0.535 ± 0.230 0.497 ± 0.228 0.499 ± 0.206 0.451 ± 0.188 0.488 ± 0.192
0 0.633 ± 0.274 0.515 ± 0.213 0.518 ± 0.221 0.385 ± 0.172 0.444 ± 0.193
1 1.129 ± 0.678 0.786 ± 0.414 0.931 ± 0.797 0.391 ± 0.186 0.625 ± 0.442
√ R1
Tabla 4.2: Media ± desviación típica de 0.01 · N · 0 |R̂(p) − R(p)|dp, donde R es la
library(survivalROC)
library(pROC)
library(mvtnorm)
library(survival)
library(ks)
##### COX
CX<- function(DT,t)
{
prob <- NULL
T <- DT[,1]
E <- DT[,2]
M <- DT[,3]
P <- which(T <= t & E==1)
N <- which(T > t)
IN <- which(T <= t & E==0)
if (length(IN)>0)
{
fit <- coxph(Surv(T, E) ~ M)
md <- survfit(fit, newdata=data.frame(DT))
prob <- 1:length(IN)
for (j in 1:length(IN))
{
f <- approxfun(c(min(md$time)-1,md$time),c(1,md$surv[,IN[j]]))
prob[j] <- f(t)/f(T[IN[j]])
if (is.na(prob[j])) prob[j]<- 1
}
}
cut <- sort(c(min(unique(sort(M)))-1,unique(sort(M)),max(unique(sort(M)))+1))
nS <- length(P) + sum(1-prob)
58 Capítulo 4. Estudio de simulación
#### KAPLAN-MEIER
KM <- function(DT,t){
prob <- NULL
T <- DT[,1]
E <- DT[,2]
M <- DT[,3]
P <- which(T <= t & E==1)
N <- which(T > t)
F <- which(T <= t & E==0)
if (length(F)>0)
{
prob <- 1:length(F)
for (j in 1:length(F))
{
I<- which(M<=M[F[j]])
fit<- survfit(Surv(T[I],E[I])~1)
f <- approxfun(c(min(fit$time)-1,fit$time),c(1,fit$surv))
prob[j]<- f(t)/f(T[IN[j]])
}
if (is.na(prob[j])) prob[j]<- 1
}
cut <- sort(c(min(unique(sort(M)))-1,unique(sort(M)),max(unique(sort(M)))+1))
Capítulo 4. Estudio de simulación 59
rocDI<- function(DT,t)
{
I1<- which(DT[,1]<= t & DT[,2]==1)
I0<- which(DT[,1]>t)
if (length(I1)*length(I0)==0) {FP<- c(0,0.5,1); TP<- c(0,0.5,1)}
else {
M<- c(DT[I0,3],DT[I1,3])
R<- c(rep(0,length(I0)),rep(1,length(I1)))
r<- roc(R,M)
FP<- 1-r$spec; TP<- r$sens}
list( FP= FP, TP=TP)
}
##### PARAMETROS
c<- -0.75 # Coeficiente de correlacion entre log(T) y C ----> c <- -0.25 / c <- -0.75
ro<- 0.25 # Covarianza entre log(C) y X -----> ro <- 0 / ro <- 0.25
n<- 200; # Tamano muestral ------> n <- 100 / n <- 200
60 Capítulo 4. Estudio de simulación
z<- seq(-5,5,0.1);
p<- seq(0,1,0.01);
mu<- c(0,0)
sigma<- matrix(c(1,c,c,1),ncol=2,nrow=2)
t<- -1
FP<- rep(-1,length(z))
for (i in 1:length(z)) FP[i]<- pmvnorm(c(z[i],t),c(50,50),mu,sigma)[1]/(1-pnorm(t))
TP<- rep(-1,length(z))
for (i in 1:length(z)) TP[i]<- pmvnorm(c(z[i],-50),c(50,t),mu,sigma)[1]/pnorm(t)
FR1<- approxfun(c(0,FP,1),c(0,TP,1))(p)
t<- 0
FP<- rep(-1,length(z))
for (i in 1:length(z)) FP[i]<- pmvnorm(c(z[i],t),c(50,50),mu,sigma)[1]/(1-pnorm(t))
TP<- rep(-1,length(z))
for (i in 1:length(z)) TP[i]<- pmvnorm(c(z[i],-50),c(50,t),mu,sigma)[1]/pnorm(t)
FR2<- approxfun(c(0,FP,1),c(0,TP,1))(p)
t<- 1
FP<- rep(-1,length(z))
for (i in 1:length(z)) FP[i]<- pmvnorm(c(z[i],t),c(50,50),mu,sigma)[1]/(1-pnorm(t))
TP<- rep(-1,length(z))
for (i in 1:length(z)) TP[i]<- pmvnorm(c(z[i],-50),c(50,t),mu,sigma)[1]/pnorm(t)
FR3<- approxfun(c(0,FP,1),c(0,TP,1))(p)
##### SIMULACIONES
for (b in 1:B)
{
mx<- matrix(c(1,c,0,c,1,ro,0,ro,1),ncol=3,nrow=3)
D<- rmvnorm(n,c(mu,0),mx) # El valor cero indica la media de la v.a. log(C) ------> 0 / 1.19
t<- -1
km<- survivalROC(Stime=exp(DT[,1]),status=DT[,2],marker = DT[,3],
predict.time = exp(t),method = "KM" )
FK<- approxfun(c(0,km$FP,1),c(0,km$TP,1))(p)
AK<- survivalROC(Stime=exp(DT[,1]),status=DT[,2],marker = DT[,3],
predict.time = exp(t),span = 0.1*n^(-0.20))
FA<- approxfun(c(0,AK$FP,1),c(0,AK$TP,1))(p)
DI<- rocDI(DT,t)
FD<- approxfun(c(0,DI$FP,1),c(0,DI$TP,1))(p)
MO1<- CX(DT,t)
FP1<- approxfun(c(0,1-MO1$TN,1),c(0,MO1$TP,1))(p)
MO2<- KM(DT,t)
FP2<- approxfun(c(0,1-MO2$TN,1),c(0,MO2$TP,1))(p)
Ekm[b,1]<- n^0.5*0.01*sum(abs(FR1-FK))
Eak[b,1]<- n^0.5*0.01*sum(abs(FR1-FA))
Edi[b,1]<- n^0.5*0.01*sum(abs(FR1-FD))
Eco[b,1]<- n^0.5*0.01*sum(abs(FR1-CO))
Ep1[b,1]<- n^0.5*0.01*sum(abs(FR1-FP1))
Ep2[b,1]<- n^0.5*0.01*sum(abs(FR1-FP2))
print(c(b,1,mean(Ekm[1:b,1]),mean(Eak[1:b,1]),mean(Edi[1:b,1]),mean(Ep1[1:b,1]),
mean(Ep2[1:b,1])))
t<- 0
km<- survivalROC(Stime=exp(DT[,1]),status=DT[,2],marker = DT[,3],
predict.time = exp(t),method = "KM" )
FK<- approxfun(c(0,km$FP,1),c(0,km$TP,1))(p)
AK<- survivalROC(Stime=exp(DT[,1]),status=DT[,2],marker = DT[,3],
predict.time = exp(t),span = 0.1*n^(-0.20))
FA<- approxfun(c(0,AK$FP,1),c(0,AK$TP,1))(p)
DI<- rocDI(DT,t)
FD<- approxfun(c(0,DI$FP,1),c(0,DI$TP,1))(p)
62 Capítulo 4. Estudio de simulación
MO1<- CX(DT,t)
FP1<- approxfun(c(0,1-MO1$TN,1),c(0,MO1$TP,1))(p)
MO2<- KM(DT,t)
FP2<- approxfun(c(0,1-MO2$TN,1),c(0,MO2$TP,1))(p)
Ekm[b,2]<- n^0.5*0.01*sum(abs(FR2-FK))
Eak[b,2]<- n^0.5*0.01*sum(abs(FR2-FA))
Edi[b,2]<- n^0.5*0.01*sum(abs(FR2-FD))
Ep1[b,2]<- n^0.5*0.01*sum(abs(FR2-FP1))
Ep2[b,2]<- n^0.5*0.01*sum(abs(FR2-FP2))
print(c(b,2,mean(Ekm[1:b,2]),mean(Eak[1:b,2]),mean(Edi[1:b,2]),mean(Ep1[1:b,2]),
mean(Ep2[1:b,2])))
t<- 1
km<- survivalROC(Stime=exp(DT[,1]),status=DT[,2],marker = DT[,3],
predict.time = exp(t),method = "KM" )
FK<- approxfun(c(0,km$FP,1),c(0,km$TP,1))(p)
AK<- survivalROC(Stime=exp(DT[,1]),status=DT[,2],marker = DT[,3],
predict.time = exp(t),span = 0.1*n^(-0.20))
FA<- approxfun(c(0,AK$FP,1),c(0,AK$TP,1))(p)
DI<- rocDI(DT,t)
FD<- approxfun(c(0,DI$FP,1),c(0,DI$TP,1))(p)
MO1<- CX(DT,t)
FP1<- approxfun(c(0,1-MO1$TN,1),c(0,MO1$TP,1))(p)
MO2<- KM(DT,t)
FP2<- approxfun(c(0,1-MO2$TN,1),c(0,MO2$TP,1))(p)
Ekm[b,3]<- n^0.5*0.01*sum(abs(FR3-FK))
Eak[b,3]<- n^0.5*0.01*sum(abs(FR3-FA))
Edi[b,3]<- n^0.5*0.01*sum(abs(FR3-FD))
Ep1[b,3]<- n^0.5*0.01*sum(abs(FR3-FP1))
Ep2[b,3]<- n^0.5*0.01*sum(abs(FR3-FP2))
print(c(b,3,mean(Ekm[1:b,3]),mean(Eak[1:b,3]),mean(Edi[1:b,3]),mean(Ep1[1:b,3]),
mean(Ep2[1:b,3])))
}
Capítulo 5
máximo en el primer segundo de la espiración forzada, que supone una medida de ujo del
obstructiva crónica). Este estudio es importante, ya que la EPOC está considerada como
con una respuesta de las vías respiratorias y los pulmones ante gases y partículos nocivas
que miden las capacidades y volúmenes pulmonares, así como la rapidez con que éstos
pueden ser movilizados, está reconocida en guías clínicas como la prueba fundamental
ésta.
intervalo de tiempo) de EPOC recogidas en varias zonas de España, con un total de 3633
63
64 Capítulo 4. Aplicación a datos reales
pacientes, de los cuales se han extraído los valores de una serie de biomarcadores, útiles en
FEV1 .
Estamos por tanto ante un problema que podemos tratar aplicando las diferentes pro-
puestas citadas en este trabajo. Con el n de hacernos una idea de cómo es la función de
resultados:
1.0
0.8
Supervivencia
0.6
0.4
0.2
n=3329
n=1797
n=624
n=212
n=15
0.0
0 5 10 15
Años
MICS
propuestas que vienen utilizándose hasta el momento, siguiendo con la misma notación.
1.0
t=4 t=7
0.8
0.8
Sensibilidad
Sensibilidad
0.6
0.6
NC NC
NK NK
0.4
0.4
KM KM
AK AK
DI DI
0.2
0.2
0.0
0.0
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0
1 − Especificidad 1 − Especificidad
1.0
1.0
t=10 t=13
0.8
0.8
Sensibilidad
Sensibilidad
0.6
0.6
NC NC
NK NK
0.4
0.4
KM KM
AK AK
DI DI
0.2
0.2
0.0
0.0
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0
1 − Especificidad 1 − Especificidad
Figura 5.2: Estimación de Rt para diversos tiempos t (4, 7, 10, 13) según las diversas
metodologías
Se observa que conforme el tiempo t considerado aumenta, las diferencias entre las
distintas propuestas van aumentando. En cualquier caso, parece que el estimador nuevo
Al estimar Rt=13 se observa que la utilización por el método directo utilizando únicamente
los sujetos no censurados (las otras cuatro propuestas sí tienen en cuenta estos datos) es
el que peor aproximación aporta, lo cual se debe a que el número de individuos utilizados
ROC estimada por el método del vecino más próximo (KNN) da un salto, lo cual es
debido a la elección del parámetro de suavizado, que ha sido considerado 0.1 · N −1/5
durante todo el trabajo. Esto pone de maniesto nuevamente el gran inconveniente de
no sólo depende de la muestra considerada, sino también del tiempo t para el que estamos
estimando la curva.
Por último, se ha calculado el área bajo la curva ROC a lo largo del tiempo t para las
resultado (AU C ), junto con un intervalo de conanza al 95 % para dicha área, calculado
● ●
● ● ●
● ● ●
● ● ●
● ● ● ● ●
0.6
0.4
0 5 10 15
Años
Figura 5.3: Evolución del área bajo la curva ROC utilizando NK junto con un intervalo
de conanza al 95 %
Como se puede observar, el mínimo lo alcanza al estimar t=2 años, donde el AUC
toma el valor 0.68. A partir de ese punto, el área bajo la curva va creciendo lentamente,
alcanzando su máximo valor para t = 14 años, siendo este valor igual a 0.75.
Conclusiones
En este trabajo se ha realizado una revisión metodológica de diferentes propuestas para
de ésta, así como la incorporación de un nuevo método con el objeto de poner n a los
problemas que presentan el resto de propuestas. Con el n de que todo aquel lector no
casos prácticos si así lo requiere, en las primeras páginas se han recopilado una serie de
conceptos y resultados básicos propios de las curvas ROC y del análisis de supervivencia.
en el tiempo considerado es desconocido, es decir, aquellos que han sido censurados antes
de la ocurrencia del evento de interés. Esta probabilidad puede estimarse, según esta pro-
Cox considerando el valor del biomarcador como única covariable) y otro no paramétrico
Sin embargo, se pueden utilizar otros métodos con el mismo objetivo, abarcando desde
1. es monótono,
67
68 Conclusiones
Además, los estudios de simulación sugieren que tanto la nueva propuesta (utilizando
ambas metodologías) funciona siempre mejor que las anteriores cuando el porcentaje de
censura en la muestra es elevado. Cuando se considera que existe alguna correlación entre
Cabe mencionar que el método directo, es decir, aquel obtenido eliminando los sujetos
Sin embargo, el no considerar esos individuos no es una buena elección, ya que estaríamos
riguroso de sus propiedades teóricas. Sin embargo, el estimador propuesto tiene dos partes
diferentes: la primera es la curva ROC tradicional para datos completos, mientras que la
caso ). Esta probabilidad depende de varios factores que no están claros a priori. En este
sentido, conviene recalcar de nuevo los buenos resultados del estudio de simulación.
sujetos problemáticos a cada grupo con otras nalidades distintas a la propuesta en este
trabajo.
Anexos
Figura 1.1
x <- rnorm(500000,-1,3)
y <- rnorm(500000,3,4)
library(ROCR)
par(mfrow=c(1,2))
69
70 Anexos
Figura 1.2
x <- rnorm(500000,-5,1.5)
y <- rnorm(500000,3,1.2)
par(mfrow=c(1,2))
##############################################
x <- rnorm(500000,-4,3)
y <- rnorm(500000,3,4)
par(mfrow=c(1,2))
##############################################
x <- rnorm(500000,-2,3.1)
y <- rnorm(500000,1,4)
par(mfrow=c(1,2))
Figura 1.3
tiempos <- c(13,17,20,20,24,32,36,45)
72 Anexos
library(survival)
S <- survfit(Surv(tiempos,censuras)~1,conf.type="log",conf.int=0,type="kaplan-meier",
error="greenwood",data=datos)
plot(S,lwd=2,mark.time=TRUE,xlab="Meses",ylab="S(t)",main="Curva de supervivencia")
Figura 1.4
plot(-1,-1,xlim=c(0,1),ylim=c(0,0.5),frame=F,axes=F,ylab=" ",xlab=" ",cex.lab=2)
lines(c(0.65,0.65),c(0,1),lty=2,lwd=2)
lines(c(0.1,0.1),c(0,1),lty=2,lwd=2)
lines(c(0.1,0.6),c(0.1,0.1),lwd=5,type="l")
points(0.6,0.1,pch=1,lwd=5)
lines(c(0.1,0.5),c(0.2,0.2),lwd=5,type="l")
points(0.5,0.2,pch=4,lwd=5)
lines(c(0.2,0.75),c(0.3,0.3),lwd=5,type="l")
points(0.65,0.3,pch=1,lwd=4)
points(0.76,0.3,pch=4,lwd=5)
lines(c(0.15,0.9),c(0.4,0.4),lwd=5,type="l")
points(0.65,0.4,pch=1,lwd=4)
points(0.9,0.4,pch=4,lwd=5)
text(0,0.1,"D",cex=1.5)
text(0,0.2,"C",cex=1.5)
text(0,0.3,"B",cex=1.5)
text(0,0.4,"A",cex=1.5)
Anexos 73
Figura 1.5
tiempos <- c(13,14,15,16,20,24,28,34)
censuras <- c(1,0,0,1,1,0,1,1)
datos <- data.frame(tiempos,censuras)
library(survival)
S <- survfit(Surv(tiempos,censuras)~1,conf.type="log",conf.int=0,type="kaplan-meier",
error="greenwood",data=datos)
plot(S,lwd=2,mark.time=TRUE,xlab="Meses",ylab="S(t)",main="Curva de supervivencia")
Figura 1.6
library(survival)
par(mfrow=c(1,2))
S <- survfit(Surv(tiempos,censuras)~1,conf.type="plain",conf.int=0.95,type="kaplan-meier",
error="greenwood",data=datos)
plot(S,lwd=2,mark.time=TRUE,xlab="Meses",ylab="S(t)",main="Curva de supervivencia")
S <- survfit(Surv(tiempos,censuras)~1,conf.type="plain",conf.int=0.95,type="kaplan-meier",
error="greenwood",data=datos)
plot(S,lwd=2,mark.time=TRUE,xlab="Meses",ylab="S(t)",main="Curva de supervivencia")
74 Anexos
Figura 1.7
library(survival)
hmohiv<-read.table("http://www.ats.ucla.edu/stat/r/examples/asa/hmohiv.csv", sep=",",
header=TRUE)
attach(hmohiv)
S <- survfit(Surv(time,censor)~1,conf.type="plain",conf.int=FALSE,type="kaplan-meier",
error="greenwood",na.action=na.exclude,data=hmohiv)
lines(S,lwd=2,lty=2,mark.time=TRUE,xlab="Meses",ylab="S(t)",main="Curva de supervivencia")
Figura 2.1
plot(-1,-1,xlim=c(0,1),ylim=c(0,0.5),frame=F,axes=F,ylab=" ",xlab=" ",cex.lab=2)
lines(c(0.1,0.1),c(0,1),lty=2,lwd=2)
lines(c(0.75,0.75),c(0,1),lty=2,lwd=2)
lines(c(0.35,0.35),c(0,1),lty=2,lwd=2)
lines(c(0.1,0.5),c(0.1,0.1),lwd=5,type="l")
points(0.5,0.1,pch=4,lwd=5)
text(0.02,0.1,"No se \n considera",cex=0.7)
Anexos 75
lines(c(0.1,0.35),c(0.2,0.2),lwd=5,type="l")
points(0.35,0.2,pch=4,lwd=5)
text(0.02,0.2,"Caso",cex=0.7)
lines(c(0.1,0.85),c(0.3,0.3),lwd=5,type="l")
points(0.85,0.3,pch=4,lwd=5)
text(0.02,0.3,"Control",cex=0.7)
lines(c(0.1,0.2),c(0.4,0.4),lwd=5,type="l")
points(0.2,0.4,pch=4,lwd=5)
text(0.02,0.4,"No se \n considera",cex=0.7)
Figura 2.2
plot(-1,-1,xlim=c(0,1),ylim=c(0,0.5),frame=F,axes=F,ylab=" ",xlab=" ",cex.lab=2)
lines(c(0.1,0.1),c(0,1),lty=2,lwd=2)
lines(c(0.6,0.6),c(0,1),lty=2,lwd=2)
lines(c(0.1,0.5),c(0.1,0.1),lwd=5,type="l")
points(0.5,0.1,pch=4,lwd=5)
text(0.02,0.1,"No se \n considera",cex=0.7)
lines(c(0.1,0.6),c(0.2,0.2),lwd=5,type="l")
points(0.6,0.2,pch=4,lwd=5)
text(0.02,0.2,"Caso",cex=0.7)
lines(c(0.1,0.85),c(0.3,0.3),lwd=5,type="l")
76 Anexos
points(0.85,0.3,pch=4,lwd=5)
text(0.02,0.3,"Control",cex=0.7)
lines(c(0.1,0.2),c(0.4,0.4),lwd=5,type="l")
points(0.2,0.4,pch=4,lwd=5)
text(0.02,0.4,"No se \n considera",cex=0.7)
Figura 2.3
plot(-1,-1,xlim=c(0,1),ylim=c(0,0.5),frame=F,axes=F,ylab=" ",xlab=" ",cex.lab=2)
lines(c(0.1,0.1),c(0,1),lty=2,lwd=2)
lines(c(0.6,0.6),c(0,1),lty=2,lwd=2)
lines(c(0.1,0.5),c(0.1,0.1),lwd=5,type="l")
points(0.5,0.1,pch=4,lwd=5)
text(0.02,0.1,"Caso",cex=0.7)
lines(c(0.1,0.6),c(0.2,0.2),lwd=5,type="l")
points(0.6,0.2,pch=4,lwd=5)
text(0.02,0.2,"Caso",cex=0.7)
lines(c(0.1,0.85),c(0.3,0.3),lwd=5,type="l")
points(0.85,0.3,pch=4,lwd=5)
text(0.02,0.3,"Control",cex=0.7)
lines(c(0.1,0.2),c(0.4,0.4),lwd=5,type="l")
points(0.2,0.4,pch=4,lwd=5)
text(0.02,0.4,"Caso",cex=0.7)
Anexos 77
Figura 3.1
plot(-1,-1,xlim=c(0,1),ylim=c(0,0.5),frame=F,axes=F,ylab=" ",xlab=" ",cex.lab=1)
lines(c(0.85,0.85),c(0,1),lwd=200,col="light gray")
lines(c(0.1,0.5),c(0.2,0.2),lwd=5,type="l")
points(0.5,0.2,pch=4,lwd=5)
lines(c(0.1,0.75),c(0.3,0.3),lwd=5,type="l")
points(0.76,0.3,pch=1,lwd=4)
lines(c(0.1,0.9),c(0.4,0.4),lwd=5,type="l")
points(0.9,0.4,pch=4,lwd=5)
lines(c(0.1,0.6),c(0.1,0.1),lwd=5,type="l")
points(0.61,0.1,pch=1,lwd=5)
text(0,0.1,"D",cex=1)
text(0,0.2,"C",cex=1)
text(0,0.3,"B",cex=1)
text(0,0.4,"A",cex=1)
Figura 3.2
plot(-1,-1,xlim=c(0,1),ylim=c(0,0.5),frame=F,axes=F,ylab=" ",xlab=" ",cex.lab=2)
lines(c(0.1,0.1),c(0,1),lty=2,lwd=2)
lines(c(0.3,0.3),c(0,1),lty=2,lwd=2)
lines(c(0.5,0.5),c(0,1),lty=2,lwd=2)
lines(c(0.7,0.7),c(0,1),lty=2,lwd=2)
lines(c(0.9,0.9),c(0,1),lty=2,lwd=2)
lines(c(0.1,0.4),c(0.1,0.1),lwd=5,type="l")
points(0.4,0.1,pch=1,lwd=8)
text(0.02,0.1,"x=4",cex=1.2)
lines(c(0.1,0.9),c(0.2,0.2),lwd=5,type="l")
points(0.9,0.2,pch=4,lwd=5)
text(0.02,0.2,"x=3.6",cex=1.2)
lines(c(0.1,0.3),c(0.3,0.3),lwd=5,type="l")
points(0.3,0.3,pch=4,lwd=5)
text(0.02,0.4,"x=1",cex=1.2)
lines(c(0.1,0.5),c(0.4,0.4),lwd=5,type="l")
points(0.5,0.4,pch=4,lwd=5)
text(0.02,0.3,"x=2.1",cex=1.2)
Figura 3.3
library(survivalROC)
library(risksetROC)
library(KMsurv)
library(mvtnorm)
library(ks)
library(pROC)
Anexos 79
data(kidtran)
#### COX
CX<- function(DT,t)
{
prob<- NULL
T<- DT[,1]; E<- DT[,2]; M<- DT[,3] # Para cada individuo: T=tiempo observado, E=delta
# (1 si el dato es completo, 0 si es censurado),
# M=valor del biomarcador X
P<- which(T <= t & E==1) # Indices de los casos
N<- which(T > t) # Indices de los controles
IN<- which(T <= t & E==0) # Indices de los datos censurados antes de t
for (j in 1:length(IN))
{
#pos <- which(M==M[IN[j]])
md<- survfit(fit, newdata=data.frame(M=M[IN[j]]))
f<- approxfun(c(0,md$time),c(1,md$surv))
prob[j]<- f(t)/f(T[IN[j]])
if (is.na(prob[j])) prob[j]<- 1
}
cut<- c(min(unique(sort(M)))-1,unique(sort(M))) # Vector que contiene los puntos de
# corte c a considerar
nS<- length(P) + sum(1-prob) # Numero de casos + Suma probabilidades de que los
# censurados antes de t sean casos
# Denominador sensibilidad
nE<- length(N) + sum(prob) # Numero de controles + Suma probabilidades de que los
# censurados antes de t sean controles
80 Anexos
# Denominador especificidad
Se<- cut; Es<- cut
for (i in 1:length(cut))
{
Se[i]<- (sum(M[P]> cut[i]) + sum(1-prob[which(M[IN]>cut[i])]))/nS
Es[i]<- (sum(M[N]<= cut[i]) + sum(prob[which(M[IN]<=cut[i])]))/nE
}
list(TP=Se, TN=Es, prob=prob)
}
#### KAPLAN-MEIER
KM<- function(DT,t)
{
prob<- NULL
T<- DT[,1]; E<- DT[,2]; M<- DT[,3]
P<- which(T <= t & E==1)
N<- which(T > t)
IN<- which(T <= t & E==0)
if (length(IN)>0)
{
prob<- 1:length(IN)
for (j in 1:length(IN))
{
I<- which(M<= M[IN[j]])
fit<- survfit(Surv(T[I],E[I])~1)
f<- stepfun(fit$time,c(1,fit$surv))
prob[j]<- f(t)/f(T[IN[j]])
if (is.na(prob[j])) prob[j]<- 1
}
}
cut<- c(-5,as.numeric(names(table(M))))
nS<- length(P) + sum(1-prob)
nE<- length(N) + sum(prob)
Anexos 81
tt<- 9*365.25
di<- roc(c(rep(1,length(P)),rep(0,length(N))),c(kidtran$age[P],kidtran$age[N]))
########
cx<- CX(cbind(kidtran$time,kidtran$delta,kidtran$age),tt)
km<- KM(cbind(kidtran$time,kidtran$delta,kidtran$age),tt)
par(mfrow=c(1,2))
lines(c(0,1),c(1,1),col="gray",lty=2)
lines(c(0,1),c(0,1),col="gray",lty=2)
lines(K1$FP,K1$TP,lwd=3,col="gray",lty=2)
lines(1-di$spec,di$sens,lwd=3)
lines(c(0.6,0.7),c(0.4,0.4),lwd=3)
text(0.72,0.4,expression(D[I]),cex=1.25,pos=4)
lines(c(0.6,0.7),c(0.33,0.33),lwd=3,col="gray")
text(0.72,0.33,expression(K[M]),cex=1.25,pos=4)
lines(c(0.6,0.71),c(0.26,0.26),lwd=3,col="gray",lty=2)
text(0.72,0.26,expression(A[K]),cex=1.25,pos=4)
axis(1,seq(0,1,0.1),lab=rep(" ",length(seq(0,1,0.1))))
axis(2,seq(0,1,0.1),lab=rep(" ",length(seq(0,1,0.1))))
Figura 4.1
library(survivalROC)
library(risksetROC)
library(KMsurv)
library(mvtnorm)
Anexos 83
library(ks)
library(pROC)
#####
t<- -1
FP<- rep(-1,length(z))
for (i in 1:length(z)) FP[i]<- pmvnorm(c(z[i],t),Inf,mu,sigma)[1]/(1-pnorm(t))
TP<- rep(-1,length(z))
for (i in 1:length(z)) TP[i]<- pmvnorm(c(z[i],-Inf),c(Inf,t),mu,sigma)[1]/pnorm(t)
FR1<- approxfun(c(0,FP,1),c(0,TP,1))(p)
t<- 0
FP<- rep(-1,length(z))
for (i in 1:length(z)) FP[i]<- pmvnorm(c(z[i],t),Inf,mu,sigma)[1]/(1-pnorm(t))
TP<- rep(-1,length(z))
for (i in 1:length(z)) TP[i]<- pmvnorm(c(z[i],-Inf),c(Inf,t),mu,sigma)[1]/pnorm(t)
FR2<- approxfun(c(0,FP,1),c(0,TP,1))(p)
84 Anexos
t<- 1
FP<- rep(-1,length(z))
for (i in 1:length(z)) FP[i]<- pmvnorm(c(z[i],t),Inf,mu,sigma)[1]/(1-pnorm(t))
TP<- rep(-1,length(z))
for (i in 1:length(z)) TP[i]<- pmvnorm(c(z[i],-Inf),c(50,t),mu,sigma)[1]/pnorm(t)
FR3<- approxfun(c(0,FP,1),c(0,TP,1))(p)
## Grafica
par(mfrow=c(1,2))
plot(p,FR1,type="l",lwd=2,xlab="1 - Especificidad",
ylab="Sensibilidad",cex.lab=1.6,xlim=c(0,1),ylim=c(0,1),cex.axis=1.5,col=4)
lines(c(0,1),c(0,1),col=1,lty=2)
lines(p,FR2,lwd=2,col=6)
lines(p,FR3,lwd=2,col=3)
lines(c(0.6,0.7),c(0.4,0.4),lwd=3,col=4)
text(0.72,0.4,"log(t) = -1",cex=1.5,pos=4)
lines(c(0.6,0.7),c(0.33,0.33),lwd=3,col=6)
text(0.72,0.33,"log(t) = 0",cex=1.5,pos=4)
lines(c(0.6,0.7),c(0.26,0.26),lwd=3,col=3)
text(0.72,0.26,"log(t) = 1",cex=1.5,pos=4)
text(0.03,0.95,expression(rho*" = -1/4"),cex=1.5,pos=4)
axis(1,seq(0,1,0.1),lab=rep(" ",length(seq(0,1,0.1))))
axis(2,seq(0,1,0.1),lab=rep(" ",length(seq(0,1,0.1))))
################
#####
Anexos 85
t<- -1
FP<- rep(-1,length(z))
for (i in 1:length(z)) FP[i]<- pmvnorm(c(z[i],t),c(50,50),mu,sigma)[1]/(1-pnorm(t))
TP<- rep(-1,length(z))
for (i in 1:length(z)) TP[i]<- pmvnorm(c(z[i],-50),c(50,t),mu,sigma)[1]/pnorm(t)
FR1<- approxfun(c(0,FP,1),c(0,TP,1))(p)
t<- 0
FP<- rep(-1,length(z))
for (i in 1:length(z)) FP[i]<- pmvnorm(c(z[i],t),c(50,50),mu,sigma)[1]/(1-pnorm(t))
TP<- rep(-1,length(z))
for (i in 1:length(z)) TP[i]<- pmvnorm(c(z[i],-50),c(50,t),mu,sigma)[1]/pnorm(t)
FR2<- approxfun(c(0,FP,1),c(0,TP,1))(p)
t<- 1
FP<- rep(-1,length(z))
for (i in 1:length(z)) FP[i]<- pmvnorm(c(z[i],t),c(50,50),mu,sigma)[1]/(1-pnorm(t))
TP<- rep(-1,length(z))
for (i in 1:length(z)) TP[i]<- pmvnorm(c(z[i],-50),c(50,t),mu,sigma)[1]/pnorm(t)
FR3<- approxfun(c(0,FP,1),c(0,TP,1))(p)
## Grafica
plot(p,FR1,type="l",lwd=2,xlab="1 - Especificidad",
86 Anexos
ylab="Sensibilidad",cex.lab=1.6,xlim=c(0,1),ylim=c(0,1),cex.axis=1.5,col=4)
lines(c(0,1),c(0,1),col=1,lty=2)
lines(p,FR2,lwd=2,col=6)
lines(p,FR3,lwd=2,col=3)
lines(c(0.6,0.7),c(0.4,0.4),lwd=3,col=4)
text(0.72,0.4,"log(t) = -1",cex=1.5,pos=4)
lines(c(0.6,0.7),c(0.33,0.33),lwd=3,col=6)
text(0.72,0.33,"log(t) = 0",cex=1.5,pos=4)
lines(c(0.6,0.7),c(0.26,0.26),lwd=3,col=3)
text(0.72,0.26,"log(t) = 1",cex=1.5,pos=4)
text(0.03,0.95,expression(rho*" = -3/4"),cex=1.5,pos=4)
axis(1,seq(0,1,0.1),lab=rep(" ",length(seq(0,1,0.1))))
axis(2,seq(0,1,0.1),lab=rep(" ",length(seq(0,1,0.1))))
Figura 5.1
#### CONJUNTO DE DATOS
CCCs<- read.delim2("CCCs.txt")
attach(CCCs)
DT<- cbind(time,Exitus,FEV1)
###### SUPERVIVENCIA
md<- summary(survfit(Surv(time,Exitus==1)~1))
plot(c(md$time,max(time)),c(md$surv,min(md$surv)),type="s",lwd=3,xlab="Anos",
ylab="Supervivencia",cex.lab=1.5,ylim=c(0,1),cex.axis=1.3,xlim=c(-2,15))
sum(sort(DT[,1])>=1)
text(1,0.1,"n=3329",cex=1.25,srt=90)
sum(sort(DT[,1])>=4)
text(4,0.1,"n=1797",cex=1.25,srt=90)
sum(sort(DT[,1])>=7)
text(7,0.09,"n=624",cex=1.25,srt=90)
Anexos 87
sum(sort(DT[,1])>=10)
text(10,0.09,"n=212",cex=1.25,srt=90)
sum(sort(DT[,1])>=13)
text(13,0.08,"n=15",cex=1.25,srt=90)
axis(1,seq(0,15,1),lab=rep(" ",length(seq(0,15,1))))
axis(2,seq(0,1,0.1),lab=rep(" ",length(seq(0,1,0.1))))
lines(md$time,md$low,lty=2,lwd=2)
lines(md$time,md$up,lty=2,lwd=2)
Figura 5.2
library(survivalROC)
library(risksetROC)
library(KMsurv)
library(mvtnorm)
library(ks)
library(pROC)
## COX
CX<- function(DT,t)
{
prob<- NULL
T<- DT[,1]; E<- DT[,2]; M<- DT[,3]
P<- which(T <= t & E==1)
N<- which(T > t)
IN<- which(T <= t & E==0)
if (length(IN)>0)
{
fit <- coxph(Surv(T, E) ~ M)
md<- survfit(fit, newdata=data.frame(DT))
prob<- 1:length(IN)
88 Anexos
for (j in 1:length(IN))
{
f<- approxfun(c(0,md$time),c(1,md$surv[,IN[j]]))
prob[j]<- f(t)/f(T[IN[j]])
if (is.na(prob[j])) prob[j]<- 1
}
}
cut<- sort(c(min(as.numeric(names(table(M))))-1,as.numeric(names(table(M)))))
nS<- length(P) + sum(1-prob)
nE<- length(N) + sum(prob)
Se<- cut; Es<- cut
for (i in 1:length(cut))
{
Se[i]<- (sum(M[P]> cut[i]) + sum(1-prob[which(M[IN]>cut[i])]))/nS
Es[i]<- (sum(M[N]<= cut[i]) + sum(prob[which(M[IN]<=cut[i])]))/nE
}
list(TP=Se, TN=Es, prob=prob)
}
## KAPLAN-MEIER
KM<- function(DT,t)
{
prob<- NULL
T<- DT[,1]; E<- DT[,2]; M<- DT[,3]
P<- which(T <= t & E==1)
N<- which(T > t)
IN<- which(T <= t & E==0)
if (length(IN)>0)
{
prob<- 1:length(IN)
for (j in 1:length(IN))
{
I<- which(M<= M[IN[j]])
Anexos 89
fit<- survfit(Surv(T[I],E[I])~1)
f<- stepfun(fit$time,c(1,fit$surv))
prob[j]<- f(t)/f(T[IN[j]])
if (is.na(prob[j])) prob[j]<- 1
}
}
cut<- unique(sort(M))
nS<- length(P) + sum(1-prob)
nE<- length(N) + sum(prob)
Se<- cut; Es<- cut
for (i in 1:length(cut))
{
Se[i]<- (sum(M[P]> cut[i]) + sum(1-prob[which(M[IN]>cut[i])]))/nS
Es[i]<- (sum(M[N]<= cut[i]) + sum(prob[which(M[IN]<=cut[i])]))/nE
}
list(TP=Se, TN=Es, prob=prob)
}
CCCs<- read.delim2("CCCs.txt")
attach(CCCs)
DT<- cbind(time,Exitus,FEV1)
par(mfrow=c(2,2))
for(t in c(4,7,10,13)){
km<- survivalROC(Stime=DTC[,1],status=DTC[,2],marker = DTC[,3],predict.time = t ,
method = "KM" )
ak<- survivalROC(Stime=DTC[,1],status=DTC[,2],marker = DTC[,3],predict.time = t,
span = 0.1*length(I)^(-0.20))
di<- rocDI(DTC,t)
cx<- CX(DTC,t)
nk<- KM(DTC,t)
plot(km$FP,km$TP,type="s",lwd=2,xlab="1 - Especificidad",
ylab="Sensibilidad",cex.lab=1.2,xlim=c(0,1),ylim=c(0,1),cex.axis=1,col=2)
lines(c(0,1),c(0,1),col="gray",lty=2)
lines(ak$FP,ak$TP,type="s",lwd=2,col=3)
lines(di$FP,di$TP,type="s",lwd=2,col=4)
lines(1-cx$TN,cx$TP,type="s",lwd=2,col=7)
lines(1-nk$TN,nk$TP,type="s",lwd=2,col=6)
axis(2,seq(0,1,0.1),lab=rep(" ",length(seq(0,1,0.1))))
axis(1,seq(0,1,0.1),lab=rep(" ",length(seq(0,1,0.1))))
lines(c(0.7,0.8),c(0.5,0.5),lwd=2,col=7)
text(0.82,0.5,expression(N[C]),cex=0.8,pos=4)
lines(c(0.7,0.8),c(0.43,0.43),lwd=2,col=6)
text(0.82,0.43,expression(N[K]),cex=0.8,pos=4)
Anexos 91
lines(c(0.7,0.8),c(0.36,0.36),lwd=2,col=2)
text(0.82,0.36,expression(K[M]),cex=0.8,pos=4)
lines(c(0.7,0.8),c(0.29,0.29),lwd=2,col=3)
text(0.82,0.29,expression(A[K]),cex=0.8,pos=4)
lines(c(0.7,0.8),c(0.22,0.22),lwd=2,col=4)
text(0.82,0.22,expression(D[I]),cex=0.8,pos=4)
if(t==4){text(0.2,0.9,"t=4",cex=1.4)}
if(t==7){text(0.2,0.9,"t=7",cex=1.4)}
if(t==10){text(0.2,0.9,"t=10",cex=1.4)}
if(t==13){text(0.2,0.9,"t=13",cex=1.4)}
}
Figura 5.3
library(survivalROC)
library(risksetROC)
library(KMsurv)
library(mvtnorm)
library(ks)
library(pROC)
#### COX
CX<- function(DT,t)
{
prob<- NULL
T<- DT[,1]; E<- DT[,2]; M<- DT[,3]
P<- which(T <= t & E==1)
N<- which(T > t)
IN<- which(T <= t & E==0)
if (length(IN)>0)
{
fit <- coxph(Surv(T, E) ~ M)
92 Anexos
#### KAPLAN-MEIER
KM<- function(DT,t)
{
prob<- NULL
T<- DT[,1]; E<- DT[,2]; M<- DT[,3]
P<- which(T <= t & E==1)
N<- which(T > t)
IN<- which(T <= t & E==0)
if (length(IN)>0)
{
prob<- 1:length(IN)
for (j in 1:length(IN))
Anexos 93
{
I<- which(M<= M[IN[j]])
fit<- survfit(Surv(T[I],E[I])~1)
f<- stepfun(fit$time,c(1,fit$surv))
prob[j]<- f(t)/f(T[IN[j]])
if (is.na(prob[j])) prob[j]<- 1
}
}
cut<- unique(sort(M))
nS<- length(P) + sum(1-prob)
nE<- length(N) + sum(prob)
Se<- cut; Es<- cut
for (i in 1:length(cut))
{
Se[i]<- (sum(M[P]> cut[i]) + sum(1-prob[which(M[IN]>cut[i])]))/nS
Es[i]<- (sum(M[N]<= cut[i]) + sum(prob[which(M[IN]<=cut[i])]))/nE
}
list(TP=Se, TN=Es, prob=prob)
}
t<- c(0.5,1:15)
A<- t
AL<- t
AU<- t
p<- seq(0,1,0.01)
B<- 100
AB<- rep(0,B)
for (k in 1:16)
{
md<- CX(DTC,t[k])
cx<- approxfun(c(0,1-md$TN,1),c(0,md$TP,1))(p)
A[k]<- 0.01*max(sum(cx))
for(b in 1:B)
{
IB<- sample(1:(dim(DT)[1]),replace=TRUE)
I<- which(DT[IB,1]>=0 & DT[IB,2]>=0 & DT[IB,3]>=0)
DTB<- cbind(DT[IB[I],1],DT[IB[I],2],-DT[IB[I],3])
md<- CX(DTB,t[k])
cx<- approxfun(c(0,1-md$TN,1),c(0,md$TP,1))(p)
AB[b]<- 0.01*max(sum(cx))
}
AL[k]<- quantile(AB,0.025);
AU[k]<- quantile(AB,0.975);
print(k)
}
par(mar=c(5,5,1,1))
plot(t,A,type="b",lwd=5,xlab="Anos",
ylab="AUC",cex.lab=2.0,xlim=c(0,15),ylim=c(0.35,1.05),cex.axis=1.5)
lines(c(0,15),c(0.5,0.5),col="gray",lty=2)
lines(t,A,lwd=5)
Anexos 95
lines(t,AL,lty=2)
lines(t,AU,lty=2)
axis(2,seq(0,1,0.1),lab=rep(" ",length(seq(0,1,0.1))))
axis(1,seq(0,15,1),lab=rep(" ",length(seq(0,15,1))))
Bibliografía
[1] Akritas M.G. Nearest neighbor estimation of a bivariate distribution under random censo-
ring. Annals of Statistics. 1994; 22(3): 1299-1327.
[2] Burgueño M.J., García-Bastos J.L., González-Buitrago J.M. Las curvas ROC en la evalua-
ción de las pruebas diagnósticas. Med Clin(Barc). 1995; 104: 661-670.
[3] Cai T., Pepe M.S., Zheng Y., Lumley T., Jenny N.S. The sensitivity and specicity of
markers for event times. Biostatistics. 2006; 7(2): 182-197.
[4] Etzioni R., Pepe M.S., Longton G., Hu C., Goodman G. Incorporating the time dimension
in receiver operating characteristic curves: A case study of prostate cancer. Medical Decision
Making. 1999; 19: 242-251.
[5] Fawcett T. An introduction to ROC analysis. Pattern Recogn Lett. 2006; 27: 861-874.
[6] Gerds T.A., Michael M.W., Schumacher M., Yu C. Estimating a time-dependent concor-
dance index for survival prediction models with covariate dependent censoring. Statistics in
Medicine. 2013; 32(13): 2173-2184.
[8] Goncalves L., Subtil A., Oliveira M.R, Bermudez, P.Z. Roc Curve Estimation: An Overview.
Statistical Journal. 2014; 12(1): 1-20.
[9] Green D.M., Swets J.A. Signal detection theory and psychophysics. 1966. New York: Wiley.
97
98 Referencias y bibliografía de consulta
[10] Heagerty P., Zheng Y. Survival model predictive accuracy and ROC curves. Biometrics.
2005; 61(1): 92-105.
[11] Heagerty P.J., Lumley T., Pepe M.S. Time-dependent ROC curves for censored survival
data and a diagnostic marker. Biometrics. 2000; 56: 337-344.
[12] Jacqmin-Gadda H., Blanche .P, Chary E., Touraine C., Dartigues J.F. Receiver operating
characteristic curve estimation for time to event with semicompeting risks and interval
censoring. Statistical Methods in Medical Research. 2014.
[13] Kaplan E.L., Meier P. Nonparametric estimation from incomplete observations. Journal of
the American Statistical Association. 1958; 53: 457- 481.
[14] Klein J.P., Moeschberger M.L. Survival analysis: Techniques for censored and truncated
data. 2003. New York: Springer.
[15] Krzanowski W.J., Hand D.J. ROC curves for Continuous data. 2009. CRC Press, Chap-
man&Hall, Londres.
[16] Lee E.T. Statistical methods for survival data analysis. 1980. Lifetime Learning Publica-
tions, Belmont, CA.
[17] Lusted, L. Decision - making studies in patients management. Journal of Medicine. 1971;
284: 416-424.
[18] Marin J.M., Alfageme I., Almagro P., Casanova C., Esteban C., Soler-Cataluña J.J., de
Torres J.P., Martínez-Camblor P., Miravitlles M., Celli B.R., Soriano J. Multicomponent
indices to predict mortality in COPD: the COCOMICS study. European Respiratory Jour-
nal. 2013; 42: 323-332.
[19] Martinez E. Z., Louzada-Neto F., Pereira B. B. A curva ROC para testes diagnósticos. it
Cadernos Saúde Coletiva. 2003; 11: 7-31.
[20] Martínez-Camblor P. Area under the ROC curve comparison in the presence of missing
data. Journal of the Korean Statistical Society. 2013; 42(4): 431-442.
Referencias y bibliografía de consulta 99
[21] Martínez-Camblor P. Nonparametric cuto point estimation for diagnostic decisions with
weighted errors. Revista Colombiana de Estadística. 2011; 34(1): 133-146.
[22] Martínez-Camblor P., Corral N., Rey C., Pascual J., Cernuda-Morollón E. ROC curve ge-
neralization for non-monotone relationships. Statistical Methods in Medical Research. 2014.
[23] Martínez-González M.A., Alonso A., Fidalgo J.L. ¾Qué es una hazard ratio? Nociones de
análisis de supervivencia. M edicina Cliníca (Barcelona). 2008; 131: 65-72.
[25] Park S.H., Goo J.M., Jo C.H. Receiver Operating Characteristic (ROC) Curve: Practical
Review for Radiologists. Korean Journal of Radiology. 2004; 5(1): 11-18.
[26] Pepe M.S. The Statistical Evaluation of Medical Tests for Classication and Prediction.
2003. Oxford, Oxford University Press.
[27] Rupert G. Miller, Jr. Survival Analysis. 1975. John Wiley and Son, New York.
[28] Salanti G., Kurt U. A non-parametric framework for estimating threshold limit values. BMC
Medical Research Methodology. 2005; 5: 36.
[29] Slate E., Turnbull B. Statistical models for longitudinal biomarker of disease onset. Statistics
in Medicine. 2000; 19: 617-637.
[30] Soriano J., Alfageme I., Almagro P., Casanova C., Esteban C., Soler-Cataluña J.J., de
Torres J.P., Martínez-Camblor P., Miravitlles M., Celli B.R., Marin J.R. Distribution and
prognostic validity of the new global initiative for chronic obstructive lung disease grading
classication. Chest. 2013; 143(3): 694-702.
[31] Spackman K.A. Signal detection theory: Valuable tools for evaluating inductive learning.
1989. Proc. Sixth Internat. Workshop on Machine Learning. Morgan Kaufman, San Mateo,
CA.
[32] Swets J.A., Dawes R.M., Monahan J. Better decisions through science. Scientic American.
2000; 283: 82-87.
100 Referencias y bibliografía de consulta
[33] Torres A. Curvas ROC para Datos de Supervivencia. Aplicación a Datos Biomédicos. 2010.
Proyecto presentado para culminar el Máster en Técnicas Estadísticas de la Universidad de
Santiago de Compostela.
[34] Venkatraman E.S., Begg C.B. A distribution-free procedure for comparing receiver operating
characteristic curves from a paired experiment. Biometrika. 1996; 83(4): 835-848.
[35] Viallon V., Latouche A. Discrimination measures for survival outcomes: Connection between
the AUC and the predictiveness curve. Biometrical Journal. 2011; 53: 217-236.
[36] Walters S.J. What is a Cox model? Aventis [serie online]. 2003; 1(10), disponible en:
www.evidence-based-medicene.co.uk.data
[37] Wolf P., Schmidt G., Ulm K. The use of ROC for dening the validity of the prognostic
index in censored data. Statistics and Probability Letters. 2011; 81: 783-791.
[38] Yousef W.A., Kundu S., Wagner R.F. Nonparametric estimation of the threshold at an ope-
rating point on the ROC curve. Computational Statistics and Data Analysis. 2009; 33(12):
4370-4383.
[39] Zhou, X.H., Obuchowski N.A., McClich D.K. Statistical methods in diagnostic medicine.
2011. Second Edition, John Wiley & Sons, New Jersey.