<div dir="ltr"><div><div><div><div><div><div>Esse problema pode ocorrer por muitos motivos incluindo apenas uma má aproximação do hessiano.<br></div>Eu recomendo algumas coisas:<br></div>1 - Calcule a verossimilhança perfilhada de cada parâmetro. Isso vai de dar certeza que o algoritmo convergiu e te mostrar a cara da função. De acordo com o comportamento da profile likelihood vc pode tentar alguma reparametrização pra melhorar o comportamento do algoritmo numerico. Eu usaria o pacote bbmle que vai fazer isso automaticamente pra vc.<br></div>2 - Calcule ao menos a primeira derivada da sua log-verossimilhança e use no BFGS.<br></div>3 - Calcule o hessiano numericamente porém separado, vc pode usar por exemplo o pacote numDeriv.<br></div><br></div>Att<br></div><div class="gmail_extra"><br><div class="gmail_quote">Em 4 de agosto de 2016 22:39, Pedro Rafael via R-br <span dir="ltr"><<a href="mailto:r-br@listas.c3sl.ufpr.br" target="_blank">r-br@listas.c3sl.ufpr.br</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>Caros,<br><br></div>sabemos que a matriz Hessiana multiplicada por -1 da função de log-verossimilhança nos fornecem a matriz de informação observada que converge assintoticamente para a matriz de informação esperada. A diagonal principal da matriz inversa da informação esperada nos dá as variâncias os estimadores de máxima verossimilhança.<br><br></div>Um fato importante para o o questionamento que vou fazer é que estou fazendo uso da matriz de informação observada de modo a ter ao menos uma aproximação da variância dos estimadores de máxima verossimilhança obtidos numericamente pelo método BFGS. <br><br></div>O problema é que estou obtendo em alguns caros que a solve(-diag(hessiana)) negativa o que não era de se esperar. Vejam se possível o código.<br><br></div><div># PDF<br></div><div>pdf_ekww <- function(par,x){<br> a = par[1]<br> b = par[2]<br> c = par[3]<br> alpha = par[4]<br> beta = par[5]<br> g = dweibull(x = x, shape = alpha, scale = beta, log = FALSE)<br> G = pweibull(q = x, shape = alpha, scale = beta, lower.tail = TRUE, log.p = FALSE)<br> a * b * c * g * G^(a-1) * (1-G^a)^(b-1) * (1-(1-G^a)^b)^(c-1)<br>}<br><br></div><div># Quantilica<br></div><div>sample_ekww <- function(n,par){<br> a = par[1]<br> b = par[2]<br> c = par[3]<br> alpha = par[4]<br> beta = par[5]<br> u = runif(n=n,min=0, max=1)<br> qweibull(p = (1-(1-u^(1/c))^(1/b))^(1/a), shape = alpha, scale = beta, lower.tail = TRUE, log.p = FALSE)<br>}<br>set.seed(1987)<br><br>vector_par_true = c(1,1,1,1,1)<br>data = sample_ekww(n = 1000, par = vector_par_true)<br><br></div><div># Função de log-verossimilhança.<br></div><div>obj_ekww = function(par,x){<br> sum(log(pdf_ekww(par,x)))<br>}<br><br></div><div># Maximizando log-verossimilhança.<br></div><div>result = optim(fn = obj_ekww, par = c(0.5,1.4,1,1,1), method = "BFGS", x = data, hessian = TRUE, control=list("fnscale"=-1))<br><br>diag(solve(-result$hessian))<br><br></div><div>Observem que o primeiro elemento do vetor logo acima é negativo o que não deveria ser verdade. Notem também que houve convergência segundo o critério de parada da função optim, em que convergence é igual a zero. O que para vocês podem estar provocando esse problema? A função objetivo é complicada a ponto de provocar problemas na convergência do algoritmo vindo por sua vez acarretar esse tipo de problema?<br><br></div><div>Digo isso porque essas novas classes de distribuições de probabilidade por apresentar diversos parâmetros produzem log-verossimilhanças muito complicadas incluindo problemas de regiões aproximadamente planas bem como problemas piores como log-verossimilhanças monótonas. <br><br></div><div>Obrigado desde já,<br></div><div>Pedro Rafael.<br></div><div><br></div></div>
<br>______________________________<wbr>_________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/<wbr>cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-<wbr>guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Wagner Hugo Bonat<br>----------------------------------------------------------------------------------------------<br>Department of Mathematics and Computer Science (IMADA)<br>University of Southern Denmark (SDU) and<br>Laboratório de Estatística e Geoinformação (LEG)<br>Universidade Federal do Paraná (UFPR)<br><br></div></div></div></div></div>
</div>