Estimación de Máxima Verosimilitud Utilizando la Función optim en R Juan F. Olivares-Pacheco* 15 de diciembre de 2006 Resumen En este trabajo se muestra el método de verosimilitud para la estimación de parámetros en la distribución normal a modo de ejemplo, utilizando el software estadı́stico R. Especı́ficamente se hará uso de la función optim explicando su utilización y forma de optimizar funciones. KEY WORDS: R, optim, máxima verosimilitud. * Departamento de Matemática, Universidad de Atacama, CHILE. E-mail: jolivares@mat.uda.cl 1 1. Introducción El método de máxima verosimilitud fue introducido primero por R. A. Fisher, genetista y experto en estadı́stica, en la década de 1920. La mayorı́a de los expertos en estadı́stica recomiendan este método, al menos cuando el tamaño muestral es grande, porque los estimadores resultantes tienen ciertas propiedades deseables de eficiencia. Definición 1.1 Sea X una variable aleatoria con función de probabilidad f (x|θ), donde θ es un parámetro desconocido. Sean X1 , . . . , Xn los valores observados en una muestra aleatoria de tamaño n. La función de verosimilitud de la muestra es: L(θ) = n Y f (xi |θ) (1) i=1 Debemos considerar que (1) es la función de densidad conjunta de la muestra aleatoria. Notemos que la función de verosimilitud es una función del parámetro desconocido θ. Definición 1.2 El estimador de máxima verosimilitud de θ es el valor de θ que maximiza la función de verosimilitud L(θ). En ocasiones es más simple maximizar la función log-verosimilitud que (1), dada por: l(θ) = log (L(θ)) = n X log f (xi |θ) (2) i=1 El método de máxima verosimilitud puede emplearse en situaciones donde existen varios parámetros desconocidos, θ1 , θ2 , . . . , θk ), que es necesario estimar. En tales casos, la función de verosimilitud es una función de los k parámetros desconocidos θ1 , θ2 , . . . , θk y los estimadores de máxima verosimilitud θ̂1 , θ̂2 , . . . , θ̂k se obtienen al igualar a cero las k derivadas parciales, dadas por: ∂L(θ1 , θ2 , . . . , θk ) , i = 1, 2, . . . , k ∂θi y resolver el sistema resultante. 2 2. Ejemplo Sea X1 , . . . , Xn una muestra aleatoria de una distribución normal. La función de verosimilitud es: L(θ) = √ µ = 1 2πσ 2 1 2πσ 2 e −(x1 −µ)2 2σ 2 ¶n/2 • ··· • √ 1 2πσ 2 e −(xn −µ)2 2σ 2 n P e (xi −µ)2 i=1 2σ 2 ası́ l(θ) = log(L(θ)) n 1 X n 2 (xi − µ)2 = − log(2πσ ) − 2 2 2σ i=1 Para encontrar los valores crı́ticos de µ y σ 2 debemos tomar las derivadas parciales de l(θ) con respecto a µ y σ 2 , igualarlas a cero y resolver las dos ecuaciones resultantes. Si se omiten los detalles, los estimadores máximos verosı́miles resultantes son: n µ̂ = σ̂ 2 = 3. 1X Xi n i=1 n P (Xi − X)2 i=1 n optim El comando optim en un método de optimización de funciones de propósito gen- eral, basado el los algoritmos Nelder-Mead, quasi-Newton y conjugate-gradient. La forma de utilizar este comando se muestra a continuación: optim(par, fn, method = c("L-BFGS-B"), lower = -Inf, upper = Inf, . . . ), donde par corresponde al valor inicial del parámetro a ser optimizado, fn la función a ser minimizada, method el método a ser utilizado, el método L-BFGS-B permite definir intervalos en donde tomara valores el o los parámetros que se desean buscar, lower y upper son los 3 lı́mites inferiores y superiores de los parámetros a encontrar, respectivamente, y ... argumentos adicionales que se van ha pasar a fn. Los valores que retorna el comando optim son: par que corresponde al conjunto de los mejores parámetros encontrados, var el valor de fn correspondiente a los parámetros encontrados, convergence la convergencia satisfactoria será indicada con un 0. Para más información consultar >help(optim), en R. 4. Un ejemplo práctico Consideremos que nos interesa encontrar los estimadores máximos verosı́miles de la densidad N (µ, σ 2 ), a utilizando la siguientes muestra aleatoria de tamaño 100, con valores iniciales para µ = 6 y σ = 3. 3,899 6,442 7,213 5,824 7,000 5,584 3,408 6,579 3,071 5,062 2,124 2,913 1,460 6,609 11,152 7,358 6,083 8,624 2,336 1,201 9,875 3,033 9,432 4,725 3,848 9,426 3,102 11,555 4,148 3,224 8,021 10,687 4,166 3,121 6,065 5,498 10,883 8,446 3,249 6,431 2,482 5,168 3,006 9,456 5,055 8,219 2,855 10,277 5,317 5,747 0,834 5,467 7,528 10,024 7,245 6,904 3,651 9,140 6,576 7,049 5,168 10,665 6,703 3,161 7,092 5,401 6,897 9,823 12,713 5,587 5,015 5,683 8,262 6,632 5,989 2,014 6,186 6,358 9,647 8,599 5,442 12,793 7,378 4,959 1,838 4,667 7,201 6,519 7,658 4,066 10,970 6,795 3,332 8,493 7,755 6,414 9,984 6,149 7,441 11,551 Esta muestra aleatoria es almacenada en R, de la siguiente manera: >muestra <c(3.899,...,11.551). Ya definida la variable muestra, que es un vector que contiene a la muestra aleatoria el siguiente paso es definir la función -log-verosimilitud. La cual se define de la siguiente forma: 4 funcionMenosLog <- function(p, x) { p1 <- p[1] p2 <- p[2] n <- length(x) f <- rep(0, n) for (i in 1:n) { f[i] <- -log(dnorm(x[i], p1, p2)) } sumaf <- sum(f) return(sumaf) } Ya definida en R esta función, ahora es el turno de utilizar el comando optim, como sigue: resultado <- optim(par = c(6, 3), fn = funcionMenosLog, method = c("L-BFGS-B"), lower = c(-Inf, 0), upper = c(Inf, Inf), x = muestra) Como se observa la salida de optim ha sido almacenada en una variable llamada resultado, entonces para acceder a las respectivas estimaciones, utilizamos lo siguiente: > resultado$par [1] 6.339275 2.730736 Donde 6,339275 corresponda a la estimación de µ y 2,730736 a la estimación de σ. Para ver el grado de convergencia, hacemos: > resultado$convergence [1] 0 Lo cual indica que la convergencia es satisfactoria. 5 Referencias [1] Devore, J. L. “Probabilidad y Estadı́stica para Ingenierı́a y Ciencias”. Quinta Edición. [2] Bolfarine, H. and Carneiro M. “Introducción a la Inferencia Estadı́stica”. Primera Edición. 6