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 <[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:

{ (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
[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.

Responder a