En este documento, simularemos una martingala simple y calcularemos la probabilidad de que supere un umbral utilizando la Desigualdad Maximal de Doob.
# Instalación del paquete ggplot2 si no está instalado
if (!requireNamespace("ggplot2", quietly = TRUE)) {
install.packages("ggplot2")
}
# Cargar el paquete ggplot2
library(ggplot2)
En el siguiente bloque de código, simulamos una martingala simple utilizando variables aleatorias normales acumuladas a lo largo del tiempo.
# Simular una martingala simple
set.seed(123)
n <- 100 # Número de períodos de tiempo
X <- cumsum(rnorm(n)) # Martingala: suma acumulativa de variables aleatorias normales
# Visualizar la martingala con el umbral
lambda <- 2
df <- data.frame(Time = 1:n, Price = X)
ggplot(df, aes(x = Time, y = Price)) +
geom_line() +
geom_hline(yintercept = lambda, linetype = "dashed", color = "red") +
labs(title = "Simulación de una Martingala con Umbral",
x = "Tiempo", y = "Precio") +
theme_minimal()
En el siguiente bloque de código, calculamos la probabilidad de que la martingala supere un umbral específico utilizando la Desigualdad Maximal de Doob.
# Calcular la probabilidad usando la Desigualdad Maximal de Doob
P_max_lambda <- mean(pmax(X >= lambda, 0))
# Imprimir resultados
cat("Probabilidad estimada de que la martingala supere el umbral:", P_max_lambda, "\n")
## Probabilidad estimada de que la martingala supere el umbral: 0.53