[R-br] Estimador de Máxima verossimilhança para parâmetros da dist. q-exponencial
Wagner Bonat
wbonat em gmail.com
Sábado Abril 26 07:31:30 BRT 2014
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:
>
> [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 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á
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140426/69873e8e/attachment.html>
Mais detalhes sobre a lista de discussão R-br