[R-br] Estimador de Máxima verossimilhança para parâmetros da dist. q-exponencial

Paulo Justiniano paulojus em leg.ufpr.br
Domingo Abril 27 16:27:09 BRT 2014


Complementando o comentário do Vinicius
voce tem 2 opcoes

- 1. faça sua função retornar o negativo da (log)verossimilhnaça
- 2. chame a optim() com a opções control=list(fnscale=-1)



On Sat, 26 Apr 2014, Vinicius Brito Rocha wrote:

> 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 <wbonat em gmail.com> 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 <romero.sfilho em gmail.com> escreveu:
>       Caros amigos,
> estou precisando encontrar os estimadores para os parâmetros da dist. q-ponencial, cuja pdf
> é dada da seguinte forma:
> 
> { (2-q) \lambda e_q^{-\lambda x}}
> 
> onde, 
> 
> 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
> R-br em listas.c3sl.ufpr.br
> 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
> R-br em listas.c3sl.ufpr.br
> 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
> 
> 
> 
>


Mais detalhes sobre a lista de discussão R-br