Neste notebook do Jupyter vamos demonstrar a dedução matemática do estimador de máxima verossimilhança do parâmetro da distribuição geométrica. 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 massa da distribuição geométrica é
x, p, i, n = symbols('x p i n')
f = p*(1-p)**(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
É o valor do parâmetro $p$ 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 $p$ que faz a derivada da função de log-verossimilhança ser igual a zero. São duas etapas:
Aqui usamos o comando 'diff' para obter a derivada da log-verossimilhança em função do parâmetro $p$:
dLL = diff(LL,p)
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 $p$:
solve(dLL,p)