• No se han encontrado resultados

Tema 7: Modelos Bayesianos

N/A
N/A
Protected

Academic year: 2021

Share "Tema 7: Modelos Bayesianos"

Copied!
31
0
0

Texto completo

(1)

Tema 7: Modelos Bayesianos

Introducci´

on

La aplicaci´on de modelos bayesianos en modelos de regresi´on est´andar o en modelos

de regresi´on log´ıstica sigue el esquema general de la estad´ıstica bayesiana: Definir la distribuci´on a priori correspondiente para los par´ametros. Determinar la verosimilitud de los datos

Aplicar el teorema de Bayes para actualizar la distribuci´on a priori en forma de

distribuci´on a posteriori

En los casos que se ven habitualmente en el curso de Estad´ıstica Bayesiana se

consi-deran modelos con un par´ametro en cada vez, es decir no se consideraban habitualmente

la situaci´on de varios par´ametros al tiempo (caso multiparam´etrico). En el caso de los

modelos de regresi´on, se tienen que considerar varios par´ametros al mismo tiempo. Por

ejemplo en el caso de la regresi´on simple hay tres par´ametros: el intercept, la pendiente y

la varianza de los errores.

Desde el punto de vista computacional, se tienen bastantes opciones de aplicaci´on. El

programa m´as generalista que se puede aplicar es WinBugs, como programa original, o sus

sucesores:OpenBugs, Jags oStan.

Introducci´

on a WinBUGS

WinBUGS es un programa libre que procede del Biostatistics Unit del Medical Re-search Council (UK):

http://www2.mrc-bsu.cam.ac.uk/bugs/winbugs/contents.shtml http://www.wcsmalaysia.org/analysis/WinBUGS install.htm

(2)

Una vez instalado, un programa de WinBUGS consiste en tres partes:

1. Programa Principal: Un conjunto de instrucciones con estilo R que incluyen las

distribuciones a priori de los par´ametros y la verosimilitud de los datos.

2. Conjunto de datos: Los datos originales en formato R o en formato de array.

3. Valores Iniciales de las cadenas: Son opcionales pero es conveniente indicar el valor de las semillas de las cadenas de Markov del MCMC.

WinBUGS resuelve los problemas de estimaci´on bayesiana multiplicando la

distribu-ci´on a priori por la verosimilitud y luego simulando muestras de la distribuci´on a posteriori mediante del algoritmo de Gibbs.

(3)
(4)

Instrucciones de uso del programa WinBugs

Consideramos este modelo b´asicobeta-binomial, que se copia en la ventana de

coman-dos deWinBugs: # M o d e l o B e t a - B i n o m i a l m o d e l { y ∼ d b i n ( p , n ) p ∼ d b e t a( alfa , b e t a) } # d a t o s l i s t( y =6 , n =14 , a l f a =0 .5 , b e t a=0 .5 ) # V a l o r e s i n i c i a l e s l i s t( p =0 .5 )

1. Cargar el modelo: En Specification Tool del men´u Model, marca model y

pulsa en checkmodel.

2. Cargar los datos: En Specification Tooldel men´uModel, marca el list que

aparece con los datos y pulsa en load data.

3. Compilar el programa: EnSpecification Tooldel men´uModel, marca com-pile.

4. Cargar valores iniciales de la(s) cadena(s): En Specification Tool del

men´uModel, marcalistque aparece con los valores iniciales y pulsa enload inits.

Para ejecutar el programa: ve almen´u principal:

Inference ⇒Samples

Aparece el monitor Sample Monitor Tool. Escribe p en el nodo menu y pulsa set,

para especificar que se va amonitorizar el nodo p (por defecto con 1000000 iteraciones).

Pon, por ejemplo, 5000 iteraciones.

(5)

Model ⇒Update ⇒Update tool

Pulsa update para correr 5000 iteraciones m´as.

Las gr´aficas y los diversos estad´ısticos se obtienen a partir del men´u Sample Monitor

(6)

NOTAS:

Mira un tutorial completo sobre WinBugs en:

http://www.stat.uiowa.edu/~gwoodwor/BBIText/AppendixBWinbugs.pdf

Mira unapel´ıcula tutorial sobre el uso de WinBugs en:

http://www.mrc-bsu.cam.ac.uk/bugs/winbugs/winbugsthemovie.html

Es mejor usar la aternativa m´as actualizada de OpenBugs:

http://www.openbugs.net/w/FrontPage

Curso completo de I.Ntzoufras:

http://stat-athens.aueb.gr/~jbn/courses/2011_dublin_winbugs/ WinBUGS_course_1-3_eng_Dublin_2011.pdf

(7)

Alternativa usando la interface de R con WinBugs/OpenBugs:

Se puede automatizar el procedimiento anterior usando una interfaz entre R y WinBugs o bien OpenBugs. r u t a = " c :/d o n d e s e a/" s e t w d( r u t a ) # F i j o l a r u t a d e t r a b a j o l i b r a r y( R 2 O p e n B U G S ) # . . . . # P R O G R A M A d e B U G S : cat( " # M o d e l o Beta - B i n o m i a l m o d e l { y ∼ d b i n ( p , n ) p ∼ d b e t a ( alfa , b e t a ) } " , f i l e= " m o d e l o . t x t " ) # . . . . # I n t r o d u z c o l o s d a t o s y = 6 n = 20 a l f a = 0 .5 b e t a = 0 .5 # A l t e r n a t i v a m e n t e , s e p u e d e n l e e r d a t o s d e s d e o t r o f i c h e r o # x = r e a d . t a b l e ( " d a t o s . t x t " , h e a d e r = F ) d a t o s = l i s t( " y " , " n " , " a l f a " , " b e t a " ) p a r a m e t r o s = " p " i n i c i a l e s = f u n c t i o n() {l i s t( p =r u n i f(1) ) } b i n o m . s i m = b u g s (d a t a= datos , i n i t s = i n i c i a l e s , p a r a m e t e r s . t o . s a v e = p a r a m e t r o s , m o d e l . f i l e = " m o d e l o . t x t " , n . c h a i n s =3 , n . i t e r =10000 , n . b u r n i n =5000 , w o r k i n g . d i r e c t o r y = ruta , c l e a r W D = TRUE , d e b u g= T R U E ) p r i n t( b i n o m . s i m ) # B o r r a s e l f i c h e r o d e i n s t r u c c i o n e s d e l d i r e c t o r i o d e t r a b a j o

(8)

f i l e . r e m o v e ( " m o d e l o . t x t " ) I n f e r e n c e for B u g s m o d e l at " m o d e l o . t x t " , C u r r e n t : 3 chains , e a c h w i t h 1 0 0 0 0 i t e r a t i o n s ( f i r s t 5 0 0 0 d i s c a r d e d ) C u m u l a t i v e : n . s i m s = 1 5 0 0 0 i t e r a t i o n s s a v e d m e a n sd 2 .5 % 25 % 50 % 75 % 97 .5 % R h a t n . e f f p 0 .3 0 .1 0 .1 0 .2 0 .3 0 .4 0 .5 1 1 5 0 0 0 d e v i a n c e 4 .3 1 .4 3 .3 3 .4 3 .7 4 .6 8 .2 1 8 1 0 0 For e a c h p a r a m e t e r , n . e f f is a c r u d e m e a s u r e of e f f e c t i v e s a m p l e size , and R h a t is the p o t e n t i a l s c a l e r e d u c t i o n f a c t o r ( at c o n v e r g e n c e , R h a t =1) . DIC i n f o ( u s i n g the rule , pD = Dbar - D h a t )

pD = 1 .0 and DIC = 5 .2

DIC is an e s t i m a t e of e x p e c t e d p r e d i c t i v e e r r o r ( l o w e r d e v i a n c e is b e t t e r ) .

Alternativa usando la interface de R con OpenBugs: BRugs

Alternativamente, R tiene una librer´ıa basada en la versi´on OpenBugs que funciona

como cualquier otra librer´ıa deR: BRugs.

El programa correspondiente para R es:

r u t a = " c :/d o n d e s e a/" s e t w d( r u t a ) # F i j o l a r u t a d e t r a b a j o l i b r a r y( B R u g s ) # . . . . # P R O G R A M A d e B U G S : cat( " # M o d e l o Beta - B i n o m i a l m o d e l { y ∼ d b i n ( p , n ) p ∼ d b e t a ( alfa , b e t a ) } " , f i l e= " m o d e l o . t x t " ) # . . . . # I n t r o d u z c o l o s d a t o s y = 6

(9)

n = 20 a l f a = 0 .5 b e t a = 0 .5 # A l t e r n a t i v a m e n t e , s e p u e d e n l e e r d a t o s d e s d e o t r o f i c h e r o # x = r e a d . t a b l e ( " d a t o s . t x t " , h e a d e r = F ) d a t o s = l i s t( " y " , " n " , " a l f a " , " b e t a " ) p a r a m e t r o s = " p " i n i c i a l e s = f u n c t i o n() {l i s t( p =r u n i f(1) ) }

(10)

# P r o g r a m a c o n B R u g s m o d e l o = B R u g s F i t (d a t a= datos , i n i t s = i n i c i a l e s , p a r a = p a r a m e t r o s , n B u r n i n =5000 , n I t e r =10000 , m o d e l F i l e = " m o d e l o . t x t " , n u m C h a i n s =3 , w o r k i n g . d i r e c t o r y = r u t a ) p S a m p = s a m p l e s S a m p l e ( " p " ) m o d e l o # R e s u l t a d o s d e l a E s t i m a c i o n p M e d = m e d i a n( p S a m p )

cat( " La m e d i a n a de las s i m u l a c i o n e s es : " , pMed , " \ n " )

X11() p l o t D e n s i t y ( " p " , x l a b = " p " , m a i n = " D e n s i d a d de p " ) X11() h i s t i n f o = h i s t( pSamp , x l a b = " p " , y l a b = " F r e c u e n c i a s " , f r e q = F , m a i n = " p e s t i m a d a " , col= " l i g h t b l u e " ) f i l e . r e m o v e ( " m o d e l o . t x t " )

cat( " La m e d i a n a de las s i m u l a c i o n e s es : " , pMed , " \ n " )

$ S t a t s m e a n sd MC _ e r r o r v a l 2 . 5 p c m e d i a n v a l 9 7 . 5 p c s t a r t s a m p l e p 0 . 3 0 9 1 0 . 0 9 8 0 9 0 . 0 0 0 5 5 0 . 1 3 6 3 0 . 3 0 3 0 . 5 1 6 8 5 0 0 1 3 0 0 0 0 $ DIC D b a r D h a t DIC pD y 4 . 2 6 6 3 . 3 1 2 5 . 2 2 1 0 . 9 5 4 4 t o t a l 4 . 2 6 6 3 . 3 1 2 5 . 2 2 1 0 . 9 5 4 4 La m e d i a n a de las s i m u l a c i o n e s es : 0 . 3 0 3 0 2

(11)

Algunas ideas sobre regresi´

on simple bayesiana

Se necesita definir la distribuci´on conjunta a priori sobre α, β y σ. Se especifican

´estas como distribuciones a priori independientes (cuando se multiplican producen una

distribuci´on conjunta a priori).

α ∼ U(−∞,∞)

β ∼ U(−∞,∞)

log(σ) ∼ U(−∞,∞)

Con esta elecci´on se pueden aproximar los resultados de la regresi´on cl´asica. Se necesita

considerar el logaritmo de la desviaci´on est´andar, dado que la varianza debe ser positiva.

La distribuci´on a priori es equivalente a una densidad que es proporcional a σ12.

Si se trabaja con WinBugs (OpenBugs) se puede aproximar mediante

α ∼ N(0,000001)

β ∼ N(0,000001)

σ ∼ U(0,100) que equivale a usar unas distribuciones a priori difusas.

Nota: En Bugs el segundo par´ametro de la normal es la precisi´on (1/varianza). Por

tanto, escribir α ∼ N(0,000001) equivale a poner una varianza igual a 10000 en una

parametrizaci´on t´ıpica de la normal.

Verosimilitud en regresi´on:

Se tiene que la esperanza de la regresi´on es

E(y) =α+βx

donde los residuos se distribuyen como una normal:ε∼N(0, σ).

De este modo, se puede escribir que

y∼N(α+βx, σ).

As´ı, si se considera una observaci´on dada xi

(12)

La funci´on de verosimilitud es f(yi) = 1 √ 2πσexp 1 σ2 (yi−(α+βxi)) 2

y la funci´on de verosimilitud conjunta es

n Y

i=1

f(yi)

Es decir, es simplemente un grupo de densidades normales multiplicadas entre s´ı: una distribuci´on normal multivariante de dimensi´onn.

Las distribuciones a posteriori deα y deβ son t-Student conn−2 grados de libertad,

y σ2 se distribuye como una chi cuadrado inversa.

Programa de Regresi´on con la librer´ıa MCMCpack de R

l i b r a r y( M C M C p a c k ) e d a d = c (59 ,52 ,37 ,40 ,67 ,43 ,61 ,34 ,51 ,58 ,54 ,31 ,49 ,45 ,66 ,48 ,41 , 47 ,53 ,62 ,60 ,33 ,44 ,70 ,56 ,69 ,35 ,36 ,68 ,38) bp = c (143 ,132 ,88 ,98 ,177 ,102 ,154 ,83 ,131 ,150 ,131 ,69 ,111 ,114 , 170 ,117 ,96 ,116 ,131 ,158 ,156 ,75 ,111 ,184 ,141 ,182 ,74 ,87 ,183 ,89) c o s a = l i s t( X = edad , Y = bp ) p o s t e r i o r = M C M C r e g r e s s ( Y∼X , d a t a= c o s a ) s u m m a r y( p o s t e r i o r ) p l o t( p o s t e r i o r ) I t e r a t i o n s = 1 0 0 1 : 1 1 0 0 0 T h i n n i n g i n t e r v a l = 1 N u m b e r of c h a i n s = 1 S a m p l e s i z e per c h a i n = 1 0 0 0 0 1 . E m p i r i c a l m e a n and s t a n d a r d d e v i a t i o n for e a c h v a r i a b l e , p l u s s t a n d a r d e r r o r of the m e a n : M e a n SD N a i v e SE Time - s e r i e s SE ( I n t e r c e p t ) -21 . 8 2 4 3 . 2 6 2 9 7 0 . 0 3 2 6 2 9 7 0 . 0 3 1 8 7 3 1 X 2 . 9 2 5 0 . 0 6 3 3 3 0 . 0 0 0 6 3 3 3 0 . 0 0 0 6 1 7 2 s i g m a 2 16 . 5 1 6 4 . 8 1 7 2 5 0 . 0 4 8 1 7 2 5 0 . 0 5 1 5 1 0 6

(13)

2 . Q u a n t i l e s for e a c h v a r i a b l e :

2 .5 % 25 % 50 % 75 % 97 .5 % ( I n t e r c e p t ) -28 . 1 8 0 -23 . 9 3 0 -21 . 7 9 6 -19 . 7 2 8 -15 . 3 1 4 X 2 . 7 9 7 2 . 8 8 4 2 . 9 2 5 2 . 9 6 6 3 . 0 4 9 s i g m a 2 9 . 6 2 9 13 . 1 2 0 15 . 6 8 9 18 . 9 4 5 28 . 0 0 3

(14)

Programa de Regresi´on cl´asica c l a s i c o = lm( Y∼X , d a t a= c o s a ) s u m m a r y( c l a s i c o ) C a l l : lm ( f o r m u l a = Y ∼ X , d a t a = c o s a ) R e s i d u a l s : Min 1 Q M e d i a n 3 Q Max -10 . 4 9 1 8 -1 . 8 4 5 3 0 . 3 3 8 4 2 . 7 1 0 5 5 . 9 2 2 2 C o e f f i c i e n t s : E s t i m a t e S t d . E r r o r t v a l u e Pr ( >| t |) ( I n t e r c e p t ) -21 . 8 6 1 5 9 3 . 1 3 2 1 5 -6 .98 1 .37e -07 * * * X 2 . 9 2 5 5 8 0 . 0 6 0 7 1 48 .19 < 2 e -16 * * * -S i g n i f . c o d e s : 0 ’ * * * ’ 0 . 0 0 1 ’ * * ’ 0 .01 ’ * ’ 0 .05 ’ . ’ 0 .1 ’ ’ 1 R e s i d u a l s t a n d a r d e r r o r : 3 . 9 1 1 on 28 d e g r e e s of f r e e d o m M u l t i p l e R - s q u a r e d : 0 .9881 , A d j u s t e d R - s q u a r e d : 0 . 9 8 7 7 F - s t a t i s t i c : 2 3 2 2 on 1 and 28 DF , p - v a l u e : < 2 .2e -16

Se observa que los resultados son muy semejantes. En este caso, el error est´andar elvado

al cuadrado 3,9112 = 15,30 resulta ser equivalente al resultado obtenido para sigma2 en

el planteamiento bayesiano.

En cualquier caso, la interpretaci´on de los resultados es completamente diferente: en

un caso son distribuciones a posteriori y en otro son los estimadores puntuales por m´axima

(15)

Programa de Regresi´on con Winbugs y BRugs rm(l i s t=ls(all= T R U E ) ) r u t a = " C :/D i r e c t o r i o_T r a b a j o " s e t w d( r u t a ) # . . . . # P R O G R A M A d e B U G S # . . . . cat( " # R e g r e s i o n L i n e a l # Se c o n s i d e r a el p a r a m e t r o de p r e c i s i o n tao =1/v a r i a n z a # R e g r e s i o n L i n e a l m o d e l { for ( i in 1: n ) { mu [ i ] < - a l f a + b . e d a d*e d a d [ i ] bp [ i ] ∼ d n o r m ( mu [ i ] , tao ) } a l f a ∼ d n o r m (0 .0 ,1 .0E -4) b . e d a d ∼ d n o r m (0 .0 ,1 .0E -4) tao ∼ d g a m m a (1 .0E -3 ,1 .0E -3)

s i g m a < - 1/s q r t ( tao ) } " , f i l e= " m o d e l o . t x t " ) # . . . . l i b r a r y( B R u g s ) l i b r a r y( R 2 W i n B U G S ) # l i b r a r y ( R 2 O p e n B U G S ) # I n t r o d u z c o l o s d a t o s e d a d = c (59 ,52 ,37 ,40 ,67 ,43 ,61 ,34 ,51 ,58 ,54 ,31 ,49 ,45 ,66 ,48 ,41 , 47 ,53 ,62 ,60 ,33 ,44 ,70 ,56 ,69 ,35 ,36 ,68 ,38) bp = c (143 ,132 ,88 ,98 ,177 ,102 ,154 ,83 ,131 ,150 ,131 ,69 ,111 ,114 , 170 ,117 ,96 ,116 ,131 ,158 ,156 ,75 ,111 ,184 ,141 ,182 ,74 ,87 ,183 ,89) n = l e n g t h( bp )

(16)

d a t o s = l i s t( " e d a d " , " bp " , " n " )

p a r a m e t r o s = c ( " a l f a " , " b . e d a d " , " s i g m a " )

i n i c i a l e s = f u n c t i o n() {l i s t( a l f a =r n o r m(1) , b . e d a d =r n o r m(1) , tao =r g a m m a(1 ,1 ,1) ) }

(17)

# C o n B R u g s m o d e l o = B R u g s F i t (d a t a= datos , i n i t s = i n i c i a l e s , p a r a = p a r a m e t r o s , n B u r n i n =10000 , n I t e r =10000 , m o d e l F i l e = " m o d e l o . t x t " , n u m C h a i n s =3 , w o r k i n g . d i r e c t o r y = r u t a ) s a m p l e s S t a t s ( "*" ) # R e s u l t a d o s f i n a l e s s a m p l e s D e n s i t y ( "*" , m f r o w = c (2 ,2) , col=4) # C o n W i n B u g s m o d e l o = b u g s ( datos , i n i c i a l e s , p a r a m e t r o s , m o d e l . f i l e = " m o d e l o . t x t " , n . c h a i n s =3 , n . i t e r =20000 , n . b u r n i n =10000 , b u g s . d i r e c t o r y = " C :/W i n B U G S 1 4 " , w o r k i n g . d i r e c t o r y = ruta , c l e a r W D = TRUE , d e b u g= T R U E ) m o d e l o m e a n sd MC _ e r r o r v a l 2 . 5 p c m e d i a n v a l 9 7 . 5 p c s t a r t s a m p l e a l f a -21 . 7 5 0 3 . 2 9 0 0 0 0 . 1 0 6 9 0 0 -28 . 2 7 0 -21 . 7 2 0 -15 . 3 7 0 1 0 0 0 1 3 0 0 0 0 b . e d a d 2 . 9 2 3 0 . 0 6 3 7 4 0 . 0 0 2 0 7 8 2 . 8 0 0 2 . 9 2 3 3 . 0 4 9 1 0 0 0 1 3 0 0 0 0 s i g m a 4 . 0 2 2 0 . 5 5 8 5 0 0 . 0 0 3 9 8 9 3 . 1 0 9 3 . 9 6 2 5 . 2 7 1 1 0 0 0 1 3 0 0 0 0

(18)
(19)

Modelos Lineales Generalizados

Se pueden generalizar los modelos de regresi´on habituales para modelizar relaciones

entre variables discretas y tambi´en para modelos de clasificaci´on.

En este caso se trata simplemente de definir una funci´on link que relacione la media

de los datos y el modelo lineal: Si

E[Y] =µ

entonces, se define una funci´on link g aplicada al par´ametro µtal que

g(µ) = θ=Xβ

es decir,

µ=g−1(Xβ) =E[Y]

Como ejemplos de modelos y funcioneslink se tiene

Link Inversa link Modelo regresi´on Funci´on g(µ) =θ µ=g−1(θ)

Normal Identidad µ θ

Log´ıstico Logit log1−µµ 1+exp(exp(θ)θ)

Probit Normal inversa Φ−1(µ) Φ(θ)

Poisson logaritmo log (µ) exp (θ)

Gamma Inversa −1

µ −

1

θ

(20)

Ejemplo

Consideramos un ejemplo de regresi´on log´ıstica. Supongamos una muestra de 100

personas en las que se considera si presentan o no un tipo de enfermedad degenerativa (se recoge en la variabletiene).

tiene sexo edad

1 1 69 1 1 57 1 1 61 0 0 60 1 1 69 1 1 74 0 0 63 1 0 68 1 0 64 0 0 53 1 1 60 0 1 58 1 1 79 1 1 56 0 1 53 1 0 74 0 1 56 1 0 76 1 0 72 0 0 56 1 1 66 0 1 52 1 1 77 1 0 70 1 0 69

tiene sexo edad

1 1 76 1 1 72 0 0 53 1 1 69 0 1 59 1 1 73 1 0 77 0 0 55 1 0 77 1 1 68 1 1 62 0 0 56 1 0 68 1 1 70 0 1 60 1 0 65 0 1 55 0 0 64 1 0 75 0 0 60 1 1 67 0 0 61 1 0 69 1 0 75 1 1 68

tiene sexo edad

1 0 72 1 1 71 0 0 54 0 1 52 0 1 54 0 1 50 1 0 75 1 0 59 1 1 65 1 1 60 1 1 60 0 1 57 0 0 51 0 0 51 1 0 63 0 1 57 1 1 80 0 1 52 0 0 65 1 0 72 1 1 80 1 1 73 1 1 76 1 0 79 0 0 66

tiene sexo edad

0 0 51 1 1 76 1 1 75 0 0 66 1 0 75 1 0 78 1 0 70 0 1 67 0 0 51 1 0 70 1 1 71 1 1 71 1 1 74 1 0 74 1 1 60 1 0 58 0 1 55 1 1 61 1 1 65 0 0 52 0 1 68 1 1 75 0 1 52 0 1 53 1 1 70

Se trata de estudiar la relaci´on entre la presencia de esta enfermedad, la edad y el sexo

(21)

Ejemplo con WinBugso con BRugs: rm(l i s t=ls(all= T R U E ) ) r u t a = " C :/.../D i r e c t o r i o_T r a b a j o " s e t w d( r u t a ) # . . . . # P R O G R A M A d e B U G S # . . . . cat( " # R e g r e s i o n L o g i s t i c a con W i n B u g s o con O p e n B u g s m o d e l { for ( i in 1: n ) { l o g i t ( p [ i ]) < - a l f a + b . s e x o*s e x o [ i ] + b . e d a d*e d a d [ i ] t i e n e [ i ] ∼ d b e r n ( p [ i ]) } a l f a ∼ d n o r m (0 .0 , 1 .0E -4) b . s e x o ∼ d n o r m (0 .0 , 1 .0E -4) b . e d a d ∼ d n o r m (0 .0 , 1 .0E -4) } " , f i l e= " m o d e l o . t x t " ) # . . . . l i b r a r y( B R u g s ) l i b r a r y( R 2 W i n B U G S ) # D a t o s s e x o = c (1 ,1 ,1 ,0 ,1 ,1 ,0 ,0 ,0 ,0 ,1 ,1 ,1 ,1 ,1 ,0 ,1 ,0 ,0 ,0 , 1 ,1 ,1 ,0 ,0 ,1 ,1 ,0 ,1 ,1 ,1 ,0 ,0 ,0 ,1 ,1 ,0 ,0 ,1 ,1 ,0 ,1 ,0 ,0 , 0 ,1 ,0 ,0 ,0 ,1 ,0 ,1 ,0 ,1 ,1 ,1 ,0 ,0 ,1 ,1 ,1 ,1 ,0 ,0 ,0 ,1 ,1 ,1 , 0 ,0 ,1 ,1 ,1 ,0 ,0 ,0 ,1 ,1 ,0 ,0 ,0 ,0 ,1 ,0 ,0 ,1 ,1 ,1 ,0 ,1 ,0 ,1 , 1 ,1 ,0 ,1 ,1 ,1 ,1 ,1) e d a d = c (69 ,57 ,61 ,60 ,69 ,74 ,63 ,68 ,64 ,53 ,60 ,58 ,79 ,56 ,53 , 74 ,56 ,76 ,72 ,56 ,66 ,52 ,77 ,70 ,69 ,76 ,72 ,53 ,69 ,59 ,73 ,77 ,55 , 77 ,68 ,62 ,56 ,68 ,70 ,60 ,65 ,55 ,64 ,75 ,60 ,67 ,61 ,69 ,75 ,68 ,72 , 71 ,54 ,52 ,54 ,50 ,75 ,59 ,65 ,60 ,60 ,57 ,51 ,51 ,63 ,57 ,80 ,52 ,65 , 72 ,80 ,73 ,76 ,79 ,66 ,51 ,76 ,75 ,66 ,75 ,78 ,70 ,67 ,51 ,70 ,71 ,71 , 74 ,74 ,60 ,58 ,55 ,61 ,65 ,52 ,68 ,75 ,52 ,53 ,70)

(22)

t i e n e = c (1 ,1 ,1 ,0 ,1 ,1 ,0 ,1 ,1 ,0 ,1 ,0 ,1 ,1 ,0 ,1 ,0 ,1 ,1 , 0 ,1 ,0 ,1 ,1 ,1 ,1 ,1 ,0 ,1 ,0 ,1 ,1 ,0 ,1 ,1 ,1 ,0 ,1 ,1 ,0 ,1 ,0 ,0 , 1 ,0 ,1 ,0 ,1 ,1 ,1 ,1 ,1 ,0 ,0 ,0 ,0 ,1 ,1 ,1 ,1 ,1 ,0 ,0 ,0 ,1 ,0 ,1 , 0 ,0 ,1 ,1 ,1 ,1 ,1 ,0 ,0 ,1 ,1 ,0 ,1 ,1 ,1 ,0 ,0 ,1 ,1 ,1 ,1 ,1 ,1 ,1 , 0 ,1 ,1 ,0 ,0 ,1 ,0 ,0 ,1) n = l e n g t h( s e x o ) d a t o s = l i s t( " s e x o " , " e d a d " , " t i e n e " , " n " ) p a r a m e t r o s = c ( " a l f a " , " b . s e x o " , " b . e d a d " ) I n i c a d e n a s = f u n c t i o n() {l i s t( a l f a =r n o r m(1) , b . s e x o =r n o r m(1) , b . e d a d =r n o r m(1) ) } # C o n B R u g s m o d e l o = B R u g s F i t (d a t a= datos , i n i t s = I n i c a d e n a s , p a r a = p a r a m e t r o s , n B u r n i n =10000 , n I t e r =10000 , m o d e l F i l e = " m o d e l o . t x t " , n u m C h a i n s =3 , w o r k i n g . d i r e c t o r y = r u t a ) s a m p l e s S t a t s ( "*" ) # R e s u l t a d o s f i n a l e s s a m p l e s D e n s i t y ( "*" , m f r o w = c (2 ,2) , col=4) # C o n W i n B u g s m o d e l o = b u g s ( datos , I n i c a d e n a s , p a r a m e t r o s , m o d e l . f i l e = " m o d e l o . t x t " , n . c h a i n s =3 , n . i t e r =20000 , n . b u r n i n =10000 , b u g s . d i r e c t o r y = " C :/W i n B U G S 1 4 " , w o r k i n g . d i r e c t o r y = ruta , c l e a r W D = TRUE , d e b u g= T R U E ) m o d e l o m e a n sd MC _ e r r o r v a l 2 . 5 p c m e d i a n v a l 9 7 . 5 p c s t a r t s a m p l e a l f a -23 . 5 5 0 0 4 . 7 3 3 0 0 0 . 1 1 0 6 0 0 -34 . 0 5 0 0 0 -23 . 1 2 0 0 -15 . 3 8 0 0 1 0 0 0 1 3 0 0 0 0 b . e d a d 0 . 3 7 1 4 0 . 0 7 3 3 9 0 . 0 0 1 7 1 7 0 . 2 4 4 5 0 0 . 3 6 5 1 0 . 5 3 5 6 1 0 0 0 1 3 0 0 0 0 b . s e x o 1 . 4 7 8 0 0 . 7 7 1 9 0 0 . 0 1 2 4 2 0 0 . 0 2 4 2 2 1 . 4 5 1 0 3 . 0 5 2 0 1 0 0 0 1 3 0 0 0 0

(23)
(24)

El mismo ejemplo conMCMCpack: rm(l i s t=ls(all= T R U E ) ) r u t a = " C :/D i r e c t o r i o_T r a b a j o " s e t w d( r u t a ) l i b r a r y( M C M C p a c k ) # C o n u n a d i s t r i b u c i o n a p r i o r i i m p r o p i a p o s t e r i o r = M C M C l o g i t ( t i e n e ∼ e d a d + a s . f a c t o r ( s e x o ) , b u r n i n =5000 , m c m c = 1 0 0 0 0 ) # C o n u n a d i s t r i b u c i o n a p r i o r i n o r m a l m u l t i v a r i a n t e p o s t e r i o r = M C M C l o g i t ( t i e n e ∼ e d a d + a s . f a c t o r ( s e x o ) , b u r n i n =5000 , m c m c =10000 , b0 =0 , B0 = . 0 0 1 ) p l o t( p o s t e r i o r ) s u m m a r y( p o s t e r i o r ) I t e r a t i o n s = 5 0 0 1 : 1 5 0 0 0 T h i n n i n g i n t e r v a l = 1 N u m b e r of c h a i n s = 1 S a m p l e s i z e per c h a i n = 1 0 0 0 0 1 . E m p i r i c a l m e a n and s t a n d a r d d e v i a t i o n for e a c h v a r i a b l e , p l u s s t a n d a r d e r r o r of the m e a n : M e a n SD N a i v e SE Time - s e r i e s SE ( I n t e r c e p t ) -23 . 3 7 7 9 4 . 5 6 9 4 1 0 . 0 4 5 6 9 4 1 0 . 1 5 4 2 1 1 e d a d 0 . 3 6 8 9 0 . 0 7 0 6 5 0 . 0 0 0 7 0 6 5 0 . 0 0 2 3 8 6 a s . f a c t o r ( s e x o ) 1 1 . 4 1 5 1 0 . 7 5 3 9 7 0 . 0 0 7 5 3 9 7 0 . 0 2 5 3 9 5 2 . Q u a n t i l e s for e a c h v a r i a b l e : 2 .5 % 25 % 50 % 75 % 97 .5 % ( I n t e r c e p t ) -33 . 3 8 6 9 7 -26 . 3 0 9 0 -23 . 0 1 7 4 -20 . 1 1 5 3 -15 . 5 4 3 4 e d a d 0 . 2 4 7 3 9 0 . 3 1 8 3 0 . 3 6 3 5 0 . 4 1 4 2 0 . 5 2 2 8 a s . f a c t o r ( s e x o ) 1 -0 . 0 5 7 7 4 0 . 8 9 7 3 1 . 3 9 7 0 1 . 9 2 2 3 2 . 9 5 8 2

(25)
(26)

Ejemplo de Regresi´

on de Poisson

Se considera una regresi´on de Poisson para los siguientes datos

Diag Cases Pyears Inc Age

1988 7 255771 0.3 6.0 1989 8 276644 0.3 5.6 1990 16 295901 0.5 5.0 1991 14 309682 0.5 4.4 1992 20 316457 0.6 4.0 1993 35 316802 1.1 5.8 1994 29 318305 0.9 4.6 1995 46 303544 1.5 4.3 1996 36 260644 1.4 4.7 1997 47 216826 2.2 4.3 1998 34 161664 2.1 5.4 1999 13 60502 2.1 5.9

La definici´on de las variables es:

1. Diag: a˜no de diagn´ostico

2. Cases: casos detectados en ese a˜no

3. Pyears: Numero de personas en situaci´on de riesgo

4. Inc: Incidencia media para cada 10000 personas

(27)

Soluci´on usando el paqueteMCMCpack: l i b r a r y( M C M C p a c k ) C a s e s = c (7 ,8 ,16 ,14 ,20 ,35 ,29 ,46 ,36 ,47 ,34 ,13) P y e a r s = c ( 2 5 5 7 7 1 , 2 7 6 6 4 4 , 2 9 5 9 0 1 , 3 0 9 6 8 2 , 3 1 6 4 5 7 , 3 1 6 8 0 2 , 3 1 8 3 0 5 , 3 0 3 5 4 4 , 2 6 0 6 4 4 , 2 1 6 8 2 6 , 1 6 1 6 6 4 , 6 0 5 0 2 ) Inc = c (0 .3 ,0 .3 ,0 .5 ,0 .5 ,0 .6 ,1 .1 ,0 .9 ,1 .5 ,1 .4 ,2 .2 ,2 .1 ,2 .1 ) Age = c (6 .0 ,5 .6 ,5 .0 ,4 .4 ,4 .0 ,5 .8 ,4 .6 ,4 .3 ,4 .7 ,4 .3 ,5 .4 ,5 .9 ) p o s t e r i o r = M C M C p o i s s o n ( C a s e s ∼ P y e a r s + Inc + Age , b u r n i n =5000 , m c m c = 1 0 0 0 0 ) p l o t( p o s t e r i o r ) s u m m a r y( p o s t e r i o r ) I t e r a t i o n s = 5 0 0 1 : 1 5 0 0 0 T h i n n i n g i n t e r v a l = 1 N u m b e r of c h a i n s = 1 S a m p l e s i z e per c h a i n = 1 0 0 0 0 1 . E m p i r i c a l m e a n and s t a n d a r d d e v i a t i o n for e a c h v a r i a b l e , p l u s s t a n d a r d e r r o r of the m e a n : M e a n SD N a i v e SE Time - s e r i e s SE ( I n t e r c e p t ) -4 .710e -01 9 .232e -01 9 .232e -03 3 .374e -02 P y e a r s 8 .237e -06 1 .425e -06 1 .425e -08 5 .190e -08 Inc 1 . 1 4 8 e +00 1 .432e -01 1 .432e -03 5 .242e -03 Age 2 .606e -02 1 .058e -01 1 .058e -03 3 .827e -03 2 . Q u a n t i l e s for e a c h v a r i a b l e :

2 .5 % 25 % 50 % 75 % 97 .5 % ( I n t e r c e p t ) -2 . 2 5 0 e +00 -1 . 0 6 7 e +00 -4 .879e -01 1 .383e -01 1 . 3 6 3 e +00 P y e a r s 5 .428e -06 7 .308e -06 8 .241e -06 9 .174e -06 1 .107e -05 Inc 8 .672e -01 1 . 0 5 5 e +00 1 . 1 4 8 e +00 1 . 2 4 3 e +00 1 . 4 3 4 e +00 Age -1 .804e -01 -4 .369e -02 2 .654e -02 9 .831e -02 2 .284e -01

(28)
(29)

Ejemplo de Tabla de Contingencia

2

×

2

Se considera un ejemplo sobre c´ancer de mama y edad a la que se tiene el primer hijo

(se puede consultar en Mahon et al. (1970) Bulletin of the world health organization).

Se trata de estudiar la posible relaci´on entre la edad del primer nacimiento y el c´ancer de mama.

Se seleccionaron varios hospitales en USA, Grecia, Yugoslavia, Brasil, Taiwan y Jap´on.

Los casos control fueron mujeres con edad comparable en los mismos hospitales.

Se obtiene la siguiente tabla de contingencia 2×2:

Edad en el primer Nacimiento Estatus Edad ≥ 30 (1) Edad < 30 (0)

C´ancer (1) 683 2537

Control (0) 1498 8747

Es decir,

Estatus Edad Recuentos

1 1 683 1 0 2537 0 1 1498 0 0 8747 rm(l i s t=ls(all= T R U E ) ) r u t a = " C :/D i r e c t o r i o_T r a b a j o " s e t w d( r u t a ) cat( " { for ( i in 1 : 4 ) { c u e n t a [ i ] ∼ d p o i s ( l a m b d a [ i ]) log ( l a m b d a [ i ])< - mu + a*e s t a t u s [ i ] + b*e d a d [ i ] + ab*e s t a t u s [ i ]*e d a d [ i ] } r a z o n . o d d s < - exp ( ab ) mu ∼ d n o r m (0 .0 , 1 .0E -4) a ∼ d n o r m (0 .0 , 1 .0E -4)

(30)

b ∼ d n o r m (0 .0 , 1 .0E -4) ab ∼ d n o r m (0 .0 , 1 .0E -4) } " , f i l e= " m o d e l o . t x t " ) # . . . . l i b r a r y( B R u g s ) # D a t o s e s t a t u s = c (1 ,1 ,0 ,0) e d a d = c (1 ,0 ,1 ,0) c u e n t a = c (683 , 2537 , 1498 , 8 7 4 7 ) d a t o s = l i s t( " e s t a t u s " , " e d a d " , " c u e n t a " ) p a r a m e t r o s = c ( " a " , " b " , " r a z o n . o d d s " ) I n i c a d e n a s = f u n c t i o n() {l i s t( mu =r n o r m(1) , a =r n o r m(1) , b =r n o r m(1) , ab =r n o r m(1) ) } # C o n B R u g s m o d e l o = B R u g s F i t (d a t a= datos , i n i t s = I n i c a d e n a s , p a r a = p a r a m e t r o s , n B u r n i n =10000 , n I t e r =10000 , m o d e l F i l e = " m o d e l o . t x t " , n u m C h a i n s =3 , w o r k i n g . d i r e c t o r y = r u t a ) s a m p l e s S t a t s ( "*" ) s a m p l e s D e n s i t y ( "*" , m f r o w = c (2 ,2) , col=4) Se obtiene: m e a n sd MC _ e r r o r v a l 2 . 5 p c m e d i a n v a l 9 7 . 5 p c s t a r t s a m p l e a -1 . 2 3 8 0 . 0 2 2 6 4 0 . 0 0 0 2 0 5 9 -1 . 2 8 2 -1 . 2 3 8 -1 . 1 9 4 1 0 0 0 1 3 0 0 0 0 b -1 . 7 6 5 0 . 0 2 7 7 4 0 . 0 0 0 2 3 8 2 -1 . 8 2 0 -1 . 7 6 5 -1 . 7 1 1 1 0 0 0 1 3 0 0 0 0 r a z o n . o d d s 1 . 5 7 4 0 . 0 8 0 4 3 0 . 0 0 0 7 3 7 2 1 . 4 2 2 1 . 5 7 2 1 . 7 3 9 1 0 0 0 1 3 0 0 0 0

Es decir, se obtiene una raz´on de odds igual a 1.57 lo que se puede interpretar como

que hay un porcentaje de cerca del 60 % mayor de casos de c´ancer de pecho, para personas

(31)

Referencias

Documento similar

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)