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

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.

Informe o intervalo desejado usando os argumentos lower e upper da funcao optim. b 2012/3/21 Pedro Rafael <pedro.rafael.marinho@gmail.com>:
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 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.

FYI: vc vai precisar fazer "as contas" de novo, pq sua verossimilhanca nao esta' correta. 2012/3/21 Benilton Carvalho <beniltoncarvalho@gmail.com>:
Informe o intervalo desejado usando os argumentos lower e upper da funcao optim. b
2012/3/21 Pedro Rafael <pedro.rafael.marinho@gmail.com>:
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 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.

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@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-tp... To unsubscribe from R-br, click here. NAML
-- Saudações, Pedro Rafael Diniz Marinho. Estatístico - Secretaria de Estado da Saúde - PB.

Pedro, neste caso, vc precisa usar method="L-BFGS-B". Att., Rubem ________________________________ De: Pedro Rafael <pedro.rafael.marinho@gmail.com> Para: r-br@listas.c3sl.ufpr.br Enviadas: Quarta-feira, 21 de Março de 2012 20:48 Assunto: Re: [R-br] [Dúvida] Máxima Verossimilhança no R. 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 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@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@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-tp... 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@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.
participantes (3)
-
Benilton Carvalho
-
Pedro Rafael
-
Rubem Kaipper Ceratti