Skip to content

Commit

Permalink
Arreglar algunos typos y aclarar algunos textos
Browse files Browse the repository at this point in the history
  • Loading branch information
felipegonzalez committed Jan 22, 2024
1 parent 0652310 commit 209306b
Showing 1 changed file with 40 additions and 15 deletions.
55 changes: 40 additions & 15 deletions notas/02-flujo-basico.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ a lo largo de distintas muestras, cuando $N=30$:
```{r}
simulacion_datos_tbl |>
group_by(rep, theta_sim) |>
summarise(Npos = sum(Pos)) |>
summarise(Npos = sum(Pos), .groups = "drop") |>
ggplot(aes(x = Npos)) +
geom_bar() +
labs(x = "Número de positivos", y = "Frecuencia (muestras)")
Expand All @@ -399,7 +399,7 @@ muy baja: es probable que obtengamos 0 observaciones positivas.
# Verificación predictiva a priori

Con este tipo de verificaciones podemos detectar las consecuencias de
nuestros supuestos (incluyendo la elección de distribuciones a prior), así
nuestros supuestos (incluyendo la elección de distribuciones a priori), así
como otras decisiones de modelado (como la discretización).

Conflictos con el conocimiento del área deben ser explorados para entenderlos
Expand Down Expand Up @@ -490,7 +490,7 @@ también es posible tomar algunos valores fijos de interés.

- Veremos más de *chequeos o pruebas predictivas a priori*, que en general también
sirven para entender la adecuación del modelo y supuestos en términos
de teoría y
de como coinciden o no datos generados con la teoría.
:::

Este paso también es importante para entender si, bajo nuestros propios supuestos,
Expand All @@ -515,6 +515,7 @@ ggplot(simulacion_rep, aes(x = theta, y = prob_posterior)) +
geom_vline(aes(xintercept = theta_sim), color = "red", linetype = "dashed") +
facet_wrap(~rep)
```

Nuestra respuesta en este caso es que quizá con 3 personas la información obtenida
no será suficiente para tomar decisiones útiles: nótese que la posterior
está muy poco concentrada alrededor del verdadero valor de $\theta$.
Expand Down Expand Up @@ -681,9 +682,10 @@ derecha, y dividir por el resultado. En general, escribiremos
$$B(a,b) = \int_{0}^1 \theta^{a-1}(1-\theta)^{b-1} d\theta$$
así que en nuestro caso, la posterior es:

$$p(\theta|D) = \frac{1}{B(N_+ + 1,N_{-}+1)} \theta^{N_+}(1-\theta)^{N_-}$$
$$p(\theta|D) = \frac{1}{B(N_{+} + 1,N_{-}+1)} \theta^{N_+}(1-\theta)^{N_-}$$
Es posible demostrar con cálculo que $B(a,b) = \frac{(a-1)!(b-1)!}{(a+b-1)!}$,
pero eso no es importante. Este tipo de densidades pertenecen a la **familia
pero eso no es importante ahora. Este tipo de densidades
pertenecen a la **familia
beta** con parámetros $(a,b)$, donde $a>0, b>0$.

Por ejemplo, si observamos 2 positivos y tres negativos,
Expand All @@ -702,13 +704,13 @@ que no sea la uniforme. En este caso particular es *conveniente* (aunque no
siempre tiene sentido) usar una distribución beta, de manera que es fácil
ver que si ponemos por ejemplo

$$p(\theta) \propto \theta^{a}(1-\theta)^{b}$$
$$p(\theta) \propto \theta^{a-1}(1-\theta)^{b-1}$$

entonces la posterior, por la fórmula de Bayes, es:

$$p(\theta|D) \propto \theta^{N_+ +a }(1-\theta)^{N_{-}+b}$$
$$p(\theta|D) \propto \theta^{N_+ +a -1 }(1-\theta)^{N_{-}+b-1}$$
que también es de la familia beta, pero con parámetros
$(N_+ +a+1, N_- +b+1)$.
$(N_{+} +a, N_{-} +b)$.

### Ejercicio: actualizaciones de posterior

Expand All @@ -727,7 +729,8 @@ datos_graf <- datos_sim |>
mutate(muestra = accumulate(obs, ~ paste0(.x, .y))) |>
group_by(n) |>
mutate(dens_graf =
list(tibble(theta = theta_seq, densidad = dbeta(theta_seq, 1 + n_pos, 1 + n_neg)))) |>
list(tibble(theta = theta_seq,
densidad = dbeta(theta_seq, n_pos + 1, n_neg + 1)))) |>
unnest(dens_graf)
ggplot(datos_graf, aes(x=theta, y = densidad, group = n)) +
geom_line() +
Expand All @@ -753,7 +756,7 @@ datos_graf <- datos_sim |>
group_by(n) |>
mutate(dens_graf =
list(tibble(theta = theta_seq,
densidad = dbeta(theta_seq, 1 + n_pos + 0, 1 + n_neg + 2)))) |>
densidad = dbeta(theta_seq, n_pos + 1, n_neg + 3)))) |>
unnest(dens_graf)
ggplot(datos_graf, aes(x=theta, y = densidad, group = n)) +
geom_line() +
Expand Down Expand Up @@ -908,7 +911,7 @@ sims_post |>
sup = round(sup, 2))
```
**Observación**: No hay un intervalo mágico que debe reportarse
(por ejemplo 95% de probabilida es una costumbre o superstición). Hay varias maneras
(por ejemplo 95% de probabilidad es una costumbre o superstición). Hay varias maneras
de construir intervalos de probabilidad. Dejaremos esta discusión para más adelante.


Expand Down Expand Up @@ -937,9 +940,10 @@ en los que la aproximación es mala.
**Nota 2**: En nuestro caso, las integrales de interés usualmente son de
la forma
$$I = \int f(\theta)p(\theta|D) d\theta,$$
donde $D$ es la información de la muestra, $\theta$ es un vector de parámetros
donde $D$ es la información de la muestra, $\theta$ en general
es un vector de parámetros
del modelo, y $f(\theta)$ es una función de $\theta$ que nos interesa. Por ejemplo,
para la media posterior de $\theta_i$, usaríamos $f(\theta) = \theta_i$. Podemos
para la media posterior de $\theta$, usaríamos $f(\theta) = \theta$. Podemos
aproximar cualquier integral si tenemos simulaciones de la posterior:

$$\theta_i \sim p(\theta|D) \implies \frac{1}{M} \sum_{i=1}^{M} f(\theta_i) \to I.$$
Expand All @@ -952,7 +956,7 @@ de la posterior. En este caso, el proceso es como sigue:

1. Generamos un valor de la apriori $\theta_{sim} \sim \text{Beta}(1,3)$
2. Simulamos datos de la muestra ($N=25$) con el valor simulado de $\theta$
3. Simulamos 10000 valores de la posterior
3. Simulamos un número grande $M$ de valores de la posterior (aquí usaremos $M=10000$)
4. Repetimos 1-3


Expand All @@ -973,6 +977,11 @@ simulacion_rep <- map_df(1:20,
mutate(rep = rep) |>
mutate(theta_sim = theta_sim)
})
simular_posterior <- function(muestra, n){
tibble(theta =
rbeta(n, sum(muestra) + 1,
length(muestra) - sum(muestra) + 3))
}
```

Ahora usamos histogramas por ejemplo para mostrar cómo luce la posterior,
Expand Down Expand Up @@ -1002,7 +1011,23 @@ la inferencia (verificación apriori) es correcta bajo nuestros supuestos.
arriba están resueltos, para tener confianza en nuestras conclusiones.


## Ventajas y desventajas de métodos bayesianos
### Resumen

Aquí juntamos algunas observaciones que se derivan de lo que hemos
visto (flujo de trabajo y estimación bayesiana):

1. Todo nuestro trabajo está fundamentado en entender qué es lo
que queremos estimar dentro de un modelo generativo. Los diagramas
causales nos ayudan a conectar el problema de interés con nuestros modelos, a construir modelos generativos y hacer explícitos
nuestros supuestos.

2. El proceso de estimación siempre es el mismo: nuestro estimador es
la distribución posterior, que se construye a partir de la verosimilitud y la apriori (modelo generativo). Nuestro estimador es la posterior de las cantidades de interés, que pueden resumirse de distintas maneras. Cualquier cálculo derivado de otras cantidades de interés debe considerar toda la posterior (no solo la media o la moda, etc. posterior).

3. Nuestro proceso incluye los chequeos predictivos a priori (basados en simulación de datos). Esto son cruciales para detectar problemas en
nuestros supuestos (vs teoría) y que nuestro proceso sea internamente consistente. Esto también es una verificación de la información a priori.

4. Generalmente es más conveniente y práctico hacer simulaciones que calcular analíticamente la posterior o sus integrales.



Expand Down

0 comments on commit 209306b

Please sign in to comment.