Você está na página 1de 9

ANÁLISE BAYESIANA DA DISTRIBUIÇÃO EXPONENCIAL

LOGARÍTMICA

Thais Sena de Paula Domingues

PRESIDENTE PRUDENTE
2018
Objetivo
O objetivo é fazer análise bayesiana nos dados da distribuição Exponencial
Logarítmica:
x<-c(0.00,1.41,1.33,0.45,0.90,2.06,3.16,1.14,3.39,1.38,0.10,0.71,2.97,0.92,0.95,
0.31,0.37,0.30,0.15,1.19,1.26,0.69,3.22,1.78,0.84,0.15,1.34,0.64,1.17,2.20,0.71,
0.20,0.71,0.57,0.19,0.84,0.10,0.19,0.04,3.36,0.05,0.15,1.58,2.41,0.85,0.22,0.02,
2.57,0.48,0.19).
Distribuição Exponencial Logarítmica
Exponencial Logarítmica (EL) é uma distribuição do tempo de vida com taxa de falha
decrescente. Com função de densidade de probabilidade dada por:

com x>0, p ϵ (0,1) o parâmetro de forma e β>0 o parâmetro de escala.


Função de Verossimilhança

Prioris

A priori para p tem distribuição Beta, com a p=bp=1 que é igual a U(0,1), pois o
intervalo de p é [0,1]. A priori para β tem distribuição Gama, com a β=b β=0.01
(hiperparâmetros retirados da dissertação da Lívia Matos Garcia).
Posteriori

Resultados
Estimador e desvio padrão a posteriori de p:
A média de p é 0.6010287 e o desvio padrão de p é 0.2262472
Estimador e desvio padrão a posteriori de β:
A média de β é 0.8381904 e o desvio padrão de β é 0.2776308.
Gráficos da posteriori de p e de β

Figura 1:Densidades marginais posteriores dos parâmetros p e β.

Gráficos da cadeia de Markov gerada


Figura 2: Saída MCMC e gráficos de autocorrelação para distribuição posteriori.
Os gráficos do MCMC na Figura 2 sugerem que alcançamos convergência para
β mais rápido do que para p .

Intervalo de Credibilidade de 95% para p: [0.1828019;0.9649868]


Intervalo de Credibilidade de 95% para β: [0.5154256;1.174414]
Figura 3: Histograma e curva para verificar ajustamento.

Comandos no R:
# fornecer o número de iterações
R=20000
# dimensão dos parâmetros
p=length(R+1)
beta=length(R+1)

n=50

x=c(0.00,1.41,1.33,0.45,0.90,2.06,3.16,1.14,3.39,1.38,0.10,0.71,2.97,0.92,0.95,
0.31,0.37,0.30,0.15,1.19,1.26,0.69,3.22,1.78,0.84,0.15,1.34,0.64,1.17,2.20,
0.71,0.20,0.71,0.57,0.19,0.84,0.10,0.19,0.04,3.36,0.05,0.15,1.58,2.41,0.85,
0.22,0.02,2.57,0.48,0.19)

# hiperparametro para a distribuição beta


a1=1
b1=1
# hiperparametro para a distribuição gama
a2=0.01
b2=0.01

#1. Função posteriori


posteriori <- function (a,b) {
veros<- ((-1/log(a))^n)*(b^n)*((1-a)^n)*exp(-b*sum(x))/prod(1-(1-a)*exp(-b*x))

priori <- dbeta(a,a1,b1)*dgamma(b,a2,b2)


posteriori= priori*veros
return(posteriori) }

ni1<- 1.0
ni2<- 1.0

#2. Inicializando o algoritmo


p[1]<-0.5
beta[1]<-9

#3. Variáveis auxiliares


#Primeiro conjunto de variáveis
prop1<-length(R)
aux1<-length(R)
num1<-length(R)
den1<-length(R)
h1<-length(R)
ratio1<-length(R)
#Segundo conjunto de variáveis
prop2<-length(R)
aux2<-length(R)
num2<-length(R)
den2<-length(R)
h2<-length(R)
ratio2<-length(R)

t<-rep(0,times=R)
j<-rep(0,times=R)

#4. Aplicando o algoritmo M-H


for (i in 1:R) {
prop1[i]<-rbeta(1,shape1=(ni1*p[i])/(1-p[i]),shape2=ni1)
aux1[i]<-posteriori(prop1[i],beta[i])/posteriori(p[i],beta[i])
num1[i]<-dbeta(p[i],shape1=(ni1*prop1[i])/(1-prop1[i]),shape2=ni1)
den1[i]<-dbeta(prop1[i],shape1=(ni1*p[i])/(1-p[i]),shape2=ni1)
h1[i]<-num1[i]/den1[i]
ratio1[i]<-h1[i]*aux1[i]
alpha1<-min(1,ratio1[i])
u1<-runif(1)
if (u1<alpha1) p[i+1]<-prop1[i] else { p[i+1]<-p[i]
t[i]<-1 }

prop2[i]<-rgamma(1,shape=beta[i]/ni2,scale=ni2)
aux2[i]<-posteriori(p[i+1],prop2[i])/posteriori(p[i+1],beta[i])
num2[i]<-dgamma(beta[i],shape=prop2[i]/ni2,scale=ni2)
den2[i]<-dgamma(prop2[i],shape=beta[i]/ni2,scale=ni2)
h2[i]<-num2[i]/den2[i]
ratio2[i]<-h2[i]*aux2[i]
alpha2<-min(1,ratio2[i])
u2<-runif(1)
if (u2<alpha2) beta[i+1]<-prop2[i] else { beta[i+1]<-beta[i]
j[i]<-1}
}

#Estimador e desvio padrão


mean(p)
sd(p)
mean(beta)
sd(beta)

#Gráfico da posteriori
par(mfrow=c(2,1))
par(mai=c(0.9,0.8,0.1, 0.1))
plot(density(p),xlab=expression(p),ylab=expression(paste("p(",p,"x)")),type="l",lty=4,c
ol=1,
main="")
par(mai=c(0.9,0.8,0.1, 0.1))
plot(density(beta),xlab=expression(beta),ylab=expression(paste("p(",beta,"x)")),type=
"l",lty=4,col=1,main="")

#Gráficos acf e ts.plot


par(mfrow=c(2,2))
par(mai=c(0.77,0.77,0.0, 0.07))
ts.plot(p,ylab=expression(p))
par(mai=c(0.77,0.77,0.45, 0.07))
acf(p,main=expression(p))
par(mai=c(0.77,0.77,0.0, 0.07))
ts.plot(beta,ylab=expression(beta))
par(mai=c(0.77,0.77,0.45, 0.07))
acf(beta,main=expression(beta))

#Intervalos de Credibilidade
quantile(p, probs = 0.025, na.rm = FALSE,names = TRUE,type = 7)
quantile(p, probs = 0.975, na.rm = FALSE,names = TRUE,type = 7)
quantile(beta, probs = 0.025, na.rm = FALSE,names = TRUE,type = 7)
quantile(beta, probs = 0.975, na.rm = FALSE,names = TRUE,type = 7)

#Histograma e curva
d=function(x)(-1/log(mean(p)))*((mean(beta)*(1-mean(p))*exp(-mean(beta)*x))/(1-(1-
mean(p))*exp(-mean(beta)*x)))
hist(x, prob = TRUE,ylim=c(0,2),ylab = "Densidade",xlab = "X",main = "")
lines(density(x),col=1,lwd =2)
curve(d,add=TRUE,col=4,lwd=2)

Você também pode gostar