Teorema de bayes

setwd("~/ProbabilidadYEstadistica")

El teorema de Bayes, en la teoría de la probabilidad, es una proposición planteada por el matemático inglés Thomas Bayes (1702-1761)1 y publicada póstumamente en 1763, que expresa:

la probabilidad condicional de un evento aleatorio A dado B en términos de la distribución de probabilidad condicional del evento B dado A y la distribución de probabilidad marginal de solo A.

Bayes

Es decir, por ejemplo, que sabiendo la probabilidad de tener un dolor de cabeza dado que se tiene gripe, se podría saber (si se tiene algún dato más), la probabilidad de tener gripe si se tiene un dolor de cabeza. Muestra este sencillo ejemplo la alta relevancia del teorema en cuestión para la ciencia en todas sus ramas, puesto que tiene vinculación íntima con la comprensión de la probabilidad de aspectos causales dados los efectos observados.

Fórmula de Bayes

Con base en la definición de probabilidad condicionada se obtiene la Fórmula de Bayes, también conocida como Regla de Bayes:

Bayes

  • Visualización del teorema de bayes

Bayes

Análisis Bayesianos

Los análisis Bayesianos son similares a los que vimos en en el sentido que dependen explícitamente de modelos probabilísticos para los datos.

Es decir, tenemos que definir un modelo de datos. La gran diferencia es que con Bayes, podemos obtener distribuciones de probabilidades para todas las cantidades no observadas, incluyendo parámetros, valores perdidos o nuevas observaciones que todavía no hemos hecho. De esta manera, los análisis Bayesianos nos permiten cuantificar incertidumbre y armar modelos realistas que tienen en cuenta por ejemplo observaciones imperfectas.

Como vimos en la teórica, la regla de Bayes planteada en términos de datos y parámetros es:

\[ p(\boldsymbol{\theta} \lvert \boldsymbol{y}) = \frac{p(\boldsymbol{y} \lvert \boldsymbol{\theta}) p(\boldsymbol{\theta)}}{\int p(\boldsymbol{y} \lvert \boldsymbol{\theta)} p(\boldsymbol{\theta)} d \boldsymbol{\theta} } \]

Likehood : verosimilitud

Es decir que la probabilidad posterior de los parámetros θ dado que observamos los datos y es igual al likelihood multiplicado por las previas y dividido por la probabilidad total de los datos.

La función de likelihood nos da la probabilidad de observar los datos condicional al valor de los parámetros p(y|θ). La previa de los parámetros p(θ)

refleja los posibles valores de los parámetros de acuerdo con nuestras “creencias” previas, o los resultados de estudios anteriores, o lo que nos parece que tiene sentido para el sistema de estudio (en definitiva, en base a información previa). Finalmente, la probabilidad total de los datos se obtiene integrando la función de lilkelihood sobre los posibles valores de los parámetros que define la previa. Como veremos más adelante, los análisis Bayesianos combinados con métodos numéricos permiten analizar modelos con muchos parámetros, niveles de variabilidad y variables “ocultas”, pero primero vamos a empezar por casos simples donde podemos calcular las posteriores directamente.

  • Ejercicio 1: Análisis bayesiano

Para entender bien cómo es todo el proceso, vamos a simular los datos.

Imaginen que queremos estudiar la remoción de frutos en 30 plantas. En cada una de las plantas marcamos 20 frutos y contamos cuántos son removidos por dispersores luego de un tiempo fijo. Si suponemos que un buen modelo para este tipo de datos es una distribución Binomial con una probabilidad de éxito fija hacemos:

set.seed(1234)
nobs <- 30 #Número de observaciones (plantas)
frutos <- rep(20,nobs) # Cada arbol tiene 20 frutas
p_rem <- 0.2 #probabilidad de remoción por fruto
removidos <- rbinom(nobs,size=frutos, prob=p_rem)
removidos
##  [1] 2 4 4 4 6 5 0 3 5 4 5 4 3 7 3 6 3 3 2 3 3 3 2 1 3 6 4 7 6 1

El modelo de datos (cuántos frutos son removidos) es una Binomial con número de pruebas (la cantidad de frutos disponibles) conocido. Para hacer un análisis Bayesiano de estos datos, tenemos que definir una previa para la probabilidad de éxito (p_rem).

Esa previa tiene que tomar valores continuos entre 0 y 1. Una opción sería una distribución uniforme con esos límites, pero si usamos una distribución Beta, es posible obtener un resultado analítico para la posterior.

En este caso, la posterior es otra distribución Beta pero con sus parámetros actualizados en base a las observaciones. Se dice entonces que la distribución Beta es la conjugada de la Binomial. Si la previa de la tasa de remoción por fruto es una distribución Beta con parámetros α y β, actualizamos los valores de α y β en base a la cantidad de éxitos y fracasos obervados.

La posterior de la tasa de remoción por fruto es entonces una Beta con α=∑y, β=∑(n−y) donde y representa a los frutos removidos de los n disponibles. Veamos como hacer esto en R.

#Alpha y Beta son probabilidades, que se usan en la formula

alpha <- 1 # Inicializa 1 para ser 100%
beta <- 1 # Inicializa 1 para ser 100%
alpha_p <- alpha + sum(removidos)  # α=∑y 100% + suma de removidos
beta_p <- beta + sum(frutos -removidos) # β=∑(n−y) 100% + suma de frutos totales - los frutos removidos

Para obtener el valor esperado de una distribución Beta hacermos

alpha_p / (alpha_p+beta_p)
## [1] 0.1877076

Eso nos da un estimador puntual de la probabilidad de remoción por fruto p_rem. Para tener una medida de incertidumbre alrededor de este valor, podemos ver los cuantiles de la posterior:

qbeta(c(0.025,0.975),alpha_p,beta_p       )
## [1] 0.1575462 0.2198340

También podemos graficar la distribución posterior y compararla con la previa para ver cuánto aprendimos haciendo el análisis.

op <- par(cex.lab = 1.5, font.lab = 2, cex.axis = 1.3, las = 1, bty = "n")
curve(dbeta(x, alpha + sum(removidos), beta + sum(frutos - removidos)), lwd = 2, 
    ylab = "Densidad de probabilidad", xlab = "Probabilidad de remoción")
curve(dbeta(x, 1, 1), lwd = 2, col = "gray", add = TRUE)
text(0.6, 2.5, "previa")
text(0.35, 12, "posterior")

Asigación:

Encuentre 2 ejercicios de aplicaciones del teorema de bayes y ejecútelos, estos ejercicios pueden o no ser relacionados con su carrera.

Ejemplo 1

Realizar cálculo de probabilidades implementanto Teorema de Bayes

Descripción

Caso: personas que trabajan en sectores y sean mujeres y hombres

Las personas de cualquier género trabajan en algún sector, en función del género determinado de manera inicial se trata de encontrar la probabilidad del sector en donde laboran.

Al elegir aleatoriamente a una persona se conoce el género, Hombre o Mujer y se solicita encontrar la probabilidad de que pertenezca a algún sector.

Librerías utilizadas

library(knitr)

Las probabilidades

Se trata de encontrar las probabilidades condicionales usando el Teorema de Bayes para personas que trabajan en algún sector (‘Servicios’, ‘Salud’ u ‘Otros’) y sean o que estén en función de algún género (‘Hombre’ o ‘Mujer’).

Evento sectores

Existen tres sectores en donde trabajan las personas Hay una probabilidad de que en el sector servicios trabaje 40%(0.40) de las personas Hay una probabilidad de que en el sector salud trabaje 35%(0.35) de las personas Hay una probabilidad de que en el sector otros trabaje 25%(0.25) de las personas La suma debe dar 100% o 1 Las variables en R Prob.Servi =0.40 Prob.Salud =0.35 Prob.Otros =0.25

Prob.Servi <- 0.40
Prob.Salud <- 0.35
Prob.Otros <- 0.25

#Las probabilidades por cada servicio
print('Probabilidades')
## [1] "Probabilidades"
Prob.Servi 
## [1] 0.4
Prob.Salud 
## [1] 0.35
Prob.Otros 
## [1] 0.25

Eventos Mujeres y Hombres Se dan las probabilidades de que sea de algún género en función del servicio.

  • Sector Servicios En el sector Servicios la probabilidad de que sea Mujer es del 0.30 En el sector Servicios la probabilidad de que sea Hombre es del 0.70 PServ.Mujer PServ.Hombre
ProbServ.Mujer <- 0.30
ProbServ.Hombre <- 0.70
  • Sector Salud En el sector Salud la probabilidad de que sea Mujer es del 0.60 En el sector Salud la probabilidad de que sea Hombre es del 0.40 PSalud.Mujer =0.60 PSalud.Hombre =0.40
ProbSalud.Mujer <- 0.60
ProbSalud.Hombre <- 0.40
  • Sector Otros En el sector Otros la probabilidad de que sea Mujer es del 0.45 En el sector Otros la probabilidad de que sea Hombre es del 0.55 POtros.Mujer = 0.45 POtros.Hombre = 0.55
ProbOtros.Mujer <- 0.45
ProbOtros.Hombre <- 0.55

Arbol de Probabilidades Arbol de probabilidad

Probabilidad de que sea Hombre o Mujer en función de Servicios ProbServ.I.Mujer <- Prob.Servi * PServ.Mujer ProbServ.I.Hombre <- Prob.Servi * PServ.Hombre

ProbServ.I.Mujer <- Prob.Servi * ProbServ.Mujer
ProbServ.I.Hombre <- Prob.Servi * ProbServ.Hombre

ProbServ.I.Mujer
## [1] 0.12
ProbServ.I.Hombre
## [1] 0.28

Probabilidad de que sea Hombre o Mujer en función de Salud ProbSalud.I.Mujer <- Prob.Salud * PSalud.Mujer ProbSalud.I.Hombre <- Prob.Salud *

ProbSalud.I.Mujer <- Prob.Salud * ProbSalud.Mujer
ProbSalud.I.Hombre <- Prob.Salud * ProbSalud.Hombre

ProbSalud.I.Mujer
## [1] 0.21
ProbSalud.I.Hombre
## [1] 0.14

Probabilidad de que sea Hombre o Mujer en función de Otros ProbOtros.I.Mujer=Prob.Otros∗POtros.Mujer ProbOtros.I.Hombre=Prob.Otros∗POtros.Hombre

ProbOtros.I.Mujer <- Prob.Otros * ProbOtros.Mujer
ProbOtros.I.Hombre <- Prob.Otros * ProbOtros.Hombre

ProbOtros.I.Mujer 
## [1] 0.1125
ProbOtros.I.Hombre
## [1] 0.1375

Calculando la probabilidad por Teorema de Bayes

Bayes

Se muestra la Fórmula de Bayes y se sustituyen valores para dar respuesta a la preguna uno: 1. Prob(Salud | Mujer): Persona que sea del sector Salud y que sea Mujer

Ya se tiene el numerador con la probabilidad condicional de que sea Hombre dado que sea del sector Salud: ProbSalud.I.Mujer.

TBResult <- ProbSalud.I.Mujer / (ProbServ.I.Mujer + ProbSalud.I.Mujer + ProbOtros.I.Mujer)

TBResult
## [1] 0.4745763

Conclusión Ejemplo 1

Se concluye que en el experimento de elegir a una persona al azar y que ya se conoce que ‘Mujer’, entonces se determina mediante el Teorema y la Fórmula de Bayes la probababilidad de que una persona sea del sector ‘Salud’ dado que sea apriori ‘Mujer’

La probabilidad es de 0.4745 o sea del 47.46% que significa que si se elige a una persona y es ‘Hombre’ hay una probabilidad del 25.11% de que sea del sector ‘Salud’

Ejemplo 2

Descripción

Caso: Dos bolsitas con bolitas rojas y negras Se tienen dos buzones. El Buzón 1 con 5 bolitas negras y 3 rojas. El Buzón 2, con 6 negras y 4 rojas. El experimento aleatorio, consiste en sacar una bolita del primer buzón e introducirla en el segundo, para después extraer una bolita de este último buzón y ahí preguntar probabilidades de ocurrencia. El hecho de sacar una bolita se le llama evento, cuya probabilidad es siempre diferente de cero. (El experimento tiene como condición, siempre sacar una bolita)

Arbol de decision

Arbol de probabilidad

Primer evento:

Sacar una bolita del Buzón 1, esta acción puede seguir dos opciones: Comenzar sacando una bolita de color Negro o sacar una de color Rojo. Inmediatamente introducirla en el Buzón 2. En ambas situaciones, se aumenta en una bolita el espacio muestral o número total de bolitas del segundo buzón. Segundo evento: Sacar una bolita del Buzón 2, después de haber introducido la bolita que proviene del Buzón 1, la cual también sigue las dos mismas opciones o ramas (N o R)

¿Cual es la probabilidad de que sea roja en la bolsita 2?

La probabilida de que sea roja es de 3/8 o 0.375 en el primer evento. La probabilida de que sea nuevamente roja en el segundo evento es 5/6 o sea 0.833. La bolsa 2 tenía 4 rojas y se le incopora 1 roja, entonces ahora tiene 5. Demostracion Evento 1 Suceso N: Sacar una bolita negra, probabilidad 5/8) Suceso R: Sacar una bolita roja, probabilidad 3/8) PR Probabilida de que sea Roja (3/8) PN Probabilida de que sea Negra (5/8)

ProbN <- (5/8) 
ProbR <- (3/8)

print("La probabilida en el primer evento de que sea negra es: ")
## [1] "La probabilida en el primer evento de que sea negra es: "
ProbN
## [1] 0.625
print("La probabilida en el primer evento de que sea roja es: ")
## [1] "La probabilida en el primer evento de que sea roja es: "
ProbR
## [1] 0.375

Evento 2

Opcion 1 del evento 2 Sacar una bolita negra cuando la primera fue negra, N/N Sacar una bolita roja cuando la primera fue negra, N/R PN.PN: Pobabilida de que sea negra y negra PN.PR: Pobabilida de que sea negra y roja ¿Cuántas bolitas hay en total en la segunda bolsa?, 11, toda vez se agregó una negra ¿Cuántas negras? 7 de 11 ¿Cuántas rojas? 4 de 11

PN.PN <- (7/11)
PN.PR <- (4/11)

print("La probabilida en el primer evento de que sea negra cuando la primera fue negra es: ")
## [1] "La probabilida en el primer evento de que sea negra cuando la primera fue negra es: "
PN.PN
## [1] 0.6363636
print("La probabilida en el primer evento de que sea roja es cuando la primera fue negra es: ")
## [1] "La probabilida en el primer evento de que sea roja es cuando la primera fue negra es: "
PN.PR
## [1] 0.3636364

Opcion 2 del evento 2

Sacar una bolita negra cuando la primera fue roja, R/N Sacar una bolita roja cuando la primera fue roja, R/R PR.PN: Pobabilida de que sea negra y negra PR.PR: Pobabilida de que sea negra y roja ¿Cuántas bolitas hay en total en la segunda bolsa?, 11, toda vez se agregó una roja ¿Cuántas negras? 6 de 11 ¿Cuántas rojas? 5 de 11

PR.PN <- (6/11)
PR.PR <- (5/11)

print("La probabilida en el primer evento de que sea roja cuando la primera fue roja es: ")
## [1] "La probabilida en el primer evento de que sea roja cuando la primera fue roja es: "
PR.PN
## [1] 0.5454545
print("La probabilida en el primer evento de que sea negra es cuando la primera fue roja es: ")
## [1] "La probabilida en el primer evento de que sea negra es cuando la primera fue roja es: "
PR.PR
## [1] 0.4545455

Calculando las probabilidades

¿Cuál es la probabilidad que sea roja? A partir del diagrama, se calcula la probabilidad de sacar una bolita roja del Buzón 2, dado el experimento en cuestión. Respondiendo la pregunta formulada: ¿Cuál es la probabilidad que sea roja? Hacemos una variable PRdenominador que se usará en Fórmula de Bayes mas adelante

PRdenominador <- (ProbN * PN.PR) + (ProbR * PR.PR)
PRdenominador <- (ProbN * PN.PR) + (ProbR  * PR.PR)

cat("Calculando la probabilida de que sea roja según el diagrama de árbol: ")
## Calculando la probabilida de que sea roja según el diagrama de árbol:
PRdenominador
## [1] 0.3977273

Aplicando el teorema de bayes

Bayes

¿Cual es la probabilidad de de sacar una bolita roja del segundo evento o buzón, dado que en el primero fue bolita roja Se utiliza la variable PTB.R.R a esta probabilidad formulada por Bayes, para tener una notación coherente. Probabilidad y de acuerdo al Teorema de Bayes de que primero sea roja y luego roja

PTB.R.R <- (ProbR * PN.PR )/ (PRdenominador)

cat ("Cual es la probabilidad de de sacar una bolita roja del segundo evento o buzón, dado que en el primero fue bolita roja")
## Cual es la probabilidad de de sacar una bolita roja del segundo evento o buzón, dado que en el primero fue bolita roja
PTB.R.R
## [1] 0.3428571

¿Cual es la probabilidad de de sacar una bolita negra del segundo evento o buzón, dado que en el primero fue bolita negra Se utiliza la variable PTB.N.N a esta probabilidad formulada por Bayes, para tener una notación coherente. Probabilidad y de acuerdo al Teorema de Bayes de que primero sea negra y luego negra

PTB.N.N <- (ProbN * PN.PN )/ (PRdenominador)

print ("Cual es la probabilidad de de sacar una bolita negra del segundo evento o buzón, dado que en el primero fue bolita negra")
## [1] "Cual es la probabilidad de de sacar una bolita negra del segundo evento o buzón, dado que en el primero fue bolita negra"
PTB.N.N
## [1] 1