segunda-feira, 29 de outubro de 2012

Likelihood ou Verossimilhança.

Essa é uma palavra muito comum nos "outputs" de programas estatísticos, mas que eu demorei um pouco pra entender, se é que compreendo realmente.

Fazendo a disciplina oferecida pelo Brian Caffo no coursera (https://www.coursera.org/course/biostats) ele da um exemplo bem simples e legal.

Então vamos pensar pensar em uma moeda... na verdade não ja que moedas e bolinhas coloridas em caixinhas fazem muito pouco sentido pra mim :)

Voltando aquelas aranhas do post anterior, falamos da teoria de meta-populações, que é a forma que acho mais legal na biologia de "jogar moedas", a chance de um lugar estar ocupado ou não.

Vamos pensar que fomos olhar 4 arbustos, fomos la batemos com um pauzinho nele e em 3 arbustos caiu aranhas. Hummm
Então no primeiro estava ocupado por aranhas, o segundo idem, o terceiro não tinha aranhas e o quarto estava ocupado. Ou seja 3 arbustos com aranhas e 1 sem.

Então se pensarmos que cada arbusto tem uma chance de ter aranhas, tem sua chance de ocupação, qual a taxa de ocupação nesse exemplo?

Podemos perguntar da seguinte forma, se a taxa de ocupação for 50%, poderíamos ver esse resultado?

A resposta é  sim.
Usando o R, podemos simular essa situação usando a função rbinom, que simula amostras tiradas de uma distribuição binomial.
Vamos simular 100 exemplo pra ver se algum fica igual a nossa coleta de dados.

#Vamos somar todos os casos que tivemos 3 arbustos com aranhas
#e 1 arbusto sem aranha, ou seja a amostra tem tamanhos 4, e queremos
#aquelas que em 3 encontramos aranhas
sum(rbinom(100,4,prob=0.5)==3)

E temos:
Temos 22 casos idênticos ao que coletamos.

Mas pera ai, 3 arbustos com aranhas, um sem, talvez a chance de ocupação seja maior que 50%, e se repetirmos essa simulação com 60% de chance de ocupação?

sum(rbinom(100,4,prob=0.6)==3)

E vemos 37,  casos, olha ae muito mais casos ficam igual, estamos melhorando.

Mas podemos subir mais ainda, vamos tentar uma chance de ocupação de 80%

sum(rbinom(100,4,prob=0.8)==3)

Legal, agora vemos quase 50 casos, as vezes mais as vezes menos, claro que o número sempre varia, é uma simulação.

Mas a verosimilhança, ou likelihood, é exatamente isso, na verdade qualquer valor de chance de ocupação pode produzir resultados como os que observamos no campo, no entanto, a diferença é o quão comum veremos resultados idênticos aos que observamos no campo, na vida real para cada chance de ocupação que tentamos.

Ao realizar varias tentativas, vimos que algumas chances de ocupação dificilmente produziriam um resultado semelhante aquele que observamos, se tentarmos chances de ocupação ainda mais extremas, uma chance de ocupação de 20%, de 10%, ainda sim podemos observar algo como o que vimos no campo, mas é muito raro, pouco comum, então algo em torno de 80%  produz mais resultados semelhantes ao que vemos.

A verosimilhança é exatamente isso, essa exploração para saber qual o valor mais provável para um parâmetro baseado num conjunto de dados, nesse caso a chance de aranhas ocuparem os arbustos, e os nossos dados são exatamente os quatro arbustos que observamos.


Então nesse caso temos, a maior verosimilhança ali perto do 80%, o pico, mas a chance de ocupação poderia assumir outros valores também, mas 20% por exemplo seria pouco provável, olhem como da um valor baixo ali no gráfico.
E 1%? Poderia também, mas a chance é quase nenhuma. Ou seja usando o likelihood da pra resumir todo o processo acima a um gráfico.

























Bem, eu não vou entrar muito em formulas aqui, até porque eu sou péssimo com elas, mas da pra ter acho que ja da pra ter uma ideia melhor do que diabos é o likelihood, sendo que isso é usado pra todo tipo de parâmetro estimado.

O script para esse grafico é assim:

#
thetaVals <- span="span"> seq(0, 1, length = 1000)
maxL <- span="span"> .75 ^ 3 * .25 ^1
lVals <- span="span"> thetaVals ^ 3 * (1 - thetaVals) ^1 / maxL

#postscript("coinLikelihood.eps", width=4, height=4, horizontal = FALSE)
plot(thetaVals, lVals,
     type = "l",
     frame = F,
     xlab = expression(theta),
     ylab = "Likelihood",
     lwd = 2)
lines(range(thetaVals[lVals > 1 / 8]), c(1/8,1/8))
lines(range(thetaVals[lVals > 1 / 16]), c(1/16,1/16))


#

Copiado diretamente da aula do Brian Caffo
Mais material legal dele aqui se você pensa melhor com moedas :)
https://github.com/bcaffo/Caffo-Coursera

Nenhum comentário:

Postar um comentário