[R-br] [Dúvida] Estimação por Máxima Verossimilhança.

Rubem Kaipper Ceratti rubem_ceratti em yahoo.com.br
Quarta Junho 5 15:24:48 BRT 2013


Pedro,

A princípio, acho que você poderia tentar reparametrizar o modelo, colocando os parâmetros em escala logarítmica (p. ex. a = exp(par[1]); b = exp(par[2]); ...), e tentar alguma outra função de otimização (http://cran.r-project.org/web/views/Optimization.html). 

Além disso, seria uma boa tentar simular dados desta distribuição com parâmetros conhecidos e ver como se comportam as estimativas, em vez de tentar ajustar um conjunto de dados diretamente. 

Att.,
Rubem



________________________________
 De: Pedro Rafael <pedro.rafael.marinho em gmail.com>
Para: r-br em listas.c3sl.ufpr.br 
Enviadas: Quarta-feira, 5 de Junho de 2013 14:30
Assunto: [R-br] [Dúvida] Estimação por Máxima Verossimilhança.
 


Senhores tenho uma dúvida. Na verdade não é dúvida, apenas quero sugestões. Tenho uma função densidade de probabilidade "complicada". Trate-se de uma distribuição chamada Kwmarashwamy Weibull Poisson. Tenho alguns bancos de dados e gostaria de verificar o ajustamento dessa distribuição à estes bancos de dados. Estou estimando os parâmetros pelo método de máxima verossimilhança. Essa distribuição tem suporte nos reais positivos (x>0) e todos os seus parâmetros são positivos. Optei em utilizar o método L-BFGS-G para restringir a busca nos reais positivos. Segue abaixo o comando. Nesse exemplo não houve convergência. Percebi que os chutes iniciais influenciam muito as estimativas dos parâmetros no caso em que há convergência. Usando métodos de maximização diferentes em muitos casos há grandes diferenças nas estimativas.  Existe alguma forma mais tranquila e direta para encontrar as estimativas pelo método de máxima
 verossimilhança em R? O código segue abaixo:

vero <- function(par,x){
  a = par[1]
  b = par[2]
  c = par[3]
  lambda = par[4]
  beta = par[5]
  -sum(log((a*b*c*lambda*(beta^c)*(x^(c-1))*((1-exp(-(x*beta)^c))^(a-1)) *
     ((1-(1-exp(-(beta*x)^c))^a)^(b-1)) * 
              exp(-lambda*(1-(1-(1-exp(-(beta*x)^c))^a)^b) - (beta*x)^c))/(1-exp(-lambda))))
}

dados = c(17.23, 28.92, 33.00, 41.52,
          42.12, 45.60, 48.80, 51.84, 51.96, 54.12, 55.56, 67.80, 68.64, 68.64,68.88, 
          84.12, 93.12, 98.64, 105.12, 105.84, 127.92, 128.04, 173.40)

optim(par=c(1,1,1,1,1),fn=vero,
      method="L-BFGS-B",x=dados/1000, 
      lower=c(0.001,0.001,0.001,0.001,0.001), upper=c(Inf,Inf,Inf,Inf,Inf))

O engraçado é que essa distribuição é encaixada com a distribuição Weibull. Quando tento ajustar a Weibull à esses dados há convergência. O que vocês acham que devo fazer?

[   ],
Pedro Rafael Diniz Marinho.
_______________________________________________
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.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130605/c2234b96/attachment.html>


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