[R-br] [Dúvida] Máxima Verossimilhança no R.

Benilton Carvalho beniltoncarvalho em gmail.com
Quarta Março 21 21:10:14 BRT 2012


Em teoria, vc deve ter recebido um aviso dizendo que a especificacao
de limites funciona apenas com L-BFGS-B...

Apenas a titulo de ilustracao, ja' que vc ja' resolveu o problema da
sua funcao, eu resolveria usando do seguinte modo:

myLL <- function(theta, y) -sum(dbeta(y, theta[1], theta[2], log=TRUE))
optim(c(1,1), myLL, y=dados, method="L-BFGS-B", lower=c(.1, .1),
upper=c(40, 40))

Ou, ate' mesmo:

library(stats4)
myLL0 <- function(t1, t2) -sum(dbeta(dados, t1, t2, log=TRUE))
fit <- mle(myLL0, start=list(t1=1, t2=1), method="L-BFGS-B", lower=rep(.1, 2))
plot(profile(fit)) ## deve demorar pelo volume dos dados
confint(fit)

b

2012/3/21 Pedro Rafael <pedro.rafael.marinho em gmail.com>:
> Realmente Benilton. Existia um problema na minha função de log-verossimilhança.
>
> Correção:
>
> ########################################
> dados = rbeta(1000000,1,3) # onde p = 1 e q = 3.
> hist(dados) # Cara dos dados.
> log.verossimilhanca <- function(teta,y){
>  p = teta[1]
>  q = teta[2]
>  logl <-sum((p-1)*log(y)+(q-1)*log(1-y)+log(gamma(p+q)) -
> log(gamma(q)) - log(gamma(p)))
>  return(-logl)
> }
> optim(theta <- c(1,1),fn =
> log.verossimilhanca,y=dados,method="Nelder-Mead", lower =
> c(0.001,0.001),
>      upper = c(40,40))
>
> Em 21 de março de 2012 20:33, beniltoncarvalho [via R-br]
> <ml-node+s2285057n4494104h1 em n4.nabble.com> escreveu:
>> FYI: vc vai precisar fazer "as contas" de novo, pq sua verossimilhanca
>> nao esta' correta.
>>
>> 2012/3/21 Benilton Carvalho <[hidden email]>:
>>
>>> Informe o intervalo desejado usando os argumentos lower e upper da
>>> funcao optim. b
>>>
>>> 2012/3/21 Pedro Rafael <[hidden email]>:
>>>> Pessoal estou com um problema para estimar os parâmetros de dados com
>>>> distribuição Beta com parâmetros p e q. Gerei aleatoriamente um
>>>> conjuntos de dados com distribuição densidade de probabilidade beta no
>>>> intervalo (0,1). Encontrei a distribuição de log verossimilança e como
>>>> não existe solução fechada para os parâmetros p e q, temos que estimar
>>>> por métodos numéricos como o de Newton Raphson, BFGS, etc.
>>>>
>>>> Código:
>>>>
>>>> ########################################
>>>> dados = rbeta(1000000,1,3) # onde p = 1 e q = 3.
>>>> hist(dados) # Cara dos dados.
>>>> log.verossimilhanca <- function(teta,y){
>>>>  p = teta[1]
>>>>  q = teta[2]
>>>>  logl <-sum((1-p)*log(y)+(1-q)*log(1-y)+log(gamma(p+q)) -
>>>> log(gamma(q)) - log(gamma(p)))
>>>>  return(-logl)
>>>> }
>>>> optim(theta <- c(1,1),fn = log.verossimilhanca,y=dados,method="BFGS")
>>>>
>>>> Como informar o espaço paramétrico de cada um dos parâmetros da
>>>> distribuição, no caso particular da distribuição beta ambos sendo
>>>> maiores que zero?
>>>>
>>>> --
>>>> Saudações,
>>>> Pedro Rafael Diniz Marinho.
>>>> _______________________________________________
>>>> R-br mailing list
>>>> [hidden email]
>>>> 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.
>> _______________________________________________
>> R-br mailing list
>> [hidden email]
>> 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.
>>
>>
>> ________________________________
>> If you reply to this email, your message will be added to the discussion
>> below:
>> http://r-br.2285057.n4.nabble.com/R-br-Duvida-Maxima-Verossimilhanca-no-R-tp4494037p4494104.html
>> To unsubscribe from R-br, click here.
>> NAML
>
>
>
> --
> Saudações,
> Pedro Rafael Diniz Marinho.
> Estatístico - Secretaria de Estado da Saúde - PB.
> _______________________________________________
> 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.


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