Documente Academic
Documente Profesional
Documente Cultură
Dissertao apresentada
ao
Instituto de Matemtica e Estatstica
da
Universidade de So Paulo
para
obteno do ttulo
de
Mestre em Cincias
Programa: Estatstica
Orientador: Prof. Dr. Anatoli Iambartsev
Comisso Julgadora:
Prof.
Dr.
Cambridge
Agradecimentos
Gostaria de agradecer especialmente ao meu orientador, Anatoli Iambartsev,
por todos os ensinamentos, pacincia, dedicao e interesse pelo trabalho.
Agradeo tambm a minha me, Regina Andrade Dornelas, por seu incentivo emocional e nanceiro e aos meus familiares que sempre me deram
apoio incondicional.
Durante esses dois anos no instituto, contei com vrios amigos para estudar para provas, fazer trabalhos e tirar dvidas.
ii
Resumo
Construo de redes usando estatstica clssica e Bayesiana uma comparao
Nesta pesquisa, estudamos e comparamos duas maneiras de se construir
redes. O principal objetivo do nosso estudo encontrar uma forma efetiva
de se construir redes, especialmente quando temos menos observaes do que
variveis. A construo das redes realizada atravs da estimao do coeciente de correlao parcial com base na estatstica clssica (inverse method)
e na Bayesiana (priori conjugada Normal - Wishart invertida). No presente
trabalho, para resolver o problema de se ter menos observaes do que variveis, propomos uma nova metodologia, a qual chamamos correlao parcial
local, que consiste em selecionar, para cada par de variveis, as demais variveis que apresentam maior coeciente de correlao com o par. Aplicamos
Palavras-chave:
siana.
iii
iv
Abstract
Building complex networks through classical and Bayesian
statistics - a comparison
This research is about studying and comparing two dierent ways of building complex networks. The main goal of our study is to nd an eective way
to build networks, particularly when we have fewer observations than variables. We construct networks estimating the partial correlation coecient
on Classic Statistics (Inverse Method) and on Bayesian Statistics (Normal
- Invese Wishart conjugate prior).
local
each pair of variables, the other variables most correlated to the pair. We
applied these methods on simulated data and compared them through ROC
curves. The most atractive result is that, even though it has high computational costs, to use Bayesian inference is better when we have less observations
than variables. In other cases, both approaches present satisfactory results.
Keywords:
statistics.
vi
Sumrio
1 Introduo
1.1
Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
Objetivos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3
Organizao do texto . . . . . . . . . . . . . . . . . . . . . . .
2 Conceitos Bsicos
2.1
Coeciente de Correlaao
. . . . . . . . . . . . . . . . . . . .
2.2
Independncia Condicional . . . . . . . . . . . . . . . . . . . .
2.3
Redes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4
Dados
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5
Teorema de Bayes
. . . . . . . . . . . . . . . . . . . . . . . .
2.6
3.1
Multivariada Normal . . . . . . . . . . . . . . . . . . . . . . .
3.2
Distribuio Wishart . . . . . . . . . . . . . . . . . . . . . . .
11
3.3
Distribuio Wishart-invertida
12
. . . . . . . . . . . . . . . . .
4 Independncia Condicional
4.1
4.2
Correlao Parcial
15
. . . . . . . . . . . . . . . . . . . . . . . .
15
4.1.1
Regresso Linear . . . . . . . . . . . . . . . . . . . . .
16
4.1.2
Mtodo Inverso . . . . . . . . . . . . . . . . . . . . . .
17
4.1.3
Covarincia Parcial . . . . . . . . . . . . . . . . . . . .
17
Correlao Condicional . . . . . . . . . . . . . . . . . . . . . .
18
5 Estatstica Bayesiana
19
5.1
Distribuio a Priori
. . . . . . . . . . . . . . . . . . . . . . .
19
5.2
Distribuio a Posteriori . . . . . . . . . . . . . . . . . . . . .
19
5.3
20
20
5.4
21
5.3.1
vii
viii
SUMRIO
6 Medidas de Diagnstico
23
6.1
Teste de Hipteses
. . . . . . . . . . . . . . . . . . . . . . . .
23
6.2
Sensibilidade X Especicidade . . . . . . . . . . . . . . . . . .
23
6.3
Curva ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
7 Simulaes
7.1
7.2
7.3
27
Algoritmos
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.1
rvores
7.1.2
Redes Mistas
. . . . . . . . . . . . . . . . . . . . . . . . . .
29
29
. . . . . . . . . . . . . . . . . . . . . . .
29
Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
7.2.1
Estatstica Clssica . . . . . . . . . . . . . . . . . . . .
32
7.2.2
Estatstica Bayesiana . . . . . . . . . . . . . . . . . . .
32
7.2.3
. . . . . . . . . . . . . . . . . . . . .
34
34
. . . . . . . . . . . . . . . . . . . . .
A Demonstraes
37
39
A.1
A.2
A.3
. . . . . . . . . . . . . . . . .
39
40
41
B Grcos
43
C Scripts em R
47
C.1
Gerador de rvores . . . . . . . . . . . . . . . . . . . . . . . .
C.2
C.3
C.4
53
C.5
55
C.6
59
C.7
62
C.8
70
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
47
49
52
Lista de Figuras
2.1
. . . . . . . . . . . . . . . . . . . . .
6.1
. . . . . . . . . . . . . . . . . . . . .
25
7.1
Exemplo de rvores . . . . . . . . . . . . . . . . . . . . . . . .
28
7.2
28
7.3
Grco do nmero mximo de variveis no clculo da correlao parcial local pela rea das curvas ROC de 5 rvores (
esquerda) e 5 redes ( direita).
7.4
. . . . . . . . . . . . . . . . .
34
7.5
. . . . . . . . . . . . . . . . . . . . . . . . .
35
7.6
36
7.7
. . . . . . . . . . . . . . . . . . . . .
36
7.8
37
7.9
clssica e bayesiana para redes mistas com 50, 250 e 500 obs)
B.1
38
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ix
43
LISTA DE FIGURAS
B.2
B.3
44
B.4
45
46
Captulo 1
Introduo
1.1 Motivao
A construo de redes um tema cada vez mais presente entre os pesquisadores. Elas podem representar inmeras situaes dentre os mais variados
temas. Como exemplo podemos citar a internet, redes sociais de parentesco
ou outra caracterstica que conecta indivduos, redes organizacionais ou de
relaes entre empresas, redes neurais, cadeia alimentar, logstica, redes de
referncias entre artigos.
A maior motivao deste trabalho foi o artigo [11], onde redes regulatrias
foram construdas. Os dados foram tirados de uma base de um estudo casocontrole sobre cncer colo-uterino. A m de construir uma rede de expresso
gnica, os autores usaram o mtodo inverso para calcular o coeciente de
correlao parcial.
Contudo, nos estudos de
microarray.
Em [8], o coeciente de
J nos artigos [20], [21],
foram
anlise de cluster, enquanto que em [18] foi usado o lasso ponderado nos
modelos grcos Gaussianos. Conjuntos de genes foram usados em [7] para
1
CAPTULO 1.
INTRODUO
1.2 Objetivos
Os objetivos desse trabalho, utilizando dados simulados, so:
1. Estudar e comparar a construo de redes usando o coeciente de correlao parcial atravs de duas metodologias. A primeira por meio
da estatstica clssica. Para a estimao do coeciente de correlao
parcial, utilizaremos o mtodo inverso, como em [11], e, para o teste
de hipteses, o valor-p calculado pela transformada-z de Fisher. A segunda metodologia embasada na escola Bayesiana. Estimaremos a
matriz de covarincia parcial e usaremos as entradas dessa matriz para
o clculo do coeciente de correlao parcial. Testaremos as hipteses
com o valor-e vindo do FBST [14].
2. Estudar e comparar a construo de redes quando temos mais variveis
do que observaes utilizando o que chamamos de correlao parcial
local.
Captulo 2
Conceitos Bsicos
Neste captulo vamos introduzir algumas noes bsicas, as quais sero usadas ao longo desse trabalho. Iniciaremos com os conceitos relacionados com
a construo de grafos: coeciente de correlao de Pearson, independncia
condicional, grafos e dados. Depois introduziremos dois teoremas bastante
conhecidos (lei da probabilidade total e teorema de Bayes) que sero usados no Captulo 5, onde falaremos um pouco sobre Estatstica Bayesiana.
Tambm apresentaremos a denio e algumas propriedades de matrizes positivas denidas, essenciais nas distribuies Wishart e Wishart invertida, as
quais sero tratadas no Captulo 3.
Y,
Sejam
duas
(X, Y )
entre
denida por
Cov(X, Y )
(X, Y ) = p
.
V ar(X)V ar(Y )
|(X, Y )| 1.
(X, Y ) = 0, e que
CAPTULO 2.
Denio 2.1.2
Y = X + ,
podemos escrever
(Matriz de Correlao)
atrias unidimensionais.
CONCEITOS BSICOS
Sejam
V ar() 6= 0
em que
X1 , , Xp
variveis ale-
(Xi , Xj ), i, j = 1 p, ou seja,
(X1 , X1 )
.
.
(X1 , , Xp ) =
.
(Xp , X1 )
em que
(X1 , Xp )
.
.
.
.
.
.
,
(Xp , Xp )
(Xi , Xi ) = 1, i = 1, , p
X eY
fX (x)
fY (y)
(, A, P),
respectiva-
mente.
X
Y
fX,Y (x, y)
dado
X =x
no depende de
x,
ou
seja,
fY |X (y | x) = fY (y).
fX,Y,Z (x, y, z)
como um produto
e uma no envolve
y,
isto ,
2.3.
REDES
2.3 Redes
Vamos introduzir algumas denies relacionadas a redes, as quais utilizaremos mais adiante.
Denio 2.3.1
de
(Grafo)
E.
G = (V, E).
Usaremos
digraphs).
Denio 2.3.2
Xi , Xj V so adjacentes,
Xi Xj , se existe uma ligao entre eles, isto , [Xi Xj ] E. Representamos
todos os pares adjacentes atravs da matriz de adjacncia App , em que seus
elementos aij recebem 1 quando existe a ligao entre Xi e Xj e 0, caso
(Adjacncia)
Dizemos que
CAPTULO 2.
Xi
e vai em direo a
Xj ,
apenas em um sentido, de
Denio 2.3.3
um subgrafo de
Xi
(Subgrafo)
G.
aij = 1
CONCEITOS BSICOS
para
Xj ,
ento
Xj .
Se a direo for
aji = 0.
Denotaremos
Gu = (u, H),
sendo
uV
as ligaes em
gera
as
u.
2.4 Dados
Os conjuntos de dados estudados neste trabalho so da seguinte forma:
Xnp
x1p
x2p
. ,
.
.
xnp
x11 x12
x21 x22
= .
.
.
.
.
..
.
.
xn1 xn2
xij , i = 1 n, j = 1 p
i-sima
observao da varivel
Xj .
Essas
X1 , X2 , Xp
f (x1 , x2 , , xp ),
em que
experimento no qual
guindo
f .
no modelo e
Xij
Xi
Xj ,
se
Xi
Xj | Xij ,
em que
Xij ,
u
v | w vlida para quaisquer conjuntos u, v e w V,
u e v no grafo de independncia. Portanto, todas as inde-
Se a condio
ento
separa
2.5.
TEOREMA DE BAYES
P (B) =
n
X
P (B | Ai )P (Ai )
i=1
(2.1)
Uma matriz
denida se
dita positiva
positiva denida (A
> 0)
ou semipositiva denida (A
2.
A0
A>0
A 0
A for Hermitiana,
se i > 0, i
se e somente se
os auto-valores de
0).
e A
A.
se e somente se
se e somente
ou seja,
A = A ,
i 0, i.
A>0
A0
se e somente se
somente se
4.
A 0
A = BB
B. A > 0
se e
for no singular.
5.
A 0
nica.
se e somente se
A>0
B2
se e somente se
B.
Essa matriz
B > 0.
CAPTULO 2.
CONCEITOS BSICOS
Captulo 3
Distribuio Normal
Multivariada e Wishart
invertida
Neste captulo falaremos um pouco sobre as distribuies consideradas neste
trabalho e suas propriedades. Assumiremos que os dados seguem uma distribuio Multivariada Normal. A Wishart-invertida utilizada nas distribuies a priori e posteriori, na Estatstica Bayesiana (Captulo 5). Citaremos a
distribuio Wishart j que ela d origem distribuio Wishart-invertida.
A distribuio multivariada normal inteiramente denida pelo primeiro e segundo momento, o que implica uma menor quantidade de
parmetros quando comparada com outras distribuies, diminuindo,
assim, a diculdade dos problemas de estimao.
Denio 3.1.1.
Normal
p-variada
Dizemos que
se e somente se,
Normal univariada.
forma:
X Np (, ),
em que
p1
a mdia do vetor
pp
a matriz de covarincia de
X.
Densidade
Sua f.d.p., quando
> 0),
tem a
seguinte forma:
1
T 1 (x)
(3.1)
Esperana
E(X) =
Varincia
V ar(X) = .
Caractersticas e Propriedades
Teorema 3.1.1. Particionemos X em X = (X (1)T , X (2)T ) Np (, ), em
que particionada da seguinte forma:
11 12
=
21 22
Nr (2 + 21 1
11 (X 1 ), 22.1 ).
(3.2)
(3.3)
3.2.
DISTRIBUIO WISHART
11
Denio 3.2.1.
Suponha que
uma matriz
S:
M = XT X,
aleatria
matrix).
scatter
Notacionalmente:
M Wp (S, k)
em que
a matriz de escala,
S>0
k > 0.
Densidade
Seja
p p,
p p. Quando
k p (vide Observao 3.2.1), M tem uma distribuio Wishart com matriz
de escala S e k graus de liberdade se tiver uma f.d.p. dada por
f (M ) =
em que
|M |
|S|
so os determinantes de
respectivamente e
(3.4)
p ()
p
Y
k
n (1 j)
p(p1)/a
p
=
+
2
2
2
(3.5)
j=1
Observao
mnimo entre
ser no invertvel.
Esperana
E(M ) = E(XT X) =
k
X
i=1
Varincia
V ar(M )ij = k(s2ij + sii sjj ),
com
i, j = 1, , p
sij
ij
representando os elementos
Caractersticas e Propriedades
da matriz
S.
A matriz de escala
s2 tem na distribuio
p = 1,
S tem
s2 2k .
a distribuio
inverse-Wishart)
a generalizao multi-
M uma
M 1 segue a
Se
Densidade
Se M Wp (S, k), em que S > 0 e k p (vide Observao 3.2.1), ento
U = M 1 segue a distribuio Wishart-invertida IWp (, k), sendo = S 1 .
Sua f.d.p. dada por:
(3.6)
Esperana
E[U ] =
kp1
(3.7)
Varincia
V ar(ii ) =
2ii2
, k p > 3,
(k p 1)2 (k p 3)
(3.8)
3.3.
DISTRIBUIO WISHART-INVERTIDA
ii jj +
V ar(ij ) =
em que
ij
o elemento
ij
13
kp+1 2
kp1 ij
(3.9)
(k p)(k p 1)(k p 3)
da matriz
Caractersticas e Propriedades
(3.10)
1
em que U22.1 = U22 U21 U11
U12 .
Demonstrao.
U IWp (, k) U Wp (1 , k)
Agora, considere
U11 U12
U=
,
U21 U22
em que
U11
uma matriz
M =U
em que
U 1
1
1
U12 U22.1 1
U11
U11.2
,
1
1
U21 U11.2 1
U22.1
U22
=
(3.11)
1
U11.2
= (U11 U12 U22 1U21 )1
1
U22.1
W (1
22.1 , k) U22.1 IW ((22.1 , k)
U 1
tambm seguem
Captulo 4
Independncia Condicional
Como j vimos no Captulo 2, independncia condicional fundamental na
modelagem grca, pois denimos um elo entre dois vrtices se e somente se
as variveis do modelo no forem condicionalmente independentes. Entretanto, apesar de ser baseada na teoria das probabilidades, seu clculo pode
ser bastante complexo. Por isso, na prtica, razovel substituir independncia condicional por correlao parcial igual a
igual a
0.
ou correlao condicional
cial. Podemos calcular a correlao parcial por trs caminhos que acabam
gerando os mesmos resultados. O primeiro caminho atravs da denio
original usando regrasso linear.
16
CAPTULO 4.
4.1.1
INDEPENDNCIA CONDICIONAL
Regresso Linear
Denio 4.1.1
comprimento
(Correlao Parcial)
p2
correlacionado com
Xi
Xj ,
Y um
Xi e Xj .
Seja
Y, ou se elas so realmente
Y. Se mantivermos Y constante, ser que
uma alterao de Xi inuenciar Xj ? A ideia principal dessa abordagem
justamente retirar o efeito de Y , examinando as correlaes entre os resduos
das projees de Xi e Xj no espao linear gerado por Y , ou seja, subtraindo
aquela parte da relao linear devido a Y . Matematicamente temos:
Xi = i + Yi + i
Xj = j + Yj + j ,
em que
i = (i1 , , i(p2) )T .
j ,
X
que so os estimadores de
Xi
Xj
i
X
dados por:
i
Resi = Xi X
j .
Resj = Xj X
Note que,
Resi e Resj
Y.
so ortogonais a
i , Xj X
j )
ij.Y = (Resi , Resj ) = (Xi X
Se
ij.Y 0,
ento
Xi
Xj
so no correlacionados se no levarmos
em considerao.
(4.1)
4.1.
CORRELAO PARCIAL
17
pode ser encontrada no Apndice A.1. [19] prova para o caso multidimensional. Um exemplo desse caso quando
Observao
4.1.1
Notadamente, no caso
gaussiano, em que a correlao parcial nula indica independncia condicional, obtm-se os mesmos valores para as duas correlaes. Uma discusso
bastante interessante sobre as diferenas e condies de equivalncia entre
os dois conceitos pode ser encontrada em [1].
4.1.2
Mtodo Inverso
Existe outra abordagem que nos permite calcular todas as correlaes parci-
por:
ij.Y =
pij
pii pjj
(4.2)
R1
necessrio ao menos um
4.1.3
Covarincia Parcial
Xij = (Xi , Xj )
ii.Y
ij.Y
=
,
ji.Y
jj.Y
ij.Y
denotada por
18
CAPTULO 4.
INDEPENDNCIA CONDICIONAL
(Xij , Y)
Xij
Xij
Cov
=
Y
YXij
Xij 2 2, Xij Y
(p 2) (p 2).
em que
(4.3)
em
Xij Y
,
Y
2 (p 2), YXij
(p 2) 2
ij.Y
ij.Y =
.
ii.Y jj.Y
(4.4)
Xi , i = 1, , p tm mdia
nula.
Xi
Xj
dado
denida por
Cov(Xi , Xj | Y) = E
Xi E(Xi | Y) Xj E(Xj | Y) | Y = ij|Y .
XX|Y
= ii|Y
ji|Y
ij|Y
jj|Y
ij|Y =
ij|Y
ii|Y jj|Y
Essa uma frmula comumente considerada para averiguar a independncia condicional, entretanto, em [1], prova-se que a correlao parcial igual
a
Captulo 5
Estatstica Bayesiana
Seja
X = (X1 , X2 , , Xp )
(, A, P ).
desconhecido
Sob
des-
condicional
f (x | ),
sendo
consideraremos
f (x | )
(, B, ).
Dessa forma,
Muitas vezes,
do
que em outras.
a posteriori de
a posteriori
.
de
Suponha que
vetor aleatrio
19
20
CAPTULO 5.
ESTATSTICA BAYESIANA
(5.1)
.
Seja
(),
siga a
a f.d.p. conjunta de
(5.2)
A distribuio a posteriori de
simplesmente a distribuio de
aps
os valores de
dado
de
( | x) =
f (x | )()
g(x)
para
(5.3)
x1 , , xn , g(x)
quando
( | x) f (x | )().
Observe que
f (x | ),
(5.4)
chamada de
Lx ().
5.3.1
e matriz de covarincia,
k0
e tambm que
desconhecidas.
5.4.
21
IW (k0 , 0 )
| Normal(0 ,
1
)
v0
IW (k1 , 1 )
| Normal(0 ,
1
),
v0
em que
nx + v0 0
,
n + v0
v1 = n + v0 ,
1 =
k1 = n + k0
1 = 0 +
n
X
i=1
sendo
nv0
(x 0 )(x 0 )T ,
n + v0
a mdia amostral.
posteriori
argmax0 ( | x).
Agora, considere o subconjunto de
em que
( | x) > ( | x),
T = { | ( | x) > ( | x)}
A credibilidade de
K =
em que
f ( | x) = f ( | x)
se
A medida de evidncia, ou
probabilidade do conjunto
T ,
Z
( | x)d,
T
f ( | x) > f ( | x) e 0 caso
e-valor, da hiptese nula o
ou seja,
contrrio.
complemento da
22
CAPTULO 5.
ESTATSTICA BAYESIANA
Ev(H) = 1 K .
Note que, quando
Captulo 6
Medidas de Diagnstico
Agora que j conhecemos todos os mtodos, como escolher o melhor? Como
denir o modelo mais adequado aos dados?
As Medidas de Diagnstico
(Xi , Xj ):
H0 : ij.Y = 0
H1 : ij.Y 6= 0
Se rejeitarmos
H0 ,
24
CAPTULO 6.
MEDIDAS DE DIAGNSTICO
#verdadeiros positivos
#verdadeiros positivos + #falsos
Sensitividade =
negativos
Especif icidade =
#verdadeiros
#verdadeiros
negativos
negativos
+ #falsos
positivos
Acuracia =
VP +VN
V P + V N + FP + FN
(1 especicidade).
Tambm
(ROC) porque
uma comparao de duas caractersticas operacionais (Sensibilidade e Especicidade) a medida que o critrio aumenta. Como critrio, usaremos o
valor-p da estatstica clssica ou o valor-e da estatstica Bayesiana. Veja um
exemplo na Figura 6.1.
6.3.
CURVA ROC
25
26
CAPTULO 6.
MEDIDAS DE DIAGNSTICO
Captulo 7
Simulaes
Nessa parte do trabalho, a m de conrmar a eccia da teoria descrita anteriormente e de constatarmos o melhor mtodo, simulamos 2 tipos de redes,
as quais chamamos rvores e redes mistas. Para cada tipo de rede, zemos
500 simulaes com 100 variveis, calculamos a correlao parcial, o p-valor e
o e-valor. No caso de termos mais variveis do que observaes, computamos
a correlao parcial local. Para averiguar a qualidade do modelo, traamos
a curva ROC nas vises clssica e Bayesiana para cada rvore, calculamos
a curva ROC mdia e depois comparamos a rea dessas curvas mdias. A
interpretao que quanto maior a rea, melhor o modelo. Isso foi feito para
nmeros de observaes diferentes:
1000.
A distribuio Lognormal(1,1)
0, 01.
28
CAPTULO 7.
SIMULAES
7.1.
ALGORITMOS
29
7.1 Algoritmos
7.1.1
rvores
vrtices,
meira gerao.
7.1.2
Redes Mistas
vrtices,
30
CAPTULO 7.
SIMULAES
7.1.
ALGORITMOS
31
6. Para especicar quem so os pais desse novo vrtice, usamos uma distribuio em que as probabilidades so os pesos do nmero de lhos
desconectados de cada vrtice da gerao anterior sobre o nmero total
de lhos desconectados dessa mesma gerao.
32
CAPTULO 7.
SIMULAES
7.2 Metodologia
7.2.1
Estatstica Clssica
O primeiro passo foi simular rvores e redes mistas como descrito nos algoritmos 7.1.1 e 7.1.1. Com os dados simulados, estimaremos a correlao
parcial atravs do mtodo inverso, equao (4.2).
Como estamos procurando correlaes parciais no nulas ou nulas para
denirmos se h ou no ligao entre cada par de vrtices, precisamos testar
H0 : ij.Y = 0
contra a alternativa
z(
ij.Y ) =
Rejeitamos
H0
1 + ij.Y
1
ln(
).
2
1 ij.Y
se:
p
n |Y | 3 |z(ij.Y )| > 1 (1 /2),
em que
()
(7.1)
N ormal(0, 2 )
nmero de observaes.
Para mais informaes veja [9] e [6].
7.2.2
Estatstica Bayesiana
Escolha da priori
Assim como j citamos no Captulo 5, assumimos que os dados seguem uma
distribuio Normal com mdia
e matriz de covarincia .
Devido maior
IW (k0 , 0 )
| (0 , v10 ).
Mas, se no temos nenhuma informao sobre os parmetros, como devemos escolher os parmetros da distribuio a priori? Nessas situaes, um
pesquisador pode trabalhar com uma amostra piloto que vem da mesma populao que os dados do estudo e, a partir dela, fazer suas suposies sobre os
7.2.
METODOLOGIA
33
dados para a escolha da priori. Nesse trabalho, optamos por trabalhar com
amostras piloto com o mesmo nmero de observaes que os dados de estudo.
zij
0
, k0 p > 1.
k0 p 1
E() =
k0 > p + 1,
E() existir,
escolhemos
k0 = p + 3.
0 = (k0 p 1) Q, tal que
. Por essa razo,
covarincia estimada de Z , ou seja,
Z.
0 = (k0 p 1)
Usamos o estimador de mxima verossimilhana da covarincia, ou seja,
1X
(zij zj )(zik zk ),
ij =
n
i=1
em que
ij
so as entradas da matriz
Z.
0,
usaremos o
teste FBST que foi explicado na seo 5.4. Note que precisamos da distribuio da correlao parcial. Porm, o mais perto que conseguimos chegar
foi encontrar a distribuio da covarincia parcial, que tambm segue uma
Wishart invertida. Veja o Teorema 3.3.1.
e-valor.
1000
e-valor,
34
CAPTULO 7.
7.2.3
SIMULAES
considerando apenas os vrtices correlacionados com ao menos um dos elementos do par, os quais denominamos vizinhana do par. Se essa vizinhana
contiver mais vrtices do que observaes, ento selecionamos os
com as maiores correlaes no caso de rvores e
n
10 vrtices
n
2 vrtices no caso de redes
variando de
1.
Em
7.3.
35
50, 250
500
obs.
Se repararmos as Figuras 7.4, 7.5, 7.6 e 7.7, podemos ver que as reas
das curvas aumentam medida que o nmero de observaes aumenta, como
j era esperado. O que chama mais ateno que a rea da curva referente
50
250
obser-
100
vari-
veis, ou seja, as curvas das redes com menos observaes que parmetros
se encontram relativamente prximas s curvas com mais observaes que
parmetros.
Figura 7.4: Comparao da mdia ( esquerda) e mediana( direita) das curvas ROC das rvores com 50, 250, 500 e 1000 observaes na viso clssica.
36
Figura 7.5:
CAPTULO 7.
SIMULAES
curvas ROC das rvores com 50, 250, 500 e 1000 observaes na viso Bayesiana.
Figura 7.6:
curvas ROC das redes mistas com 50, 250, 500 e 1000 observaes na viso
clssica.
7.3.
37
Figura 7.7: Comparao da mdia ( esquerda) e mediana( direita) das curvas ROC das redes mistas com 50, 250 e 500 observaes na viso Bayesiana.
7.3.1
Como podemos ver na Figura 7.8 direita, quando temos mais observaes
do que variveis
(100),
50, 250
500
50
clssica e na Bayesiana cam sobrepostas. Concluimos que, em geral, melhor usarmos a estatstica clssica, pois esta apresenta resultados to bons
quanto da estatstica Bayesiana, mas possui um custo computacional mais
baixo. Entretanto, no caso de rvores com problema de identicabilidade,
apesar do custo computacional ser maior na estattica Bayesiana, o seu uso
aconselhvel.
38
Figura 7.8:
CAPTULO 7.
SIMULAES
clssica e bayesiana para rvores com 50 ( esq), 250, 500 e 1000 obs ( dir)
Figura 7.9:
clssica e bayesiana para redes mistas com 50, 250 e 500 obs)
Apndice A
Demonstraes
A.1 Demonstrao da frmula (4.1) no caso unidimensional
Demonstrao.
regresses de
Sejam
Xi
em
= (i , j )
Cov(i , j )
= p
V ar(i )V ar(j )
das
(A.1)
Observe que
Cov(i , j ) = Cov(i , Xj Y j j )
= Cov(i , Xj )
= Cov(Xi Y i i , Xj )
= Cov(Xi , Xj ) i Cov(Xj , Y ))
(A.2)
Cov(Xi , Y ) = Cov(i + i Y + i , Y )
= i V ar(Y )
i = Cov(Xi , Y )V ar(Y )1
(A.3)
Logo,
Cov(i , j ) = Cov(Xi , Xj )
39
Cov(Xi , Y )Cov(Xj , Y )
)
V ar(Y )
(A.4)
40
APNDICE A. DEMONSTRAES
Obtemos a varincia de
i
da seguinte maneira:
V ar(i ) = Cov(i , i )
= Cov(i , Xi i Y i )
= Cov(i , Xi )
= E(i Xi ) E(i )E(Xi )
Como, neste trabalho,
Xi
(A.5)
tem mdia 0,
j
(A.6)
(A.1) temos
ij.Y
Cov(Xi , Xj )
q
V ar(Xi )
Cov(Xi ,Y )Cov(Xj ,Y )
V ar(Y )
Cov(Xi ,Y )2
V ar(Y )
q
V ar(Xj )
Cov(Xj ,Y )2
V ar(Y )
Cov(X ,Y )Cov(X ,Y )
Cov(Xi , Xj ) i j
V ar(Y ) V ar(Y )
r
r
Cov(Xj ,Y )2
Cov(Xi ,Y )2
V ar(Xi ) 1 V ar(X
V
ar(X
)
1
j
V ar(Xj )V ar(Y )
i )V ar(Y )
Cov(Xi ,Y )Cov(Xj ,Y )
Cov(Xi ,Xj )
V ar(Xi )V ar(Xj )
V ar(Xi )V ar(Y ) V ar(Xj )V ar(Y )
r
r
Cov(X ,Y )2
Cov(Xi ,Y )2
1 V ar(Xi )V ar(Y )
1 V ar(Xj )Vj ar(Y )
A.2 Equivalncia do mtodo inverso com a denio de correlao parcial no caso unidimencional
Demonstrao.
relao de
Sejam
Xi , Xj
Y,
Xi , Xj
ou seja,
variveis aleatrias e
a matriz de cor-
1
(Xi , Xj ) (Xi , Y )
1
(Xi , Xj ) (Xi , Y )
1
(Xj , Y ) = (Xi , Xj )
1
(Xj , Y )
Y = (Xj , Xi )
(Y, Xi ) (Y, Xj )
1
(Xi , Y ) (Xj , Y )
1
ij.Y =
(A.7)
p
piiijpjj , em que, de acordo com
(A.7)
pii = 1 (Xj , Y )2
pjj
= 1 (Xi , Y )2
pij
Demonstrao.
Y
Sejam
Xi .Y
i
o erro da regresso de
Xi
em
Y.
Assim,
42
APNDICE A. DEMONSTRAES
Xi = i + Y i + i i = Xi i Y i
(A.8)
. Logo,
Lembre de (A.6) que
V ar(Xi .Y ) = V ar(i )
= E(i Xi ) E(i )E(Xi )
= E(Xi2 ) i E(Y Xi )
(A.9)
i = Cov(Xi , Y )V ar(Y )1
(A.10)
(A.11)
Portanto,
(A.12)
ji j2
jY (Y2 )1 Y i jY (Y2 )1 Y j
A continuao da prova da equivalncia do mtodo da covarincia parcial,
Seo 4.1.3, com a denio, Seo 4.1.1, para
ao Apndice A.1
unidimensional anloga
Apndice B
Grcos
Figura B.1: Quartil 1 (0.25), mdia, mediana e quartil 3 (0.75) das curvas
ROC das rvores com 50, 250, 500 e 1000 observaes na viso clssica.
43
44
APNDICE B. GRFICOS
Figura B.2: Quartil 1 (0.25), mdia, mediana e quartil 3 (0.75) das curvas
ROC das rvores com 50, 250, 500 e 1000 observaes na viso Bayesiana.
45
Figura B.3: Quartil 1 (0.25), mdia, mediana e quartil 3 (0.75) das curvas
ROC das redes mistas com 50, 250, 500 e 1000 observaes na viso clssica.
46
APNDICE B. GRFICOS
Figura B.4: Quartil 1 (0.25), mdia, mediana e quartil 3 (0.75) das curvas
ROC das redes mistas com 50, 250 e 500 observaes na viso Bayesiana.
Apndice C
Scripts em R
C.1 Gerador de rvores
# D i s t r i b u i o dos f i l h o s
dist=f u n c t i o n (n)
{
x=f l o o r ( rlnorm (n ,1 ,1))
return (x)
}
# p o nmero t o t a l de v r t i c e s
f o r (p in c (100))
{
f o r ( i1 in c (1))
{
# Nmero de o b s e r v a e s
n=5000
# C a l c u l a n d o os c o e f i c i e n t e s
# M a t r i z com os dados
ger= l i s t ()
47
48
APNDICE C. SCRIPTS EM R
f i l h o s=vector ()
break
}
f i l h o s [1]= sum( ger [ [ 1 ] ] )
# C a l c u l a n d o as o b s e r v a e s da 1a g e r a o e as e n t r a d a s da
# m a t r i z de a d j a c n c i a
i=1
cont=i
while ( i<=ger [ [ 1 ] ] )
{
i=i+1
X[ , i ]= coef1 [ i ] X[ ,1]+ rnorm (n ,0 ,0.01)
A[1 , i ]=1
A[ i ,1]=1
}
k=2
cont2=1
while ( i<p)
{
#
#
#
#
repeat
C.2.
49
soma=soma+ger [ [ k ] ] [ l ]
}
ger [ [ k ] ] [ l ]=ger [ [ k ] ] [ l ] (soma (p 1))
ger [ [ k ] ] [ l +1: length ( ger [ [ k ]])]=0
f i l h o s [ [ k]]= sum( ger [ [ k ] ] )
if
break
else
break
}
# Calculando , para cada g e r a o k , as o b s e r v a e s e
# as e n t r a d a s da m a t r i z a d j a c n c i a o r i g i n a l
( j in 1: length ( ger [ [ k ] ] ) )
( ger [ [ k ] ] [ j ] !=0)
{
cont=i
while ( i<cont+ger [ [ k ] ] [ j ] )
{
i=i+1
X[ , i ]= coef1 [ i ] X[ , cont2+j ]+
rnorm (n ,0 ,0.01)
A[ cont2+j , i ]=1
A[ i , cont2+j ]=1
}
}
cont2=cont2+sum( ger [ [ k 1]])
k=k+1
}
write . t a b l e (X, f i l e =paste ( "arvore" , i1 , "_" ,p , ".txt" ,
sep="" ))
write . t a b l e (A, f i l e =paste ( "original" , i1 , "_" ,p , ".txt" ,
sep="" ))
write . t a b l e ( coef1 , f i l e =paste ( " coeficientes " , i1 , "_" ,p , ".txt" ,
sep="" ))
}}
for
if
(mnormt)
# D i s t r i b u i o do nmero de f i l h o s
50
{
}
APNDICE C. SCRIPTS EM R
# D i s t r i b u i o do nmero de p a i s
# Nmero de o b s e r v a e s
n=10000
p=100
f o r ( i3 in 1:500)
{
X=matrix ( n c o l=p , nrow=n)
A=matrix (0 , n c o l=p , nrow=p)
# Nmero de v a r i v e i s
# Nmero de f i l h o s
nf= l i s t ()
# Nmero de p a i s
np= l i s t ()
pai . todos= l i s t ()
# pais
repeat
}
pai . todos [ 1 : n1]=0
pai=vector ( length=n1)
X1=rmnorm(n , mean = rep (0 , n1 ) ,
X[ , 1 : n1 ] = X1
diag
(n1 ))
n2=0
k=0
C.2.
while
51
(n1<p)
k=k+1
repeat
{
nf [ [ k]]= dist . out ( length ( pai ))
i f ( sum ( nf [ [ k ] ] ) !=0) break
}
temp=nf [ [ k ] ]
np [ [ k]]= vector ()
pai= l i s t ()
i=0
while ( sum (temp) !=0)
{
i=i+1
nmax=length (temp [ temp !=0])
np [ [ k ] ] [ i ]= min((1+ dist . in (1)) ,nmax)
prob=vector ()
f o r ( j in 1: length (temp ))
prob [ j ]=temp [ j ] /sum(temp)
pai [ [ i ]]= sample ( c (1: length (temp )) ,
np [ [ k ] ] [ i ] , r e p l a c e=FALSE,
prob )
temp [ pai [ [ i ]]]= temp [ pai [ [ i ]]] 1
i f ( i+n1<=p)
{
A[ i+n1 , n2+pai [ [ i ]]]=1
A[ n2+pai [ [ i ] ] , i+n1]=1
pai . todos [ [ i+n1]]=n2+pai [ [ i ] ]
}
}
n2=n1
n1=n1+length ( pai )
# Determinado os c o e f i c i e n t e s
= l i s t ()
( i in 1:p)
{
c o e f [ [ i ]]= c ( round ( r u n i f ( length (
coef
for
52
APNDICE C. SCRIPTS EM R
pai . todos [ [ i ] ] ) , 0 . 7 , 2 ) , 2 ) )
sinal=sample ( c (1 , 1) , length ( pai . todos [ [ i ] ] ) ,
r e p l a c e=TRUE, c (2 / 3 ,1 / 3))
c o e f [ [ i ]]= c o e f [ [ i ] ] sinal
# Combinaes L i n e a r e s
( i in 1:p)
i f ( sum ( pai . todos [ [ i ]])==0) X[ , i ]=X[ , i ] e l s e
i f ( length ( pai . todos [ [ i ]])==1)
X[ , i ]= X[ , pai . todos [ [ i ] ] ] c o e f [ [ i ]]+
rnorm (n ,0 ,0.01) e l s e
X[ , i ]=X[ , pai . todos [ [ i ] ] ]%%as . matrix (
c o e f [ [ i ]])+ rnorm (n ,0 ,0.01)
max . np=max ( sapply (np , f u n c t i o n (x) max (x )))
Coef=matrix (0 ,p , max . np)
f o r ( j in 1:p) Coef [ j , 1 : length ( pai . todos [ [ j ] ] )] =
coef [ [ j ] ]
write . t a b l e (X, f i l e =paste ( "arvore_inout_" , i3 , "_" ,p ,
".txt" , sep="" ))
write . t a b l e (A, f i l e =paste ( "original_inout_" , i3 , "_" ,p ,
".txt" , sep="" ))
write . t a b l e ( Coef , f i l e =paste ( " coeficientes_inout_" ,
i3 , "_" ,p , ".txt" , sep="" ))
for
(mnormt)
#Nmero de o b s e r v a e s
n=10000
f o r (p in 100)
f o r ( i3 in 2:500)
{
A=read . t a b l e ( paste ( "original_inout_" , i3 , "_" ,p ,
".txt" , sep="" ))
c o e f i c i e n t e s=read . t a b l e ( paste ( " coeficientes_
inout_" , i3 , "_" ,p , ".txt" , sep="" ))
pai . todos= l i s t ()
c o e f= l i s t ()
C.4.
for
(k in 1: n c o l (A))
pai . todos [ [ k ] ] = which (A[ , k ] [ row (A)<k]==1)
c o e f [ [ k]]= t ( as . matrix ( c o e f i c i e n t e s [ k ,
1: length ( pai . todos [ [ k ] ] ) ] ) )
53
}
n1=0
f o r (k in 1: length ( pai . todos ))
{
i f ( sum ( ! i s . na ( pai . todos [ [ k]]))==1) break
n1=n1+1
}
X=matrix ( nrow=n , n c o l=p)
X1=rmnorm(n , mean = rep (0 , n1 ) , diag (n1 ))
X[ , 1 : n1 ] = X1
f o r ( i in 1:p)
i f ( sum ( pai . todos [ [ i ]])==0) X[ , i ]=X[ , i ] e l s e
i f ( length ( pai . todos [ [ i ]])==1) X[ , i ]=X[ , pai . todos [ [
i ] ] ] c o e f [ [ i ]]+ rnorm (n ,0 ,0.01) e l s e
X[ , i ]=X[ , pai . todos [ [ i ] ] ]%%as . matrix ( c o e f [ [
i ]])+ rnorm (n ,0 ,0.01)
write . t a b l e (X, paste ( "arvore_piloto_inout_" , i3 , "_" ,
p , "_.txt" , sep="" ))
}
( corpcor )
( igraph )
# Funo que c a l c u l a a c o r r e l a c a o e o p v a l o r
cor
< f u n c t i o n
nrow
R < cor
< row R
col R
< R
<
R
<
pf
. prob
(X, dfr =
(X) 2) {
(X)
above
( )< ( )
r2
[ above ]^2
Fstat
r2 dfr (1 r2 )
[ above ]
1
( Fstat , 1 , dfr )
R}
54
APNDICE C. SCRIPTS EM R
covX=cov (X)
# M a t r i z das c o r r e l a c o e s
corX=cor (X)
# P v a l o r a p a r t e t r i n g u l a r de cima da m a t r i z
# S e l e c i o n a n d o os p a r e s s i g n i f i c a n t e m e n t e
# correlacionados
# C a l c u l a n d o a c o r r e l a c a o p a r c i a l a t r a v e s do metodo
# inverso
pos<make
<
pos
corr .
. positive . d e f i n i t e (covX)
corr . inv cor2pcor ( corr . )
# C a l c u l a n d o o p v a l o r da c o r r e l a c a o p a r c i a l
<array
dim c
corr . inv . p
(99 , = (p , p))
f o r ( i in 1:( p 1))
f o r ( j in ( i +1):p)
i f (A[ i , j ] !=0)
corr . inv . p [ i , j ]<1pnorm ( abs ( s q r t (n
(p 2) 3) l o g ((1+ corr . inv [ i ,
j ] ) /(1 corr . inv [ i , j ] ) ) / 2))
l i s t a= l i s t (A, corr . inv . p)
return ( l i s t a )
}
p=100
f o r (n in c (250 ,500 ,1000))
C.5.
for
55
( i1 in c (1:500))
# Lendo os dados
#
#
#
#
A=ginvmet2 (X,0.01)
write . t a b l e (A[ [ 2 ] ] , f i l e =paste ( "pvalor_arvore_inout_"
, i1 , "_" ,p , "_" ,n , ".txt" , sep="" ))
riwish2=f u n c t i o n (v , S)
{
return ( s o l v e ( rwish2 (v , s o l v e (S ) ) ) )
}
rwish2=f u n c t i o n (v , S)
{
i f ( ! i s . matrix (S))
S < matrix (S)
i f ( nrow (S) != n c o l (S)) {
stop ( message = "S not square in rwish ().\n" )
}
i f (v < nrow (S)) {
stop ( message = "v is less than the dimension
rwish ().\n" )
}
of S in
56
APNDICE C. SCRIPTS EM R
# Funo f b s t
}
piloto=1
f o r (p in c (100))
f o r (n in c (1000))
f o r ( i1 in c (1:50))
{
# Lendo os dados
seq
))] =
C.5.
57
mediaX=colMeans (X. p ,
lambda0=mediaX
k0=p+3
psi0=(k0p 1)covX
v0=1
na rm
= FALSE, dims = 1)
# A posteriori
k1=k0+n
soma=0
f o r ( i in 1:n)
soma=soma + (X[ i ,] mediaX)%%t (X[ i ,] mediaX)
psi1=psi0+soma+(n v0 / (n+v0 )) (mediaXlambda0)%%
t (mediaXlambda0)
covpar=matrix ()
58
APNDICE C. SCRIPTS EM R
corpar=vector ()
fbst=matrix ( rep (0 ,p^2) , n c o l=p , nrow=p)
f o r ( i in 1:( p 1))
f o r ( j in ( i +1):(p))
i f (A[ i , j ] !=0)
{
psi1 . i j=psi1 [ c ( i , j ) , c ( i , j )] psi1 [ c ( i , j ),
c ( i , j ) ]%%s o l v e ( psi1 [ c ( i , j ), c ( i ,
j ) ] )%%psi1 [ c ( i , j ) , c ( i , j ) ]
f o r (k2 in 1:1000)
{
i f ( i s . positive . d e f i n i t e ( s o l v e (
psi1 . i j ) , method="chol")==
TRUE)
{
covar=riwish (k1 , psi1 . i j )
} else
{
invcovar=rwish2 (k1 , psi1 . i j )
while ( i s . positive . d e f i n i t e (
invcovar)==FALSE)
invcovar=rwish2 (k1 ,
psi1 . i j )
covar=s o l v e ( invcovar )
}
covpar=covar
corpar [ k2]=( covpar [ 1 , 2 ] ) / s q r t (
covpar [1 ,1 ] covpar [ 2 , 2 ] )
}
fbst [ i , j ]= fbst . area ( corpar ,0)
fbst [ j , i ]= fbst [ i , j ]
}
write . t a b l e ( fbst , f i l e =paste ( "fbst_global_arvore_
piloto_inout_" , i1 , "_" ,p , "_" ,n , ".txt" , sep="" ))
}
C.6.
59
#v e t o r com o p c o e s de nmero de o b s e r v a e s
########l e n d o os dados
(p in c (100))
(n in 50)
f o r ( i3 in 1:50)
i f (p>=n)
{
for
for
,p ,
, sep= ) ) ) [ 1 : n , ]
X=as . matrix ( read . t a b l e ( f i l e =paste ( "arvore_inout_" ,
i3 , "_" ,p , ".txt" , sep="" ) ) ) [ 1 : n , ]
p=n c o l (X)
colnames (X)= c ( seq (1: n c o l (X)))
Xoriginal=X
covX=cov (X)
corX=cor (X)
pvalcor=cor . prob (X)
alpha =0.01
A=matrix ( , n c o l=p , nrow=p)
colnames (A)= c (1: p)
f o r ( i in 1:( p 1))
f o r ( j in ( i +1):p)
{
A[ i , j ]= i f e l s e ( pvalcor [ i , j ]<alpha , corX [ i , j ] ,0)
60
APNDICE C. SCRIPTS EM R
A[ j , i ]=A[ i , j ]
}
diag (A)=0
g1=graph . adjacency (A, mode=(" undirected " ) , weighted=
TRUE)
V( g1 ) $name < c ( seq (1: p))
# Acessando os e l o s
edges=get . a d j l i s t ( g1 )
Ap=matrix (99 , n c o l=n c o l (X) , nrow=n c o l (X))
Af=matrix ( rep (0 ,p^2) , n c o l=n c o l (X) , nrow=n c o l (X))
f o r (k in 1: n c o l (X))
{
vertices=edges [ [ k ] ]
i f ( sum ( ! i s . na ( vertices )) !=0)
f o r ( j in 1: length ( vertices ))
{
i f ( vertices [ j]+1>k && A[ k , vertices [ j ]+
1] !=0)
{
i1=as . c h a r a c te r (k)
j1=as . c h a r a c te r ( vertices [ j ]+
1)
v i z l i s t=graph . neighborhood (
g1 , 1 , nodes=c ( i1 , j1 ) ,
mode=c ( "all" ))
viz=s o r t ( as . i n t e g e r ( unique ( c (
V( v i z l i s t [ [ 1 ] ] ) $name ,V(
v i z l i s t [ [ 2 ] ] ) $name)) ,
decreasing=TRUE))
#Diminuindo a q u a n t i d a d e de v i z i n h o s , caso tenhamos
# mais v i z i n h o s do que o b s e r v a e s
if
( length ( viz)>=n)
posicao . i=vector ()
posicao . j=vector ()
C.6.
61
. maiores=s o r t ( abs (
( (
cor . maiores . j ,
cor . maiores . i ))) ,
decreasing=TRUE) [
1 : ( ( n/ 2 ) ) ]
cor . maiores . i=
cor . maiores . i [
abs ( cor . maiores . i )
%in%cor . maiores ]
cor . maiores . j=
cor . maiores . j [
abs ( cor . maiores . j )
%in%cor . maiores ]
cor
unique c
# Pegando os v r t i c e s c o r r e s p o n d e n t e s as n maiores
# c o r r e l a e s em cada v r t i c e do par
( i2 in 1: length (
. maiores . i ))
posicao . i [ i2 ]= which (A[ ,
c (k)]== cor . maiores . i [
i2 ] , useNames = TRUE)
f o r ( i2 in 1: length (
cor . maiores . j ))
posicao . j [ i2 ]= which (A[ ,
c ( vertices [ j ]+1)]==
cor . maiores . j [ i2 ] ,
useNames = TRUE)
for
cor
# Pegando os v e r t i c e s v i z i n h o s mais c o r r e l a c i o n a d o s
# do par , assim como o p r o p r i o par
viz=unique ( s o r t ( c (k ,
vertices [ j ]+1 ,
unique ( c ( posicao . i ,
posicao . j ) ) ) ) )
}
l c l<length ( viz )
Csub=covX [ viz , viz ]
corr . inv<cor2pcor (Csub)
rownames ( corr . inv)=viz
colnames ( corr . inv)=viz
62
APNDICE C. SCRIPTS EM R
}
write
(MCMCpack)
( corpcor )
r e q u i r e ( igraph )
r e q u i r e ( zoo )
require
require
##### f u n c o e s
riwish2=f u n c t i o n (v , S)
{
return ( s o l v e ( rwish2 (v , s o l v e (S ) ) ) )
}
rwish2=f u n c t i o n (v , S)
{
i f ( ! i s . matrix (S))
S < matrix (S)
i f ( nrow (S) != n c o l (S)) {
stop ( message = "S not square in
}
i f (v < nrow (S)) {
rwish ().\n" )
C.7.
stop
( message =
}
p < nrow (S)
CC < c h o l (S , pivot=TRUE)
Z < matrix (0 , p , p)
diag (Z) < s q r t ( r c h i s q (p , v : ( v p + 1)))
i f (p > 1) {
pseq < 1:( p 1)
Z[ rep (p pseq , pseq ) + u n l i s t ( l a p p l y ( pseq ,
] = rnorm (p (p 1) / 2)
}
return ( crossprod (Z %% CC))
xt
yt
<
<
Y x[5] Y x [ 4 ]
Y$y [Y$y<Y$y [Y$x==x ] ]
return ( sum ( xt yt ))
}
}
<
<
cor
63
#### c a l c u l a n d o f b s t
seq
))
64
APNDICE C. SCRIPTS EM R
piloto=1
########l e n d o os dados
(p in c (100))
(n in c (50))
f o r ( i3 in c (47:22))
{
#marca a hora do i n i c i o
i n i c i o=Sys . time ()
for
for
#l e n d o os dados da a r v o r e
#dando nomes as c o l u n a s na a r v o r e
##################
else
covX=cov (X)
#P v a l o r no t r i a n g u l o s u p e r i o r da m a t r i x e c o r r e l a c a o
# no t r i a n g u l o i n f e r i o r
C.7.
diag
(A)=0
#g r a f o com as c o r r e l a c o e s
mode
" undirected "
#nomeando os v e r t i c e s do g r a f o
$
< c seq
) , weighted=TRUE)
############# Acessando os e l o s
##### b a y e s i a n a
# Pegando , para cada v r t i c e , os demais v e r t i c e s que tem
# l i g a c a o com e s s e v r t i c e
edges=get . a d j l i s t ( g1 )
fbst=matrix ( , n c o l=p , nrow=p)
Ap=matrix ( , n c o l=p , nrow=p)
Af=matrix ( rep (0 ,p^2) , n c o l=p , nrow=p)
for
(k in 1:p)
#v e r t i c e s que fazem l i g a c a o com o v e r t i c e k
vertices=edges [ [ k ] ]
i f ( length ( vertices ) !=0)
{
i f ( length ( vertices )==1)
{
fbst [ k , ( vertices +1)]= pvalcor [ k ,
( vertices +1)]
fbst [ ( vertices +1),k]= fbst [ k , (
vertices +1)]
} else
{
f o r ( j in 1: length ( vertices ))
{
#
#
#
#
65
66
APNDICE C. SCRIPTS EM R
v i z l i s t=graph . neighborhood (
g1 , 1 , nodes=c ( i1 , j1 ) ,
mode=c ( "all" ))
#t o d o s os v i z i n h o s dos d o i s v e r t i c e s do par ,
#i n c l u i n d o e l e s .
viz=s o r t ( as . i n t e g e r ( unique (
c (V( v i z l i s t [ [ 1 ] ] ) $ name ,
V( v i z l i s t [ [ 2 ] ] ) $name)) ,
decreasing=TRUE))
posicao . i=vector ()
posicao . j=vector ()
#diminuindo a q u a n t i d a d e de
#v i z i n h o s , caso tenhamos mais
#v i z i n h o s do que o b s e r v a c o e s
if
( length ( viz)>=n)
#pegando as n maiores
#c o r r e l a c o e s de cada
#v e r t i c e do par
#pegando as n4 maiores
#c o r r e l a c o e s g e r a i s
. maiores=s o r t ( abs (
( (
cor . maiores . j ,
cor . maiores . i ))) ,
decreasing=TRUE) [
1:( n/ 2)]
cor . maiores . i=
cor . maiores . i [ abs (
cor . maiores . i ) %in%
cor . maiores ]
cor . maiores . j=
cor . maiores . j [ abs (
cor . maiores . j ) %in%
cor . maiores ]
cor
unique c
C.7.
67
# pegando os v e r t i c e s
#c o r r e s p o n d e n t e s as n
#maiores c o r r e l a c o e s em
#cada v e r t i c e do par
( i2 in 1: length (
. maiores . i ))
posicao . i [ i2 ]=
which (A[ , c (k)]==
cor . maiores . i [ i2 ] ,
useNames = TRUE)
f o r ( i2 in 1: length (
cor . maiores . j ))
posicao . j [ i2 ]=
which (A[ , c (
vertices [ j ]+1)]
==cor . maiores . j [
i2 ] , useNames =
TRUE)
for
cor
#Pegando os v e r t i c e s v i z i n h o s mais c o r r e l a c i o n a d o s do
#par , assim como o p r o p r i o par
viz=unique ( s o r t ( c (k ,
vertices [ j ]+1 ,
unique ( c ( posicao . i ,
posicao . j ) ) ) ) )
}
#Pegando os dados s i m u l a d o s apenas da v i z i n h a n a
#mais c o r r e l a c i o n a d a do par
# A priori
# A posteriori
X=X[ , viz ]
X. p=X. p [ , viz ]
l c l<n c o l (X)
mediaX=colMeans (X. p ,
na . rm = FALSE, dims = 1)
lambda0=mediaX
k0=l c l +3
psi0=(k0 lcl 1)cov (X. p)
v0=1
mediaX=colMeans (X,
na . rm = FALSE, dims = 1)
k1=k0+n
soma=0
f o r ( i in 1:n)
soma=soma + (X[ i ,]
mediaX)%%t (X[ i ,]
68
APNDICE C. SCRIPTS EM R
mediaX)
psi1=psi0+soma+(n v0 / (n+v0 ))
(mediaXlambda0)%%t (
mediaXlambda0)
# Estimando c o r r e l a c a o p a r c i a l usando l i s t a s
covpar=matrix ()
corpar=vector ()
# Posio do v e r t i c e k na v i z i n h a n a mais
# correlacionada
i2=which ( viz==k)
# Posicao do o u t r o v e r t i c e do par da i t e r a c a o na
# v i z i n h a n c a mias c o r r e l a c i o n a d a
# C a l c u l a n d o a o paramentro da d i s t r i b u i c a o i n v e r s e
# w i s h a r t da c o v a r i a n c i a p a r c i a l
psi . i j=psi1 [ c ( i2 , j2 ) , c ( i2 , j2 ) ]
psi1 [ c ( i2 , j2 ), c ( i2 , j2 )]%
%s o l v e ( psi1 [ c ( i2 , j2 ), c (
i2 , j2 ) ] )%%psi1 [ c ( i2 , j2 ) ,
c ( i2 , j2 ) ]
i f ( i s . positive . d e f i n i t e (
psi . ij , method="chol")==
FALSE)
psi . i j=make . positive . d e f i n i t e (
psi . ij , tol=1e 20)
covpar=matrix ()
f o r (k2 in 1:1000)
{
i f ( i s . positive . d e f i n i t e (
s o l v e ( psi . ij , tol=
1e 20),method="chol"
)==TRUE){ covar=s o l v e (
rwish (k1 , s o l v e ( psi . ij ,
tol=1e 20)))} e l s e
{
invcovar=rwish2 (k1 ,
psi . i j )
while (
i s . positive . d e f i n i t e (
invcovar)==FALSE)
invcovar=rwish2 (k1 ,
psi . i j )
covar=s o l v e ( invcovar )
C.8.
69
}
#c o v p a r=c o v a r [ c ( i2 , j 2 ) ,
#c ( i2 , j 2 )] c o v a r [ c ( i2 , j 2 ) ,
#c ( i2 , j 2 ) ]%%s o l v e ( c o v a r [
#c ( i2 , j 2 ), c ( i2 , j 2 ) ] )%%
#c o v a r [ c ( i2 , j 2 ) , c ( i2 , j 2 ) ]
#f b s t para H0 :
covpar=covar
i f ( covpar [1 ,1] <0) covpar [1 ,1
]= covpar [1 ,1 ]
i f ( covpar [2 ,2] <0) covpar [2 ,2
]= covpar [2 ,2 ]
corpar [ k2]=( covpar [ 1 , 2 ] ) /
s q r t ( covpar [1 , 1 ]
covpar [ 2 , 2 ] )
}
corpar=subset ( corpar , subset =(corpar !=
"NaN" ))
correlacao parcial = 0
fbst [ k , ( vertices [ j ]+1)]=
fbst . area ( corpar ,0)
fbst [ ( vertices [ j ]+1) ,k]=
fbst [ k , ( vertices [ j ]+1)]
}
op ; l
70
APNDICE C. SCRIPTS EM R
####################### comeca a q u i
require
( igraph )
# funcao que c a l c u l a a c o r r e l a c a o e o p v a l o r na
# mesma m a t r i z
cor
< f u n c t i o n
nrow
R < cor
< row R
col R
< R
<
R
<
pf
. prob
(X, dfr =
(X) 2) {
(X)
above
( )< ( )
r2
[ above ]^2
Fstat
r2 dfr (1 r2 )
[ above ]
1
( Fstat , 1 , dfr )
R}
i n i c i o=Sys . time ()
p=100
f o r (n in c (1000))
{
s e n s i t i v i t y= l i s t ()
s p e c i f i c i t y= l i s t ()
# i n d i c a d o r a s e vamos t r a b a l h a r com e s t i s t i c a
# c l a s s i c a 1 ou b a y e s i a n a 0
if
(n<=p) global=0
else
global=1
f o r ( l in c (1:20))
{
X=as . matrix ( read . t a b l e ( f i l e =paste ( "arvore_inout_" , l , "_" ,
p , ".txt" , sep="" ) ) ) [ 1 : n , ]
pvalcor=cor . prob (X)
corX=cor (X)
alpha =0.01
A=matrix (99 , n c o l=p , nrow=p)
f o r ( i in 1:( p 1))
f o r ( j in ( i +1):p)
{
A[ i , j ]= i f e l s e ( pvalcor [ i , j ]<alpha , corX [ i , j ] ,0)
A[ j , i ]=A[ i , j ]
}
diag (A)=0
C.8.
if
}
{
71
( c l a s s i c o==1)
i f ( global==1)
pvalor=read . t a b l e ( paste ( "pvalor_arvore_inout_" , l ,
"_" ,p , "_" ,n , ".txt" , sep="" )) e l s e
pvalor=read . t a b l e ( paste ( "pvalor_arvore_inout_local_
" , l , "_" ,p , "_" ,n , "_2. txt" , sep="" ))
else
i f ( global==1)
pvalor=read . t a b l e ( paste ( "
fbst_global_arvore_piloto_inout_" , l , "_" ,p ,
"_" ,n , ".txt" , sep="" )) e l s e
pvalor=read . t a b l e ( paste ( "
fbst_local_arvore_inout_" , l , "_" ,p , "_" ,n ,
"_2. txt" , sep="" ))
( i s . na ( pvalor [ 1 , 1 ] ) )
A1<read . t a b l e ( paste ( "original_inout_" , l , "_" ,p , ".txt" ,
sep="" ))
s e n s i t i v i t y [ [ l ]]= vector ()
s p e c i f i c i t y [ [ l ]]= vector ()
alpha=c ( seq (0 ,1 ,0.05))
dados=matrix ( , nrow=1, n c o l=length ( alpha ))
colnames ( dados)=alpha
f o r (k in 1: length ( alpha ))
{
Af=matrix (0 , n c o l=p , nrow=p)
f o r ( i in 1:( p 1))
f o r ( j in ( i +1):(p))
i f ( ! i s . na ( pvalor [ i , j ] ) & ( pvalor [ i , j ] < alpha [ k ] ) )
{
Af [ i , j ]=1
Af [ j , i ]=1
}
A2=A Af
A3=get . adjacency ( graph . adjacency (A2, weighted=TRUE))
if
###### contando l i g a c o e s f a l s a s e v e r d a d e i r a s
72
APNDICE C. SCRIPTS EM R
## e s c r e v e n d o a s e n s i b i l i d a d e e a e s p e c i f i c i d a d e de t o d a s
#v as a r v o r e s s e p a r a d a s
C.8.
73
"_classico_local.txt" , sep="" ) ,
}
{
=alpha )
c o l names
}
else
if
( global==1)
. t a b l e ( dados . sens , paste ( "
sensitivity_inout_" ,p , "_" ,n ,
"_bayesiano_global.txt" , sep="" ) ,
write
=alpha )
write . t a b l e ( dados . spec , paste ( "
specificity_inout_" ,p , "_" ,n ,
"_bayesiano_global.txt" , sep="" ) ,
c o l . names=alpha )
c o l names
}
{
else
=alpha )
write . t a b l e ( dados . spec , paste ( "
specificity_inout_" ,p , "_" ,n ,
"_bayesiano_local.txt" , sep="" ) ,
c o l . names=alpha )
c o l names
}
{
else
}
if
( c l a s s i c o==1)
i f ( global==1)
{
=TRUE, c o l . names=FALSE,
=l )
write . t a b l e ( dados . spec , paste ( "
specificity_inout_" ,p , "_" ,n ,
"_classico_global.txt" , sep="" ) ,
append=TRUE, c o l . names=FALSE,
row . names=l )
append
row names
else
74
APNDICE C. SCRIPTS EM R
=TRUE, c o l . names=FALSE,
=l )
write . t a b l e ( dados . spec , paste ( "
specificity_inout_" ,p , "_" ,n ,
"_classico_local.txt" , sep="" ) ,
append=TRUE, c o l . names=FALSE,
row . names=l )
append
row names
}
}
{
else
if
( global==1)
. t a b l e ( dados . sens , paste ( "
sensitivity_inout_" ,p , "_" ,n ,
"_bayesiano_global.txt" , sep="" ) ,
write
=TRUE, c o l . names=FALSE,
=l )
write . t a b l e ( dados . spec , paste ( "
specificity_inout_" ,p , "_" ,n ,
"_bayesiano_global.txt" , sep="" ) ,
append=TRUE, c o l . names=FALSE,
row . names=l )
append
row names
}
{
else
=TRUE, c o l . names=FALSE,
=l )
write . t a b l e ( dados . spec , paste ( "
specificity_inout_" ,p , "_" ,n ,
"_bayesiano_local.txt" , sep="" ) ,
append=TRUE, c o l . names=FALSE,
row . names=l )
append
row names
}
}
mean
mean
. sens=vector ()
. spec=vector ()
C.8.
75
. sens=vector ()
. spec=vector ()
q1 . sens=vector ()
q1 . spec=vector ()
q3 . sens=vector ()
q3 . spec=vector ()
f o r (k in 1: length ( alpha ))
{
mean . sens [ k]=mean ( sapply ( sensitivity , f u n c t i o n (x)
x[k]))
mean . spec [ k]=mean ( sapply ( s p e c i f i c i t y , f u n c t i o n (x)
x[k]))
median . sens [ k]= median ( sapply ( sensitivity , f u n c t i o n (x)
x[k]))
median . spec [ k]= median ( sapply ( s p e c i f i c i t y , f u n c t i o n (x)
x[k]))
q1 . sens [ k]= q u a n t i l e ( sapply ( sensitivity , f u n c t i o n (x)
x[k]) ,0.25)
q1 . spec [ k]= q u a n t i l e ( sapply ( s p e c i f i c i t y , f u n c t i o n (x)
x[k]) ,0.25)
q3 . sens [ k]= q u a n t i l e ( sapply ( sensitivity , f u n c t i o n (x)
x[k]) ,0.75)
q3 . spec [ k]= q u a n t i l e ( sapply ( s p e c i f i c i t y , f u n c t i o n (x)
x[k]) ,0.75)
}
median
median
if
( c l a s s i c o==1)
i f ( global==1)
write . t a b l e ( data . frame ( alpha , mean . sens , mean . spec ,
median . sens , median . spec , q1 . sens , q1 . spec ,
q3 . sens , q3 . spec ) , f i l e =paste ( "
media_quantis_sens_spec_inout_" ,p , "_" ,n ,
"_classico_global.txt" , sep="" )) e l s e
write . t a b l e ( data . frame ( alpha , mean . sens , mean . spec ,
median . sens , median . spec , q1 . sens , q1 . spec ,
q3 . sens , q3 . spec ) , f i l e =paste ( "
media_quantis_sens_spec_inout_" ,p , "_" ,n ,
"_2_classico_local.txt" , sep="" ))
76
}
{
APNDICE C. SCRIPTS EM R
else
( global==1)
. t a b l e ( data . frame ( alpha , mean . sens , mean . spec ,
median . sens , median . spec , q1 . sens , q1 . spec ,
q3 . sens , q3 . spec ) , f i l e =paste ( "
media_quantis_sens_spec_inout_" ,p , "_" ,n ,
"_bayesiano_global.txt" , sep="" )) e l s e
write . t a b l e ( data . frame ( alpha , mean . sens , mean . spec ,
median . sens , median . spec , q1 . sens , q1 . spec , q3 . sens ,
q3 . spec ) , f i l e =paste ( "media_quantis_sens_spec_inout_" ,
p , "_" ,n , "_bayesiano_local.txt" , sep="" ))
if
write
}
}
fim=Sys . time ()
fim i n i c i o
Referncias Bibliogrcas
[1] K. Baba, R. Shibata, and M. Sibuya. Partial correlation and conditional
correlation as measures of conditional independence.
[2] R. Bhatia.
Australian and
Addison-
Springer-Verlag New
Me-
[7] J.J. Goeman and P. Bhlmann. Analyzing gene expression data in terms
of gene sets: methodological issues.
[8] L. Han and J. Zhu.
2.
Multivariate Analysis.
under
78
REFERNCIAS BIBLIOGRFICAS
SIAM
104:735746,
2009.
[14] C. A. B. Pereira and J. M. Stern. Evidence and credibility: Full bayesian
signicance test for precise hypotheses.
edition, 1982.
[16] H. Raia and R. Schlaifer.
Harvard
Neurocincia.
Bioinfor-