Sei sulla pagina 1di 21

Universidade de So Paulo

Instituto de Matemtica e Estatstica


Bacharelado em Estatstica

Uma anlise Bayesiana sobre


as idades de incio do TOC e de
Transtornos de Humor
Trabalho produzido para a disciplina de Anlise Bayesiana

Autores:
Gerson Kumagaia
Gilciani Cordeiro
Renato Leone Moretto
Simone Bega Harnik
Valdecir Marvulle

Uma anlise Bayesiana sobre as idades de incio do TOC e de


Transtornos de Humor
Gerson Kumagaia
Gilciani Cordeiro
Renato Leone Moretto
Simone Bega Harnik
Valdecir Marvulle

Introduo
O objetivo deste artigo relacionar as idades de incio da ocorrncia de
Transtorno Obsessivo Compulsivo (TOC) e de incio de Transtornos de Humor. Para
tanto, foi adotada a seguinte estratgia:
Breve anlise descritiva para visualizao das principais caractersticas das
variveis fornecidas.
Teste de correlao bayesiana, efetuado com auxlio de pacote especifico
no R.
Ajuste de primeiro modelo e testes Full Bayesian Significance Test (FBST).
Ajuste de segundo modelo e testes FBST.
Verificou-se que h correlao fraca entre as idades de incio da ocorrncia de
TOC e de Transtornos de Humor, bem como diferena entre as idades de incio.
aceitvel afirmar que a idade de incio do TOC corresponde metade da idade de incio
dos Transtornos de Humor.

Apresentao das variveis


O banco de dados fornecido para a anlise apresentava as seguintes variveis
sobre 1001 pacientes:
ID: cdigo do paciente
IdadeAtual: idade do paciente, em anos
InicioTOC: idade em que o paciente desenvolveu Transtorno Obsessivo
Compulsivo (TOC), em anos
Humor: presena ou ausncia de transtorno de Humor
2

InicioHumor: idade em que o paciente desenvolveu Transtorno de Humor,


em anos (possui censuras)
Para a realizao das anlises, foi construda mais uma varivel auxiliar, que
recebeu o nome de InicioHumorModificada. Ela computa as idades de ocorrncia de
Transtornos de Humor, para os que tm este diagnstico; e, para os que no tm, mas
ainda podem desenvolver, apresenta a idade atual do paciente.

Anlise descritiva
IdadeAtual
A idade dos pacientes apresenta as seguintes medidas-resumo:

Mnimo

1 Quartil

Mediana

Mdia

3 Quartil

Mximo

9,0

25,0

32,0

34,9

44,0

82,0

O histograma a seguir apresenta a distribuio das idades:

Verifica-se, portanto, uma maior concentrao de pacientes com idades de


at 35 anos, aproximadamente.

InicioTOC
Todos os pacientes da amostra apresentam TOC. A tabela a seguir apresenta
as medidas-resumo, e, na sequncia fornecido o histograma:

Mnimo

1 Quartil

Mediana

Mdia

3 Quartil

Mximo

3,0

7,0

10,0

12,6

15,0

60,0

Humor
Ao todo, h 704 pacientes que apresentam transtornos de humor, e 297, que
no apresentam.

InicioHumor
O incio do transtorno de humor foi registrado em 608 dos 704 pacientes. Em
96, no h informaes disponveis. A tabela a seguir apresenta as medidas-resumo, e,
na sequncia fornecido o histograma:

Mnimo

1 Quartil

Mediana

Mdia

3 Quartil

Mximo

2,0

16,0

21,5

24,3

30,0

68,0

InicioHumorModificada
Esta varivel apresenta a idade de incio dos Transtornos de Humor, para
pacientes que os possuem, e a idade atual, para pacientes no diagnosticados com
transtornos de humor.

Mnimo

1 Quartil

Mediana

Mdia

3 Quartil

Mximo

2,0

18,0

24,0

27,4

35,0

67,0

InicioTOC x InicioHumorModificada
O grfico a seguir apresenta a disperso da idade de incio dos Transtornos de
Humor (computada a idade atual, quando no h ocorrncia), com relao idade de
incio da ocorrncia de TOC. Verifica-se pouca correlao linear, que decorre,
principalmente dos pontos que escapam ao canto superior direito. Nos demais pontos,
aparentemente, h uma nuvem o que indicativo de baixa correlao linear.

Teste de correlao bayesiana


O teste de correlao bayesiana foi encontrado no blog de pesquisa de
Rasmus Baath, estudante de phD na Sucia. Nas referncias pode ser encontrado o link
para o teste. Basicamente, o modelo para teste de correlao bayesiana assume como
priori uma distribuio t bivariada. A justificativa para assumir esta priori que ela tem
caudas mais pesadas, o que amenizaria o efeito de pontos discrepantes. Conforme sua
descrio no site, o modelo tem seis parmetros: as mdias das duas distribuies
marginais, os desvios-padres, o grau de liberdade e a coeficiente de correlao. Para
a correlao, adotada uma priori no informativa uniforme.
O modelo resumido na imagem a seguir, fornecida no blog do autor:

Realizamos o teste de correlao fornecido pelo autor, com os seguintes


resultados apresentados pelo R:
Model parameters
rho: the correlation

between

InicioTOC[!is.na(InicioHumorModificada)]

and

InicioHumorModificada[!is.na(InicioHumorModificada)]
mu[1]: the mean of InicioTOC[!is.na(InicioHumorModificada)]
sigma[1]: the scale of InicioTOC[!is.na(InicioHumorModificada)] , a consistent
estimate of SD when nu is large.
mu[2]: the mean of InicioHumorModificada[!is.na(InicioHumorModificada)]
sigma[2]: the scale of InicioHumorModificada[!is.na(InicioHumorModificada)]
nu: the degrees-of-freedom for the bivariate t distribution

Measures
mean
rho
mu[1]

sd

HDIlo

HDIup %<comp %>comp

0.231 0.035 0.161 0.299


11.043 0.202 10.648 11.442

0
0

1
1

mu[2]
24.938 0.426 24.076 25.746
sigma[1] 5.041 0.186 4.675 5.404

0
0

1
1

sigma[2] 10.420 0.354


nu
4.343 0.470

0
0

1
1

9.727 11.112
3.496 5.278

'HDIlo' and 'HDIup' are the limits of a 95% HDI credible interval.
'%<comp' and '%>comp' are the probabilities of the respective parameter being
smaller or larger than 0.
Quantiles
q2.5%
0.161

rho
mu[1]
mu[2]

q25% median
0.208 0.232

q75% q97.5%
0.255 0.300

10.642 10.906 11.042 11.178 11.439


24.101 24.652 24.938 25.227 25.773

sigma[1]
sigma[2]

4.681 4.915 5.037 5.165 5.415


9.751 10.179 10.415 10.652 11.139

nu

3.530

4.008

4.311

4.638

5.342

interessante observar que o modelo ajustado pelo pacote j oferece o


intervalo de credibilidade para a correlao, que, no caso, vai de 0,161 a 0,300, tendo
como o valor mais crvel, a mediana: 0,232.
Ao mesmo tempo, tambm so fornecidos os intervalos de credibilidade para
as idades mdias de incio de TOC e de incio dos Transtornos de Humor. Trata-se,
portanto, de ferramenta de simples execuo, aps a instalao dos pacotes
necessrios. Por esse teste, possvel afirmar que as mdias das idades de incio de
TOC e Transtornos de Humor so distintas, conforme intervalos de credibilidade
fornecidos.
A informao sobre a correlao, bem como a visualizao dos dados,
condensada no grfico a seguir:

O pacote tambm fornece o seguinte diagnstico do ajuste:


Iterations = 601:5600
Thinning interval = 1
Number of chains = 3
Sample size per chain = 5000
Diagnostic measures
rho
mu[1]
mu[2]

mean
sd mcmc_se n_eff Rhat
0.231 0.035
0.000 8958 1.001
11.043 0.202
24.938 0.426

0.003
0.005

6096 1.000
6201 1.000

sigma[1] 5.041 0.186


sigma[2] 10.420 0.354

0.003
0.005

4123 1.000
4789 1.000

nu

0.008

3577 1.002

4.343 0.470

mcmc_se: the estimated standard error of the MCMC approximation of the mean.
n_eff: a crude measure of effective MCMC sample size.
Rhat: the potential scale reduction factor (at convergence, Rhat=1).

O resultado das iteraes de MCMC apresentado em grfico, garantindo a


visualizao de que a cadeia de Markov percorreu de maneira aleatria os valores da
posteriori em cada um dos seis parmetros do modelo.

Ajuste de primeiro modelo


O primeiro modelo ajustado para a anlise dos dados seguiu artigo de Irony
et. al. (1999), em que apresentado o conceito do FBST. No artigo, modelado o
tempo de sobrevivncia de painis de LED. O artigo interessante para o problema em
questo, pois possvel entender as idades at a ocorrncia de TOC e de Transtornos
de Humor como um problema de anlise de sobrevivncia.

10

Foi adotada priori no informativa e posteriori Weibull truncada, com trs


parmetros: , e . O parmetro diz respeito ao tempo inicial de ocorrncia de TOC
e Transtorno de Humor; est associado ao risco de desenvolver TOC, e quando
maior que 1, indica que o risco crescente; e d uma medida aproximada do 63
percentil da idade de ocorrncia de TOC e Transtorno de Humor.
Ajustou-se o modelo, conforme artigo de Irony et. al., para cada uma das
distribuies marginais: idadeTOC e idadeHumorModificada. Adotou-se o log das
posterioris para maximizao, pela facilidade de trabalhar com eles. Os logs das
posteriores (fl) so assim definidos:

( )
(

(
)

)
(

( )

Os tempos ti, correspondem aos casos que apresentaram TOC ou Transtorno


de Humor. Os tempos tj correspondem s idades atuais para pacientes que no
apresentaram transtornos de humor. Como no h pacientes sem TOC, no log da
posteriori para os casos de TOC no h a soma de rlj.
Aps a construo do log da verossimilhana para cada uma das duas
variveis, conforme descrito, obtivemos as estimativas de mxima verossimilhana
para os parmetros, bem como a mdia das idades de incio de TOC e Transtornos de
Humor.

Mdia

IdadeTOC

0,00

1,85

14,31

12,71

IdadeHumorModificada

0,00

1,98

36,91

32,71

11

Para a construo de testes quanto aos parmetros, assumimos a hiptese de


ausncia de correlao, uma vez que a correlao bayesiana foi estimada em 0,232 e
fraca. Para prximos estudos fica a possibilidade de construo da distribuio
conjunta a partir da funo de cpula, que liga as distribuies acumuladas marginais.
Verificamos que a otimizao da funo conjunta para um nico vetor de
parmetros leva s seguintes estimativas:

Otimizao log conjunta

Mdia

0,00

1,49

24,05

21,73

Realizamos, para a hiptese de igualdade de parmetros para a idade de incio


de TOC e de Transtornos de Humor, um FBST. Foi utilizado o algoritmo de MetropolisHastings por random walk para amostrar os logs das posterioris para TOC e
Transtornos de Humor. Uma amostra final foi tomada somando os dois logs.
Verificou-se que a medida de evidncia para o caso de igualdade de
parmetros foi nula. Portanto, pode-se afirmar que os parmetros de ajuste das duas
Weibulls so distintos, bem como suas mdias. O cdigo em R para os ajustes ser
fornecido ao fim deste artigo.

Ajuste de segundo modelo


Para o segundo ajuste, assumimos a idade de ocorrncia de TOC e
Transtornos de Humor como variveis exponenciais, dados os parmetros e ,
respectivamente:
( )

( )

)
)

Adotamos tambm as prioris dos parmetros e dadas por funes Gamas,


ou seja, Gama (1, 1). Tal escolha se deve ao fato de que os parmetros e modelam
o inverso das mdias de idade de ocorrncia de TOC e Transtornos de Humor. Assim,
para que a mdia se d em qualquer ponto da vida, os parmetros devem variar de

12

cerca de 1/1 a 1/80. Nesse sentido, a Gama (1, 1) tem as boas propriedades, conforme
sua densidade construda no Wolfram Alpha:

As prioris sero atualizadas pela posteriori e, ao fim, a Gama inicial adotada


ser relativizada.
Para encontrarmos as posterioris de e , dadas as idades de ocorrncia de
TOC e de Transtorno de Humor, vamos considerar apenas os pacientes que possuem
os dois transtornos, e vamos supor

independentes (o que corroborado pela

fraca correlao encontrada entre estas variveis e pelo grfico de disperso entre
elas, tpico de variveis independentes). Portanto, teremos:

Portanto:
[

Similarmente:
)

Considerando apenas os pacientes que j tm as duas doenas, encontramos:

(
(

)
)

13

O FBST vai testar:

Com esta hiptese, estaremos testando se a mdia de


, pois (

e ( )

igual mdia de

), respectivamente. A posteriori conjunta de e

, dadas as idades de ocorrncia de TOC e de Transtornos de Humor, considerando a


hiptese de independncia, ser dada por:

(
[

Portanto, a posteriori conjunta restrita a


(

ser dada por:


]

As estimativas marginais para e , maximizando as posterioris marginais pela


funo optim, resultaram em:

A estimativa de mxima verossimilhana para os dois parmetros, na posteriori


conjunta, como esperado, a mesma obtida na maximizao das marginais. Com a
restrio hiptese nula, a maximizao forneceu a seguinte estimativa:

Para testar a hiptese de igualdade de parmetros, geramos uma amostra de


5000 valores da posteriori conjunta, a partir da multiplicao dos valores marginais.
Com ela, obtivemos a rea de T*, que foi de 1. Com isso, a medida de evidncia obtida
nula, o que permite rejeitar a hiptese de igualdade dos parmetros.
Realizamos, ento, um segundo teste de hipteses, via FBST, com:

14

A estimativa de mxima verossimilhana para os dois parmetros, na


posteriori conjunta restrita hiptese nula foi:

Neste caso, a medida de evidncia estimada foi de 0,9872, o que permite


afirmar que a mdia da idade de ocorrncia do TOC metade da mdia de idade de
ocorrncia dos Transtornos de Humor.

Consideraes finais
Para um primeiro experimento com modelagens de problemas de
sobrevivncia via anlise bayesiana, o exerccio em questo consistiu num desafio
interessante. Foi possvel encontrar pacotes j desenvolvidos, bem como implementar
a modelagem do incio ao fim.
Um passo futuro seria a construo da posteriori via funo de cpula, o que
garantiria mais preciso s estimativas, por considerar a correlao estimada de 0,232,
e no a independncia.
Por ora, possvel afirmar que as idades de ocorrncia de TOC e de
Transtornos de Humor so fracamente correlacionadas. Tambm descartamos a
hiptese de igualdade entre as mdias das idades de ocorrncia dos transtornos via
FBST por dois modelos: um Weibull e um exponencial.
A vantagem do modelo Weibull que permite incorporar a no ocorrncia de
transtornos de humor. Por outro lado, o modelo exponencial tem mais simples
interpretao e implementao, j que usa de prioris conjugadas, levando a uma
posteriori facilmente simulada com funes do R.

15

Referncias bibliogrficas
BAATH, Rasmus. Bayesian First Aid: Pearson Correlation Test. Disponvel em:
<http://sumsar.net/blog/2014/03/bayesian-first-aid-pearson-correlation-test/>.
Acesso em: 22.jun.2014.
DEGROOT, Morris H. Optimal statistical decisions. John Wiley & Sons, 2005.
IBRAHIM, Joseph G.; CHEN, MingHui; SINHA, Debajyoti. Bayesian survival analysis.
John Wiley & Sons, Ltd, 2005.
IRONY et al. A Weibull wearout test: full Bayesian approach. Universidade de So
Paulo, Instituto de Matemtica e Estatstica, 1999.
PAULINO, C. D. M., TURKMAN, M. A. A. e MURTEIRA, B. (2003). Estatstica bayesiana.
Fundao Calouste Gulbenkian.

16

Anexo Cdigos em R
#############################################################################
##Leitura dos dados
dados<-read.delim("dados.txt", dec=",", quote="")
IdadeAtual<-as.matrix(dados$IdadeAtual)
InicioTOC<-as.matrix(dados$InicioTOC)
InicioHumor<-as.matrix(dados$InicioHumor)
Humor<-as.factor(dados$Humor)
InicioHumorModificada<-as.matrix(dados$InicioHumorModificada)
#############################################################################
##Anlise descritiva das variveis
summary(IdadeAtual)
hist(IdadeAtual, main="Histograma de IdadeAtual", xlab="idades (em anos)",
freq=FALSE, ylab="densidade")
summary(InicioTOC)
hist(InicioTOC, main="Histograma da idade de incio do TOC", xlab="idades (em
anos)",
freq=FALSE, ylab="densidade")
summary(InicioHumor)
hist(InicioHumor, main="Histograma da idade de incio do transtorno de Humor",
xlab="idades (em anos)",
freq=FALSE, ylab="densidade")
summary(InicioHumorModificada)
hist(InicioHumorModificada, main="Histograma da idade de incio do transtorno
de Humor Modificada", xlab="idades (em anos)",
freq=FALSE, ylab="densidade")
plot(InicioTOC, InicioHumorModificada)
summary(InicioTOC - InicioHumor)
hist(InicioTOC + InicioHumor, main="Histograma
xlab="idades (em anos)",
freq=FALSE, ylab="densidade")

da

idade

de

TOC

Humor",

#############################################################################
##Testes para correlao
##http://sumsar.net/blog/2014/03/bayesian-first-aid-pearson-correlation-test/
##http://sumsar.net/blog/2014/01/bayesian-first-aid/
library(BayesianFirstAid)
library(rjags)
library(car)
teste_bayesiano<-bayes.cor.test(y=
InicioHumorModificada[!is.na(InicioHumorModificada)],
x= InicioTOC[!is.na(InicioHumorModificada)])
plot(teste_bayesiano)
summary(teste_bayesiano)
diagnostics(teste_bayesiano)
#############################################################################
##Ajuste do modelo de sobrevivncia univariado Weibull
#Ajuste do modelo para idade de TOC (com nenhuma censura)
ti_toc<-InicioTOC
ti_toc<-as.matrix(ti_toc)
ti_humor<-as.matrix(ti_humor)
tl_humor<-as.matrix(tl_humor)
log_posteriori_TOC<-function(theta){
alpha<-theta[1]
beta<-theta[2]
gama<-theta[3]
return((sum(log(beta) + (beta-1)*log(ti_toc+alpha)
-beta*log(gama) - ((ti_toc+alpha)/gama)^beta
+(alpha/gama)^beta)))

17

}
estimativas_mv_toc<-optim(par=c(0.00001, 0.00001, 0.00001),
fn=log_posteriori_TOC,
method=c("L-BFGS-B"),
lower=c(0.00001,0.00001,0.00001),
upper=c(10,Inf,Inf),
control = list(fnscale=-1))$par
estimativas_mv_toc
media_TOC<-(estimativas_mv_toc[3]*gamma(1 + 1/estimativas_mv_toc[2]))
media_TOC
#Ajuste do modelo para idade de HUMOR (com censura)
dois_casos<-split(InicioHumorModificada, Humor)
ti_humor_parcial<-matrix(unlist(dois_casos[2]), ncol = 1, byrow = TRUE)
ti_humor<-ti_humor_parcial[!is.na(ti_humor_parcial)]
tl_humor<-matrix(unlist(dois_casos[1]), ncol=1, byrow = TRUE)
log_posteriori_humor<-function(theta){
alpha<-theta[1]
beta<-theta[2]
gama<-theta[3]
return((sum(log(beta) + (beta-1)*log(ti_humor+alpha)
-beta*log(gama) - ((ti_humor+alpha)/gama)^beta
+(alpha/gama)^beta) +
sum(-((tl_humor+alpha)/gama)^beta + (alpha/gama)^beta)))
}
estimativas_mv_humor<-optim(par=c(0.00001, 0.00001, 0.00001),
fn=log_posteriori_humor,
method=c("L-BFGS-B"),
lower=c(0.00001, 0.00001, 0.00001),
upper=c(10, Inf, Inf),
control = list(fnscale=-1))$par
estimativas_mv_humor
media_humor<-(estimativas_mv_humor[3]*gamma(1 + 1/estimativas_mv_humor[2]))
media_humor
#Ajuste do da funo conjunta, supondo independncia
log_posteriori_conjunta_restrita<-function(theta){
valor<-log_posteriori_TOC(theta)+log_posteriori_humor(theta)
return(valor)
}
log_posteriori_conjunta<-function(estimativas_mv_toc, estimativas_mv_humor){
valor<-log_posteriori_TOC(estimativas_mv_toc)+
log_posteriori_humor(estimativas_mv_humor)
return(valor)
}
log_mv<-log_posteriori_conjunta(estimativas_mv_toc, estimativas_mv_humor)
log_mv_restrita<-log_posteriori_conjunta(estimativas_mv_conjunta,
estimativas_mv_conjunta)
estimativas_mv_conjunta<-optim(par=c(0.00001, 1, 10),
fn=log_posteriori_conjunta_restrita,
method=c("L-BFGS-B"),
lower=c(0.001, 1, 0.00001),
upper=c(10, 50, 50),
control = list(fnscale=-1))$par
estimativas_mv_conjunta
media_conjunta<-(estimativas_mv_conjunta[3]*gamma(1
1/estimativas_mv_conjunta[2]))
media_conjunta

#Definio de sigma da funo Normal amostradora


sigma<-c(0.1,0.3,0.3)
#Funo que amostra os candidatos
sorteia_candidato<-function(theta_estrela){
candidato<-c(0,0,0)
while((candidato[1]<=0) || (candidato[2]<=0) || (candidato[3]<=0))

18

candidato<-rnorm(n=3, mean=theta_estrela, sd=sigma)


return(candidato)
}
#Algoritmo de Metropolis-Hasting por random-walk_toc
metropolis_hastings_rw_toc<- function(N, theta_atual)
{
aceitacao<-0
amostra <- log_posteriori_TOC(theta_atual)
for (i in 2:N)
{
candidato<-sorteia_candidato(theta_atual)
if (runif(1) < min(1, exp(log_posteriori_TOC(candidato) log_posteriori_TOC(theta_atual)))){
theta_atual <- candidato
}
if(i>5050 && i%%50==0)
amostra <- rbind(amostra, log_posteriori_TOC(theta_atual))
}
return(amostra)
}
#Algoritmo de Metropolis-Hasting por random-walk humor
metropolis_hastings_rw_humor<- function(N, theta_atual)
{
aceitacao<-0
amostra <- log_posteriori_humor(theta_atual)
for (i in 2:N)
{
candidato<-sorteia_candidato(theta_atual)
if (runif(1) < min(1, exp(log_posteriori_humor(candidato) log_posteriori_humor(theta_atual)))){
theta_atual <- candidato
}
if(i>5050 && i%%50==0)
amostra <- rbind(amostra, log_posteriori_humor(theta_atual))
}
return(amostra)
}
#############################################################################
#Gera o vetor de amostras de F
amostra_toc<-NULL
amostra_toc<-as.matrix(metropolis_hastings_rw_toc(255000,estimativas_mv_toc))
amostra_humor<-NULL
amostra_humor<as.matrix(metropolis_hastings_rw_humor(255000,estimativas_mv_humor))
amostra<-amostra_toc+amostra_humor
#############################################################################
#Calcula a probabilidade da rea T*, ev e a mdia
probabilidade_T<-sum(amostra>log_mv_restrita)/5000
ev<-1-probabilidade_T
#############################################################################
#Modelo por exponenciais
library(MASS)
idade_toc_exp<-InicioTOC[!is.na(InicioHumor)]
idade_humor_exp<-InicioHumor[!is.na(InicioHumor)]
log_posteriori_toc_gamma<-function(alpha){
n<-608
a<-1
b<-1
valor<-(n+a-1)*log(alpha)+((-1)*(7316 + b)*alpha)
return(valor)
}
log_posteriori_humor_gamma<-function(beta){

19

n<-608
a<-1
b<-1
valor<-(n+a-1)*log(beta)+((-1)*(14785 + b)*beta)
return(valor)
}
estimativas_exp_toc<-optim(par=c(0.0001),
fn=log_posteriori_toc_gamma,
method=c("L-BFGS-B"),
lower=c(0.0001),
upper=c(100),
control = list(fnscale=-1))$par
estimativas_exp_humor<-optim(par=c(0.0001),
fn=log_posteriori_humor_gamma,
method=c("L-BFGS-B"),
lower=c(0.0001),
upper=c(100),
control = list(fnscale=-1))$par
log_conjunta<-function(theta){
n<-608
a<-1
b<-1
alpha<-theta[1]
beta<-theta[2]
parte1<-(n+a-1)*log(alpha)+((-1)*(7316 + b)*alpha)
parte2<-(n+a-1)*log(beta)+((-1)*(14785 + b)*beta)
return(parte1+parte2)
}
log_conjunta_restrita<-function(theta){
n<-608
a<-1
b<-1
alpha<-theta
parte1<-(n+a-1)*log(alpha)+((-1)*(7316 + b)*alpha)
parte2<-(n+a-1)*log(alpha)+((-1)*(14785 + b)*alpha)
return(parte1+parte2)
}
estimativas_alfa_beta<-optim(par=c(0.1, 0.1),
fn=log_conjunta,
method=c("L-BFGS-B"),
lower=c(0.0001, 0.0001),
upper=c(100, 100),
control = list(fnscale=-1))$par
mv<-estimativas_alfa_beta
log_f_mv<-log_conjunta(mv)
estimativas_alfa_beta_sobH0<-optim(par=c(0.1),
fn=log_conjunta_restrita,
method=c("L-BFGS-B"),
lower=c(0.0001),
upper=c(100),
control = list(fnscale=-1))$par
theta_estrela<-NULL
theta_estrela[1]<-estimativas_alfa_beta_sobH0
theta_estrela[2]<-estimativas_alfa_beta_sobH0
log_f_estrela<-log_conjunta(theta_estrela)
amostra<-NULL
for(i in 1:5000){
teste1<-rgamma(1, shape=(608+1), rate=(7316+1))
teste2<-rgamma(1, shape=(608+1), rate=(14785+1))
amostra<-rbind(amostra, c(teste1, teste2))
}
valores_finais<-NULL
for(i in 1:5000){
auxiliar<-dgamma(amostra[i,1], shape=(608+1), rate=(7316+1))*
dgamma(amostra[i,2], shape=(608+1), rate=(14785+1))
valores_finais<-rbind(valores_finais, auxiliar)

20

}
valores_theta_estrela<-dgamma(theta_estrela[1], shape=(608+1), rate=(7316+1))*
dgamma(theta_estrela[2], shape=(608+1), rate=(14785+1))
valores_mv<-dgamma(mv[1], shape=(608+1), rate=(7316+1))*
dgamma(mv[2], shape=(608+1), rate=(14785+1))
T_estrela<-sum(valores_finais>valores_theta_estrela)/5000
ev1<-1-T_estrela
sum(valores_finais>valores_mv)
###Teste de alpha = 2*beta
log_conjunta_restrita2<-function(theta){
n<-608
a<-1
b<-1
alpha<-theta
parte1<-(n+a-1)*log(alpha)+((-1)*(7316 + b)*alpha)
parte2<-(n+a-1)*log(alpha/2)+((-1)*(14785 + b)*alpha/2)
return(parte1+parte2)
}
estimativas_alfa_beta_sobH02<-optim(par=c(0.1),
fn=log_conjunta_restrita2,
method=c("L-BFGS-B"),
lower=c(0.0001),
upper=c(100),
control = list(fnscale=-1))$par
theta_estrela2<-c(estimativas_alfa_beta_sobH02,
estimativas_alfa_beta_sobH02/2)
valores_theta_estrela2<-dgamma(theta_estrela2[1],
shape=(608+1),
rate=(7316+1))*
dgamma(theta_estrela2[2], shape=(608+1), rate=(14785+1))
T_estrela2<-sum(valores_finais>valores_theta_estrela2)/5000
ev2<-1-T_estrela2

21

Potrebbero piacerti anche