Está en la página 1de 16

Optimización Numérica de

Funciones de Verosimilitud
Métodos Numéricos
Andrea Chávez Heredia

Semestre Agosto - Diciembre 2018


Profesor: Joaquín Peña Acevedo

PROYECTO FINAL MÉTODOS NUMÉRICOS 1


1. Introducción
Las funciones de verosimilitud son un método importante de estimación en el análisis
estadístico. En este proyecto abordaremos un ejemplo de modelo biológico donde se requiere
de métodos numéricos para obtener estimadores. Trabajaremos sobre un ejemplo en la tasa
de supervivencia de individuos que fallecieron a causa de Leucemia Mieloide Aguda (AML
por sus siglas en inglés).

2. Motivación y Contexto
En información obtenida a partir de experimentos biológicos, la estadística busca
ajustar modelos para interpretar datos y dar más detalles al respecto del fenómeno. Algunas
veces las funciones de densidad propuestas son complejas y resulta difícil estimar los
parámetros a partir de los datos.
En el libro de Cox & Oakes (1984), tenemos un conjunto de datos de 33 pacientes que
perecieron debido a AML. Estos datos cuentan las semanas que sobrevivieron después del
diagnóstico. Consecuentemente, una distribución que usualmente se aplica a datos de
supervivencia es la distribución Weibull de dos parámetros.

2.1 Datos
Tras el diagnóstico de AML, se midió el tiempo de supervivencia de 33 pacientes que
finalmente murieron por la enfermedad. Al momento del diagnóstico se hizo un conteo de
glóbulos blancos (leucocitos). Asimismo, se separó al grupo en dos subgrupos de acuerdo a la
morfología de sus leucocitos. Aquellos que se identificaron como positivo (o presente) fueron
aquellos en los que se identificó la presencia de bastones de Ayer y/o granulación
significativa en células leucémicas de la médula ósea. El grupo negativo (o ausente) son
aquellos en los que no se encontró ninguna de las caracterizaciones anteriores.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
A 65 156 100 134 16 108 121 4 39 143 56 26 22 1 1 5 65 56 65 17 7 16 22 3 4 2 3 8 4 3 30 4 43
B

En la tabla se muestra el juego de datos completo, donde la primera fila representa las semanas de supervivencia
y la segunda el grupo al que pertenecen (rojo = ausente, verde = presente).

PROYECTO FINAL MÉTODOS NUMÉRICOS 2


La imagen muestra tipos de células (marcadas con las flechas), del grupo que se clasificó como presente.

En este análisis, contemplaremos los individuos del grupo “ausente”. Así, tenemos una
sucesión de n = 16 variables aleatorias independientes e idénticamente distribuidas como
Weibull(α, ß), donde α > 0 es el parámetro de escala y ß > 0 es el de forma. Luego, la función
de probabilidad Weibull tiene una densidad dada por:

α (α)
β β−1 β
x
f" (x; α, β ) = e −(x/α) x ≥ 0,
0 x < 0.

2.2 Estimación de los parámetros (emv)


Queremos estimar los parámetros α y ß por medio de las funciones de verosimilitud y
log-verosimilitud de la Weibull, es decir, queremos calcular los estimadores de máxima
verosimilitud. Respectivamente la verosimilitud y log-verosimilitud son:

∏α (α)
n β−1
β xi β
L(α,
" β) = e −(xi /α) ,
i=1
y
n n
(xi /α) β.
∑ ∑
" l(α, β ) = n log(β ) − nβ log(α) + (β − 1) log(xi ) −
i=1 i=1
Luego calculamos las derivadas parciales de la log-verosimilitud con respecto de α y ß,
obteniendo respectivamente:

∂l nβ β n β ∂l n n n
(x /α) β log(xi /α).
α∑ ∑ ∑ i
" =− + (xi /α) y " = − n log(α) + log(si ) −
∂α α i=1
∂β β i=1 i=1

PROYECTO FINAL MÉTODOS NUMÉRICOS 3


Para calcular los emv queremos resolver el sistema de ecuaciones anterior, igualando
ambas derivadas parciales a cero. Sin embargo, analíticamente, el proceso se vuelve
complicado y tedioso, por ello implementaremos la solución por medio de algún método
numérico.

4. Comentarios Generales sobre Optimización


Como mencionábamos anteriormente, las expresiones analíticas de las funciones de
verosimilitud son bastante complejas y normalmente difíciles de calcular, por lo que se
requieren de métodos numéricos. En este caso, queremos maximizar la verosimilitud
obtenida.
En cualquier aplicación, debemos definir si queremos maximizar o minimizar, pues
maximizar una función f es equivalente a minimizar -f. En este caso tenemos la log-
verosimilitud l, y queremos calcular los emv, diremos que maximizaremos l.
La optimización numérica requiere de ciertas observaciones:
• Si la función a maximizar es cóncava, se comporta “bien” y sólo tiene un punto
máximo, entonces la mayoría de los métodos convergen.
• Para problemas más complicados que no cumplen con las condiciones anteriores, los
siguientes métodos son estándar en la aplicación:
A. Encontrar máximos locales comenzando por una amplia variación de los
parámetros iniciales, luego tomar el mayor de ellos.
B. Perturbar un óptimo local con una cantidad “pequeña”, y usar esto como
punto inicial de la nueva rutina. Finalmente ver si la rutina converge a un mejor
estimador o se mantiene “intacto”.
• Para elegir un método adecuado, debemos seleccionar entre los métodos que
requieran sólo evaluaciones de la funciono en ella misma y métodos que también requieran
evaluaciones de la(s) derivada(s). De alguna forma aquellos métodos que utilizan las
derivadas son más “poderosos”, pero también se debe calcular el costo adicional de estos
cálculos.
• En muchas situaciones, se pueden construir algoritmos con aplicaciones específicas.
Estos pueden ser por mucho más eficientes de los utilizados de manera estándar.

PROYECTO FINAL MÉTODOS NUMÉRICOS 4


5. Algunas Propiedades de la Función de Verosimilitud y
emv en el Caso Multi-Parámetro
Supongamos que θ = (θ1, …, θk)T un vector de k parámetros desconocidos. El gradiente
de la log-verosimilitud, es un vector llamado función score;
" s(θ; x) = ▽θ (l(θ; x)).
La i-ésima entrada del vector s(θ, x), es la derivada parcial de la log-verosimilitud l(θ, x)

con respeto de θ. En otras palabras, s" i(θ; x) = l(θ; x), para cada i = 1, …, p.
∂θi
Ahora, para cada s" i(θ; x) y encontrar el los emv para los parámetros, resolvemos
" θ;̂ x) = 0 y tenemos un sistema de p ecuaciones con p incógnitas. Por otra parte, notemos
s(
que la función escore es una cantidad estocástica. Una propiedad importante de la función
escore es que si x tiene una función de densidad, entonces el valor esperado cumple que
E[s(θ;
" x)] = 0. Entonces debemos analizar la varianza del emv.
La variabilidad de s(θ;
" x) refleja la confianza del estimador θ" .̂ La varianza de s se llama
la información de Fisher (o información esperada). En el caso multivariable, la información de
Fisher es una matriz semi-definida positiva de la siguiente forma
I" ij(θ ) = − E [ ∂θ ∂θj l(θ )].
∂2
i
Sin embargo, las esperanzas en esta última expresión no siempre son posibles de
computar. Una alternativa es usar la matriz de información observada, J(θ
" ), (o matriz hessiana),
dada por
∂2
J" ij(θ ) = − ∂θi ∂θj
l(θ ).
−1
Así, el i-ésimo elemento de la diagonal de J" (θ ) puede ser usado como una
aproximación a la varianza de θ" î en lugar del i-ésimo elemento de la diagonal de I" −1(θ ) .
Cualquiera de estas aproximaciones es igualmente válida en el sentido que conforme el
número de observaciones aumenta, la aproximación del erro va a converger a cero. En caso
de poder calcularse, la información esperada es preferible, dado que en ocasiones la
información observada puede ser inestable. Cabe mencionar que en muchos modelos
estándar usados en estadística, I(θ
" ) = J(θ ).

PROYECTO FINAL MÉTODOS NUMÉRICOS 5


6. Método a Implementar
Dado que es un problema estadístico de optimización de varios parámetros,
proponemos utilizar el método de Newton-Raphson en optimizaciones. El método se basa en
aproximar la función que queremos optimizar, por medio de una función cuadrática. El
óptimo de la aproximación da una idea del óptimo de la función real. Si este supuesto no está
lo suficientemente cerca del óptimo, una nueva aproximación de calcula e iteramos el
proceso.
Supongamos, por simplicidad, que l involucra un único parámetro y que θ̄
" es nuestra
actual mejor aproximación en la estimación de l(θ
" ) . Luego, por la expansión en serie de
Taylor alrededor de θ̄
" , l(θ
" ) puede ser aproximado por
" l˜θ̄ (θ ) = l(θ̄ ) + l′(θ̄ )(θ − θ̄ ) + l′′(θ̄ )(θ − θ̄ )2.
1
2
Cuando θ
" está lo suficientemente cerca de θ̄ " ) − l˜θ̄ (θ ) es pequeña. Por
" , la diferencia l(θ
otra parte, el gradiente de l" ˜θ̄ (θ ) y el hessiano (segunda derivada) en el punto θ" son,
respectivamente
˜θ̄ (θ ) = l′(θ̄ ) − l′′(θ̄ )(θ − θ̄ )
" l′ y ˜θ̄′(θ ) = l′′(θ̄ ).
" l′
En el punto θ̄ " ) y "l˜θ̄ (θ ) tienen igual primera y segunda derivadas. Notemos que para
" , l(θ
el caso particular cuando l es una función de log-verosimilitud, el Hessiano es igual a menos
la información observada evaluada en θ
" = θ̄, l′′(θ̄ ) = − J(θ̄ ).
Considerando el punto óptimo de la aproximación, "l˜θ̄ (θ ) tiene gradiente igual a cero,
dando la siguiente ecuación; l′
" ′(θ̄ )(θ − θ̄ ) = − l′(θ̄ ) . Ahora, resolviendo con respecto a θ" ,
obtenemos
l′(θ̄)
θ" = θ̄ − .
l′′(θ̄)
Esto, nos da un procedimiento para optimizar "l˜θ̄ (θ ). Sin embargo, queremos optimizar
" ). Dado que "l˜θ̄ (θ ) es una aproximación de l(θ
l(θ " ), esperamos que la expresión anterior no de
un nuevo valor más cercano al óptimo de l(θ " ) . Esto nos sugiere un método iterativo para
optimizar la función deseada:
l′(θ (k) )
"θ (k+1) = θ (k) − ,
l′′(θ (k) )
el cual es el método de Newton-Raphson. El proceso se repite tantas veces hasta que el el
valor del error " | θ (k+1) − θ (k) | sea menor a una tolerancia dada o hasta que llegue a un
número fijo máximo de iteraciones.

PROYECTO FINAL MÉTODOS NUMÉRICOS 6


" (k+1) = θ (k) es equivalente a decir que l′
Decir que θ " (θ (k)) = 0. Demostramos que cuando
el algoritmo converge, hemos alcanzado un punto estacionario de l(θ
" ). Este punto puede ser
" ′(θ (k)) < 0, el punto es un máximo, lo cual
un punto máximo, mínimo o silla. No obstante, si l′
debe verificarse en cada caso.
Cuando "l(θ ) es una función de log-verosimilitud, el algoritmo puede escribirse como
s(θ (k) )
"θ (k+1) = θ (k) + .
J(θ (k) )
" (k)) > 0 .
En tal situación, un punto de convergencia es un punto máximo si J(θ
Destaquemos que el algoritmo de Newton-Raphson sólo convergerá al punto estacionario
más cercano al valor inicial dado. Si existen varios puntos, la selección del valor inicial se
vuelve crítica. En muchos casos de estadística, valores iniciales razonables pueden ser
encontrados por otros medios, por ejemplo, por medio de estimadores por el método de
momentos.
" (k+1), consiste en sumar
Para el caso con p parámetros, el método iterativo para calcular θ
" (k) la solución al sistema J(θ
aθ " (k))y = s(θ (k)). Donde J(θ
" (k)) es la matriz hessiana de tamaño
" (k)) es el vector score de valores independientes.
" × p, y es la incógnita y s(θ
p

6.1 Implementación del Método


Retomando el problema de AML, la matriz de información observada (hessiana) está
dada por
∂ 2 l(θ) ∂ 2 l(θ) nβ β( β + 1) n 1 β
− − − + T1 − α T1 − α T2
[J21 J22]
J11 J12 ∂α 2 ∂α∂β α2 α2 α
" = = β
,
∂ 2 l(θ) ∂ 2 l(θ) n 1 n
− − α
− α T1 − α T2 + T3
∂β∂α ∂β 2 β2

donde"T1 = ∑i=1 ( α ) , T" 2 = ∑i=1 ( α ) log ( α ) y T" 3 = ∑i=1 ( α ) log2 ( α ) . Además


xi β xi β xi xi β xi
n n n

recordemos que el tamaño de la muestra es n = 16.

Ahora, implementando el método, programamos la función


double *NR_Weibull(double *x, double alpha, double beta, int n,
double tol, int iter)
donde:

*x = vector muestra n = tamaño de la muestra
alpha = parámetro inicial para alpha tol = tolerancia dada para el error
beta = parámetro inicial para beta iter = número máximo de iteraciones


PROYECTO FINAL MÉTODOS NUMÉRICOS 7


Para compilar: gcc -o Proy main.c -lgsl -lgslcblas -lm
Para ejecutar: ./Proy alpha beta
alpha y beta son los parámetros iniciales propuestos.

La ventana de código en c muestra el algoritmo planteado.

El error que consideramos es " | α (k+1) − α (k) | + | β (k+1) − β (k) | < tol, fijando iter = 100
y tol = 0.000001.
" (0) = 10.0 y β" (0) = 1.0 , obtenemos los resultados que se
Al ejecutar el código con α
muestran en la imagen siguiente.

PROYECTO FINAL MÉTODOS NUMÉRICOS 8


Resultados obtenidos ejecutando ./Proy 10.0 1.0

" (k), en la
La impresión de pantalla muestra, por cada iteración k, en la primera columna α
" (k) y el la tercera, la función de log-verosimilitud evaluada en los parámetros de la
segunda β
iteración, es decir l("α (k), β (k)).
Considerando otros parámetros iniciales, veamos a continuación que el método de
Newton-Raphson es sensible a las condiciones iniciales.

Resultados obtenidos ejecutando ./Proy 10.0 2.0

" (0) = 2.0, el algoritmo falla en la tercera iteración. Obtenemos


Para la condición inicial β
parámetros negativos, los cuales no se admiten en la distribución Weibull. Por tanto, a partir
de esta prueba, notamos que la robustez del modelo es pequeña.

PROYECTO FINAL MÉTODOS NUMÉRICOS 9


Una ventaja del algoritmo empleado en problemas estadísticos, es que en varios casos,
las funciones de log-verosimilitud son cercanas a funciones cuadráticas alrededor de sus
puntos máximos. Esto se relaciona con el hecho de que los emv están aproximadamente
distribuidos de forma gaussiana. En tales casos, la aproximación l" ˜θ̄ (θ ) se vuelve una muy
buena aproximación al punto máximo. Por otra parte, en situaciones como la del problema
que estamos analizando, el método puede volverse un poco complicado, así que daremos
algunas modificaciones del código para darle robustez.

6.2 Modificaciones de Newton-Raphson


Dado que tenemos un modelo con dos parámetros desconocidos, propondremos dos
soluciones para dar robustez al problema. La primera es trabajar en un problema de una
dimensión en lugar de dos dimensiones y la otra es dando una reparametrización.

6.2.1 Reducción de Dimensión

Hemos notado que en el caso de la verosimilitud para la distribución Weibull, la


solución analítica es complicada de obtener. Consecuentemente, trabajaremos ahora con un
parámetro y no con dos, es decir, pondremos uno en función del otro.
De las derivadas parciales calculadas anteriormente, notemos que es más sencillo
∂l
establecer α
" en función de β
" . Esto se debe a que es menos complicado resolver " = 0 . En
∂α
otras palabras, fijamos β
" y obtenemos

̂ ) = [ 1n ∑ni=1 xiβ] .
1/β
"α(β
" ̂ ) para hacer explícito que el valor óptimo de α
Usaremos la notación α(β " depende de β
" .
̂ ), β ) para obtener una función
Ahora sustituiremos en la función de log-verosimilitud (" α(β
de un solo parámetro. Tenemos entonces que
1 n β n

(n ∑ )
̂ ), β ) = n log β − n log

l" β (β ) := l(α(β xi + (β − 1) log xi − n.
i=1 i=1
Observemos que hemos reducido la dimensión del problema; pasamos de dimensión
dos a dimensión uno, lo que a priori es más sencillo de maximizar. Llamamos a l" β (β ) la log-
verosimilitud perfil de beta.

PROYECTO FINAL MÉTODOS NUMÉRICOS 10


Al igual que con la log-verosimilitud perfil, para maximizar nuestra nueva función
l" β (β ), utilizaremos el algoritmo de Newton-Raphson. Así que calculamos la primera y
segunda derivadas de l" β (β ), obteniendo:
n T n T4T2 − T 12
l′
" β (β ) = − n 1 + T3 y " β′(β ) = −
l′ − n ,
β T2 β2 T 22
n n n n
xβ xβ xiβ log2 xi .
∑ i ∑ i ∑ ∑
donde T" 1 = log xi , T" 2 = , T" 3 = log xi y T" 1 = Luego,
i=1 i=1 i=1 i=1
programamos la siguiente función:

double *NR_perfil(double *x, double beta, int n, double tol, int


iter)
donde:

*x = vector muestra
beta = parámetro inicial para beta tol = tolerancia dada para el error
n = tamaño de la muestra iter = número máximo de iteraciones


Para compilar: gcc -o Proy main.c -lgsl -lgslcblas -lm


Para ejecutar: ./Proy alpha beta
alpha y beta son los parámetros iniciales propuestos.

(Observación: dado que todas las funciones están en el mismo proyecto, las condiciones iniciales se dan al
momento de ejecutar el programa, sin embargo, la función NR_perfil sólo va a recibir β " y calcular α
" en
función del parámetro anterior.)

… el código continúa abajo

PROYECTO FINAL MÉTODOS NUMÉRICOS 11


La ventana de código en c muestra el algoritmo con la log-verosimilitud perfil de beta.

El error que consideramos es " | β (k+1) − β (k) | < tol, fijando iter = 100 y tol =
" (0) = 1.0 y obtenemos los resultados de la siguiente
0.000001. Ejecutamos el código con β
" ̂ (k)),
imagen. La primera columna, para cada iteración k, muestra en la primera columna α(β
" (k) y por último l" β (β (k)). Recordemos que la log-verosimilitud perfil de beta es
en la segunda β
una aproximación de la función de log-verosimilitud con ambos parámetros.

Resultados obtenidos ejecutando ./Proy 10.0 1.0

Notemos que el algoritmo, con la función NR_perfil, converge en la tercera iteración,


a diferencia de la función NR_Weibull que lo hace en la séptima. Ahora, probemos esta
" (0) = 2.0. La siguiente captura de pantalla muestra el resultado obtenido.
función para β

Resultados obtenidos ejecutando ./Proy 10.0 2.0

PROYECTO FINAL MÉTODOS NUMÉRICOS 12


En este caso, tenemos el mismo problema que para el algoritmo planteado inicialmente.
Notemos que comparando los resultados, el segundo algoritmo es más eficiente, en cuanto al
número de iteraciones. Sin embargo, sigue siendo no-robusto, ya que desde la iteración k = 0,
se obtuvieron parámetros negativos. En la siguiente sub-sección estableceremos restricciones
para evitar la situación anterior.

6.2.2 Reparametrización

Muchos de los parámetros involucrados tienen restricciones en sus valores. En el caso


de muestro ejemplo de AML, consideramos que α,
" β > 0 , y además el soporte de la
distribución es no-negativo. Por lo tanto, para “darle la vuelta al problema”consideremos la
siguiente transformación, definiendo
b" = log(β ) ⟺ β = e b.
Sustituyendo esta expresión en la log-verosimilitud perfil de beta, obtenemos ahora una
función de b, dada por la siguiente ecuación
1 n eb n

(n ∑ )
b

l" b(b) = n b − n log xi + (e − 1) log xi − n.
i=1 i=1
A esta transformación de β " , la llamamos una reparametrización de β " . Ahora queremos
optimizar l" b(b) con respecto de b. Notemos que dado que log(β " ) es una transformación
monótona e invencible, un punto máximo par b nos da directamente un valor máximo para β " .
Luego, como "β = e b, automáticamente obtenemos β " > 0.
Utilizando nuevamente el algoritmos de Newton-Raphson, requerimos de las
siguientes expresiones. Por tanto, la primera y segunda derivadas de la reparametrización,
están dadas, respectivamente, por las siguientes funciones

[ ]
T1
" b(b) = n 1 −
l′ + e bT3
T2
y

[ ]
T5T2 − T 42
[ ]
b
T4 − T3T2 2b
l′
" ′(b) = − ne − ne + e bT3
T2 T22

PROYECTO FINAL MÉTODOS NUMÉRICOS 13


1 n eb b 1 n eb 1 n 1 n eb
n∑ ∑ ∑ ∑ i
donde T" 1 = xi e log(xi ) , T" 2 = xi , T" 3 = log(xi ) , T" 4 = x log(xi ) y
i=1
n i=1
n i=1
n i=1
1 n eb
xi log2(xi ). Así, programamos el nuevo método a iterar obteniendo la siguiente

" 5=
T
n i=1
función:
double *NR_reparam(double *x, double beta, int n, double tol,
int iter)
donde:

*x = vector muestra
beta = parámetro inicial para beta tol = tolerancia dada para el error
n = tamaño de la muestra iter = número máximo de iteraciones


Para compilar: gcc -o Proy main.c -lgsl -lgslcblas -lm


Para ejecutar: ./Proy alpha beta
alpha y beta son los parámetros iniciales propuestos.
(Observación: al igual que la función de reducción de dimensión, NR_param sólo va a recibir β
" y calcular α
" en
función del parámetro anterior.)

La ventana de código en c muestra el algoritmo con la reparametrización b


" = log β.

PROYECTO FINAL MÉTODOS NUMÉRICOS 14


El error que consideramos es " | β (k+1) − β (k) | < tol = 0.000001, fijando iter = 100.
" (0) = 2.0 y obtenemos los resultados de la siguiente imagen. La
Ejecutamos el código con β
" ̂ (k)) , en la
primera columna, para cada iteración k, muestra en la primera columna α(β
" (k) y por último l" β (β (k)).
segunda β

Ambas figuras muestran los resultados de la


reparametrización, ejecutando ./Proy 10.0 2.0

PROYECTO FINAL MÉTODOS NUMÉRICOS 15


A diferencia de los algoritmos anteriores, la reparametrización tiene una velocidad de
convergencia más lenta con respecto a las iteraciones. Sin embargo, obtenemos un algoritmo
robusto. Se puede probar con distintos valores iniciales más grandes, como β" (0) = 3.0 o
"β (0) = 4.0, y se sigue cumpliendo la convergencia del método.

7. Conclusiones
Tras modificaciones aplicadas al método de Newton-Raphson, finalmente obtuvimos un
problema de optimización con restricciones, tal como señaló el Dr. Joaquín Peña durante mi
presentación.
El costo en operaciones de la reparametrización es mayor, sin embargo, otorga robustez
al modelo. Esta característica en problemas estadísticos es primordial, puesto que queremos
que los parámetros no sean sensibles a pequeñas alteraciones. Asimismo, nos da consistencia
con los datos de la muestra dada.
Por otra parte, podemos reducir la tolerancia a un valor más pequeño, ya que en las
últimas iteraciones de la reparametrización, la varianza es mínima.

8. Bibliografía
• G., Storivik, Numerical Optimization of Likelihoods: Additional literature for
STK2120, Universidad de Oslo, Febrero 2011.
• D. R.,Cox & D. Oakes, Analysis of Survival Data. Chapman & Hall, Londeres, 1984.
• J.G., Kalbfleisch, Probability and Statistical Inference Vol. 2, Segunda edición,
Sprinber-Verlag, Nueva York, 1985.

PROYECTO FINAL MÉTODOS NUMÉRICOS 16