Obrigado Wagner pela dica. Não conhecia o pacote bbmle. Na verdade sempre fui tentado a sempre implementar tudo. Porém, seria uma boa tentar utilizar o pacote.
Att. Em 5 de agosto de 2016 09:39, Wagner Bonat <[email protected]> escreveu: > Esse problema pode ocorrer por muitos motivos incluindo apenas uma má > aproximação do hessiano. > Eu recomendo algumas coisas: > 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. > 2 - Calcule ao menos a primeira derivada da sua log-verossimilhança e use > no BFGS. > 3 - Calcule o hessiano numericamente porém separado, vc pode usar por > exemplo o pacote numDeriv. > > Att > > Em 4 de agosto de 2016 22:39, Pedro Rafael via R-br < > [email protected]> escreveu: > >> Caros, >> >> 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. >> >> 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. >> >> 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. >> >> # PDF >> pdf_ekww <- function(par,x){ >> a = par[1] >> b = par[2] >> c = par[3] >> alpha = par[4] >> beta = par[5] >> g = dweibull(x = x, shape = alpha, scale = beta, log = FALSE) >> G = pweibull(q = x, shape = alpha, scale = beta, lower.tail = TRUE, >> log.p = FALSE) >> a * b * c * g * G^(a-1) * (1-G^a)^(b-1) * (1-(1-G^a)^b)^(c-1) >> } >> >> # Quantilica >> sample_ekww <- function(n,par){ >> a = par[1] >> b = par[2] >> c = par[3] >> alpha = par[4] >> beta = par[5] >> u = runif(n=n,min=0, max=1) >> qweibull(p = (1-(1-u^(1/c))^(1/b))^(1/a), shape = alpha, scale = beta, >> lower.tail = TRUE, log.p = FALSE) >> } >> set.seed(1987) >> >> vector_par_true = c(1,1,1,1,1) >> data = sample_ekww(n = 1000, par = vector_par_true) >> >> # Função de log-verossimilhança. >> obj_ekww = function(par,x){ >> sum(log(pdf_ekww(par,x))) >> } >> >> # Maximizando log-verossimilhança. >> result = optim(fn = obj_ekww, par = c(0.5,1.4,1,1,1), method = "BFGS", x >> = data, hessian = TRUE, control=list("fnscale"=-1)) >> >> diag(solve(-result$hessian)) >> >> 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? >> >> 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. >> >> Obrigado desde já, >> Pedro Rafael. >> >> >> _______________________________________________ >> R-br mailing list >> [email protected] >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >> código mínimo reproduzível. >> > > > > -- > Wagner Hugo Bonat > ------------------------------------------------------------ > ---------------------------------- > Department of Mathematics and Computer Science (IMADA) > University of Southern Denmark (SDU) and > Laboratório de Estatística e Geoinformação (LEG) > Universidade Federal do Paraná (UFPR) > >
_______________________________________________ R-br mailing list [email protected] https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
