Código
library(ggplot2)
custom_theme <- function() {
theme_bw() +
theme(
panel.grid.minor = element_blank(),
panel.grid.major = element_blank()
)
}
theme_set(custom_theme())Recursos
Este programa grafica la función de verosimilitud cuando se obtiene una muestra de \(n\) realizaciones independientes de una distribución Poisson. Se utiliza en el ejercicio El modelo Gamma-Poisson de la Práctica 2.
\[ \begin{array}{lcc} X \sim \text{Poisson}(\lambda), & \lambda > 0, & X \in \{0, 1, 2, \cdots \} \end{array} \]
\[ p(x \mid \lambda) = \frac{e^{-\lambda} \lambda^x}{x!} \]
\[ \ell(\theta \mid x_1, x_2, \cdots, x_n) = p(\mathbf{x} \mid \theta) = \prod_{i=1}^{n} p(x_i \mid \lambda) = \prod_{i=1}^{n} \frac{e^{-\lambda} \lambda^{x_i}}{x_i!} = \frac{e^{- n \lambda} \lambda^{\sum_i x_i}}{\prod_i x_i!} \]
Opción 1: Escribir la función de verosimilitud analíticamente
n <- length(mensajes)
total <- sum(mensajes)
producto_factoriales <- prod(factorial(mensajes))
# Grilla de valores para 'lambda'
# Teoréticamente, el soporte del parámetro es (0, infty). Lo acotamos en 20.
lambda <- seq(0, 20, length.out = 200)
# Cálculo de la verosimilitud
verosimilitud <- exp(-n * lambda) * lambda ^ total / producto_factoriales
# Visualización de la verosimilitud para los valores de lambda en la grilla
data.frame(x = lambda, y = verosimilitud) |>
ggplot() +
geom_line(aes(x = x, y = y), linewidth = 1, color = "#3b78b0") +
labs(x = expression(lambda), y = expression("p(y | " ~ lambda ~ ")"))
Opción 2: Utilizar dpois
mensajes_matriz <- matrix(rep(mensajes, 200), nrow = 200, byrow = TRUE)
1pmf <- dpois(mensajes_matriz, lambda)
2verosimilitud <- apply(pmf, 1, prod)
data.frame(x = lambda, y = verosimilitud) |>
ggplot() +
geom_line(aes(x = x, y = y), linewidth = 1, color = "#3b78b0") +
labs(x = expression(lambda), y = expression("p(y | " ~ lambda ~ ")"))