Oi Cesar,esse é o princípio da máxima verossimilhança... maximizando a função de log-verossimilhança (que é mais simples que a verossimilhança) o valor máximo é a estimativa do parâmetro estudado. Como estou simulando dados, ou seja, tenho uma amostra controlada, gerada computacionalmente e que sei a priori qual o valor do parâmetro que foi utilizado para gerar essa amostra, então espero que essa estimativa de máxima verossimilhança seja bastante próximas do valor do parâmetro. Na medida que o tamanho da amostra aumenta, é esperado que essa estimativa torne-se cada vez mais próxima desse valor do parâmetro devido a propriedade de consistência do estimador de máxima verossimilhança.Eu percebi que o código que eu estava utilizando estava incorreto... fiz algumas correções e os resultados melhoraram significativamente. A seguir o código correto:### Gerando a amostra baseando-se nos parâmetros iniciais### Considerando um parâmetro q positivo.q=1.5eta=5n=100u<-runif(n)y = eta*((1-(u)^((1-q)/(2-q)))/(1-q))### Obtendo as estimativas dos parâmetros a partir da amostra gerada anteriormentevero <- function(par,x){q = par[1]eta = par[2]saida<-((sum(log(1 - ((1 - q)*x*(1/eta)))))/(1 - q)) + ((n)*log(2 - q)) + (n*log(1/eta))return(-saida)}saiday<-optim(par=c(1.8,4),fn=vero, method= "Nelder-Mead",x=y )q_chap<-saiday[1]$par[1]eta_chap<-saiday[1]$par[2]### Construindo os gráficos de log-verossimilhançapar.vals <- expand.grid(q=seq(1.1, 1.9, l = 25), eta=seq(2, 10, l = 25))dim(par.vals)f <- function(pars,dados) { ((sum(log(1 - ((1 - pars[1])*dados*(1/pars[2])))))/(1 - pars[1])) + (n*log(2 - pars[1])) + (n*log(1/pars[2]))}par.vals$L <- apply(par.vals, 1, f, dados = y)with(par.vals, persp(unique(q), unique(eta), matrix(L, ncol = length(unique(eta))), xlab = expression(q), ylab = expression(eta), zlab = expression(l(q, eta)), theta= 30, phi = 30))z<-as.matrix(par.vals)z1 <- z[order(z[,3],decreasing=T),]result<-c(z1[1,1],z1[1,2],z1[1,3])###Valores máximos para o gráfico da função de log-verossimilhança:result###Estimativas de Máxima verossimilhança:q_chapeta_chapApesar disso, o caso em que o q é negativo ainda não me da bons resultados ... alguém sabe o que pode está acontecendo, segue o código de um exemplo com o q negativo:### Gerando a amostra baseando-se nos parâmetros iniciais### Considerando um parâmetro q positivo.q=-1.5eta=5n=100u<-runif(n)y = eta*((1-(u)^((1-q)/(2-q)))/(1-q))### Obtendo as estimativas dos parâmetros a partir da amostra gerada anteriormentevero <- function(par,x){q = par[1]eta = par[2]saida<-((sum(log(1 - ((1 - q)*x*(1/eta)))))/(1 - q)) + ((n)*log(2 - q)) + (n*log(1/eta))return(-saida)}saiday<-optim(par=c(1.8,4),fn=vero, method= "Nelder-Mead",x=y )q_chap<-saiday[1]$par[1]eta_chap<-saiday[1]$par[2]### Construindo os gráficos de log-verossimilhançapar.vals <- expand.grid(q=seq(-2, 0, l = 25), eta=seq(2, 10, l = 25))dim(par.vals)f <- function(pars,dados) { ((sum(log(1 - ((1 - pars[1])*dados*(1/pars[2])))))/(1 - pars[1])) + (n*log(2 - pars[1])) + (n*log(1/pars[2]))}par.vals$L <- apply(par.vals, 1, f, dados = y)with(par.vals, persp(unique(q), unique(eta), matrix(L, ncol = length(unique(eta))), xlab = expression(q), ylab = expression(eta), zlab = expression(l(q, eta)), theta= 30, phi = 30))z<-as.matrix(par.vals)z1 <- z[order(z[,3],decreasing=T),]result<-c(z1[1,1],z1[1,2],z1[1,3])###Valores máximos para o gráfico da função de log-verossimilhança:result###Estimativas de Máxima verossimilhança:q_chapeta_chap
_______________________________________________
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.