Neste notebook do Jupyter vamos demonstrar a dedução matemática do estimador de máxima verossimilhança do parâmetro da distribuição exponencial. Para ver os resultados dos comandos de cada etapa coloque o mouse ao lado esquerdo da célula que tem os comandos e clique em 'Run this cell'
Antes de começar importamos a biblioteca de matemática simbólica do Python. Ela permite criar expressões, como funções e suas derivadas, e manipulá-las simbolicamente.
from sympy import *
init_printing()
Para uma dada observação $x_i$ a função de densidade probabilística da distribuição exponecial é
x, L, i, n = symbols('x \lambda i n')
f = L*exp(-L*Indexed(x,i))
f
É a soma dos logarítimos dos valores da função acima sobre todos os valores dos dados ($x_i$). Primeiro calculamos o logarítmo da função de massa:
lf = ln(f)
lf=expand_log(lf, force=true)
lf
e em seguida definimos a sua soma sobre todos os valores de $x_i$
LL = Sum(lf, (i,1,n))
LL=simplify(LL)
LL
O somatório $\sum_{i=1}^n 1$ nada mais é que $n$. Substituímos isto na função obtida acima temos:
g=Sum(1, (i,1,n))
LL=LL.subs(g,n)
LL
É o valor do parâmetro $\lambda$ que maximiza a função de log-verossimilhança (ou minimiza a de log-verossimilhança negativa). Sabemos que as funções têm derivadas zero em seus pontos máximos e mínimos. Então o truque para achar a expressão do mle é encontrar a expressão para o valor de $\lambda$ que faz a derivada da função de log-verossimilhança ser igual a zero. São duas etapas:
Usamos o comando 'diff' para obter a derivada da log-verossimilhança em função do parâmetro $\lambda$:
dLL = diff(LL,L)
dLL=simplify(expand(dLL))
dLL
Agora igualamos a derivada da função de log-verossimilhança a zero e resolvemos esta equação para o parãmetro $\lambda$:
solve(dLL,L)
Ou seja, o mle do único parâmetro da distribuição exponencial é o inverso da média amostral.