[R-br] Comportamento da Log-Verossimilhança - Dist. q-Exponencial

Romero Luiz M. Sales Filho romero.sfilho em gmail.com
Sexta Março 11 13:31:20 BRT 2016


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.5
eta=5
n=100
u<-runif(n)
y = eta*((1-(u)^((1-q)/(2-q)))/(1-q))
### Obtendo as estimativas dos parâmetros a partir da amostra gerada
anteriormente
vero <- 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ça
par.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_chap
eta_chap

Apesar 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.5
eta=5
n=100
u<-runif(n)
y = eta*((1-(u)^((1-q)/(2-q)))/(1-q))
### Obtendo as estimativas dos parâmetros a partir da amostra gerada
anteriormente
vero <- 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ça
par.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_chap
eta_chap
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160311/fab6848b/attachment.html>


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