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

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.

Usando o seu proprio exemplo, os valores que obtenho sao: ## SANN $par [1] 1.799498 1.174812 ## Nelder-Mead $par [1] 1.799255 1.178758 ## BFGS $par [1] 1.799152 1.174383 ## CG $par [1] 1.832573 3.914753 ## L-BFGS-B => valores finitos requeridos ## Brent => unidimensional A informacao relevante, no manual, segue FYI: By default ‘optim’ performs minimization, but it will maximize if ‘control$fnscale’ is negative. ‘optimHess’ is an auxiliary function to compute the Hessian at a later stage if ‘hessian = TRUE’ was forgotten. b Em 25 de abril de 2014 20:33, Romero Luiz M. Sales Filho < romero.sfilho@gmail.com> 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 R-br@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.

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@gmail.com> 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 R-br@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á

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@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@gmail.com> 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 R-br@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@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*

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@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@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@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@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
participantes (5)
-
Benilton Carvalho
-
Paulo Justiniano
-
Romero Luiz M. Sales Filho
-
Vinicius Brito Rocha
-
Wagner Bonat