[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