Como o Benilton e o Wagner pontuaram, problemas de otimização são por default de minimização e vc quer maximizar a sua função de verossimilhança. Quando vc chama a função optim vc está minimizando, e como não existe mínimo vc está tendo problemas. Basta trocar o parâmetro da função optim.
Abs Vinicius Em 26 de abril de 2014 07:31, Wagner Bonat <[email protected]> escreveu: > Vc precisa escrever o negativo da log-verossimilhança. Veja abaixo. > > Quanto aos warnings talvez os parametros tenham alguma restrição vc pode > usar o L-BFGS-B ou reparametrizar o modelo para evitar isso. > > n<-10000 > u<-runif(n) > z<-1.8 > beta<- 1.2 > dados1 = (1/(beta*(z-2)))*((u^((1-z)/(2-z))-1)/((1-z)/(2-z))) > > ## Definindo a função de verossimilhança > > vero <- function(par,x){ > q = par[1] > lambda = par[2] > saida <- ((sum(log(1 - ((1 - q)*x*lambda))))/(1 - q)) + ((n)*log(2 - q)) > + (n*log(lambda)) > return(saida) > } > > > optim(par=c(1.8,4),fn=vero, > method="BFGS",x=dados1) > $par > [1] 1.7828974 0.8629283 > > $value > [1] 628.0947 > > $counts > function gradient > 44 11 > > $convergence > [1] 0 > > $message > NULL > > There were 11 warnings (use warnings() to see them) > > > Em 26 de abril de 2014 01:33, Romero Luiz M. Sales Filho < > [email protected]> escreveu: > >> Caros amigos, >> >> estou precisando encontrar os estimadores para os parâmetros da dist. >> q-ponencial, cuja pdf é dada da seguinte forma: >> >> [image: { (2-q) \lambda e_q^{-\lambda x}}] >> >> onde, >> >> [image: e_q(x) = [1+(1-q)x]^{1 \over 1-q}]. >> >> Estou tendo problemas pois utilizando o pacote Optim do R, não ocorre >> convergência em alguns métodos, na verdade só há convergência usando o >> método SANN, e mesmo assim as estimativas estão muito diferentes dos >> parâmetros que foram utilizados para gerar uma amostra aleatória da dist. >> q-exp. >> >> O código utilizado no R é o seguinte: >> >> ## Gerando Valores de uma q-exponencial >> >> n<-10000 >> u<-runif(n) >> z<-1.8 >> beta<- 1.2 >> dados1 = (1/(beta*(z-2)))*((u^((1-z)/(2-z))-1)/((1-z)/(2-z))) >> >> ## Definindo a função de verossimilhança >> >> vero <- function(par,x){ >> q = par[1] >> lambda = par[2] >> ((sum(log(1 - ((1 - q)*x*lambda))))/(1 - q)) + ((n)*log(2 - q)) + >> (n*log(lambda)) >> } >> >> ## Otimizando os parâmetros - o método SANN sempre converge. >> >> optim(par=c(1.8,4),fn=vero, >> method="SANN",x=dados1 >> ) >> >> E a saída é a seguinte: >> >> $par >> [1] 1.000014 3.807168 >> >> $value >> [1] -284366598 >> >> $counts >> function gradient >> 10000 NA >> >> $convergence >> [1] 0 >> >> $message >> NULL >> >> Houve 50 ou mais avisos (use warnings() para ver os primeiros 50) >> >> >> Alguém pode me ajudar nessa questão, uma vez que as estimativas dos >> parâmetros estão muito diferentes dos parâmetros originais? >> >> Obrigado! >> >> Romero. >> >> _______________________________________________ >> 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 > LEG - Laboratório de Estatística e Geoinformação > UFPR - Universidade Federal do Paraná > > _______________________________________________ > 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. > -- *Vinicius Brito Rocha.* *Estatístico e Atuário * *M.Sc. Engenharia de Produção/PO*
_______________________________________________ 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.
