• nuevo

    Release 2026.06: Incorporando Data Observability en su código

  • nuevo

    Contribuya al futuro de la innovación en IA y datos

  • nuevo

    • Release 2026.06: Incorporando Data Observability en su código

  • nuevo

    • Contribuya al futuro de la innovación en IA y datos

Simulación de Monte Carlo para principiantes: una guía práctica

|

6

minuto de lectura

Su panel de ingresos trimestrales ha mostrado la misma línea de $4.2M durante tres semanas. El gráfico parece tranquilizador, pero el flujo de acuerdos que hay debajo es escaso, varias oportunidades se retrasan y la confianza en la previsión es baja. Un único número está ocultando un amplio abanico de resultados plausibles.

Ese es el tipo de problema que la simulación de Monte Carlo ayuda a resolver a los equipos de datos. En lugar de forzar inputs inciertos en un único pronóstico determinista, se realiza un muestreo repetido de posibilidades realistas y se examina la distribución de las métricas resultantes. El método es útil para conocer cómo afecta la incertidumbre a los ingresos, al cumplimiento de los flujos de acuerdos, a la disponibilidad de datos y a los KPIs basados en ellos.

Índice de contenidos

  • Por qué la simulación de Monte Carlo es importante para los equipos de datos

    • De la certeza de un panel al rango de decisión

  • La idea central de la simulación de Monte Carlo

    • Estimación de pi con puntos aleatorios

    • Los tres bloques de construcción

  • Cómo crear su primera simulación en Python

    • Lectura correcta de los resultados

  • Casos prácticos de uso para la estimación y el riesgo

    • Incertidumbre de los ingresos

    • Riesgo de finalización de flujos de acuerdos

    • Brechas en la disponibilidad de datos

  • Cuántas iteraciones se necesitan

    • Una comprobación práctica de convergencia

  • Errores comunes y comprobaciones de validación

    • Hacer coincidir las distribuciones con los datos

    • Preservar las relaciones entre los inputs

    • Hacer que las ejecuciones sean reproducibles

    • Validar antes de confiar en el histograma

  • Conexión de la simulación con la calidad de los datos y la Observability

    • Un flujo de trabajo en producción

Por qué la simulación de Monte Carlo es importante para los equipos de datos

Una estimación puntual es cómoda porque es fácil de mostrar y de debatir. También es incompleta. Cuando un panel reporta una única cifra de ingresos, un único tiempo de finalización del flujo de acuerdos o una única tasa de nulos esperada, el cálculo puede haber comprimido los inputs inciertos en suposiciones fijas mucho antes de que el resultado llegue a una parte interesada.

La simulación de Monte Carlo recupera esa variación perdida. Cada ejecución representa un estado plausible del sistema. Una ejecución de ingresos podría incluir menos acuerdos exitosos, fechas de cierre posteriores o valores de acuerdos diferentes. Una ejecución de flujos de acuerdos podría combinar un mayor volumen de entrada con la saturación de recursos. Tras muchas ejecuciones, el equipo puede examinar no sólo la estimación central, sino también las porciones inferior y superior de la distribución de resultados.

A diagram illustrating why Monte Carlo simulation matters for data teams by highlighting risks in revenue forecasting.

De la certeza de un panel al rango de decisión

Supongamos que el panel de ingresos permanece plano porque la consulta de reporte utiliza el total del pronóstico actual. Ese total no dice nada sobre lo sensible que es el resultado a los acuerdos retrasados o a las fases de oportunidad poco fiables. Una simulación puede producir un rango que responda a preguntas más útiles:

  • Exposición de ingresos: ¿Hasta qué nivel podrían caer razonablemente los ingresos reconocidos si se retrasan los acuerdos inciertos?

  • Confianza en la planificación: ¿Qué porcentaje de la previsión reportada depende de un pequeño número de oportunidades?

  • Respuesta operativa: ¿Debe finanzas ajustar los planes de contratación o debe operaciones de ventas mejorar primero los datos del flujo de acuerdos?

El mismo razonamiento se aplica a la ingeniería de datos. Un proceso puede tener un tiempo de ejecución nominal, pero el recuento de filas, los retrasos de origen y la saturación del almacén de datos generan incertidumbre operativa. Simular esos inputs ayuda al equipo a estimar el riesgo de incumplir un SLA en lugar de confiar en un tiempo medio de ejecución.

Regla práctica: Reporte la previsión y la incertidumbre que la rodea. Las partes interesadas pueden actuar sobre un rango cuando entienden qué es lo que impulsa ese rango.

Este enfoque complementa las prácticas de data observability, donde los equipos supervisan si los datos han llegado, han cambiado o han incumplido las expectativas. La monitorización le dice lo que está sucediendo. La simulación ayuda a estimar lo que las condiciones observadas podrían provocar en las decisiones posteriores.

La idea central de la simulación de Monte Carlo

La simulación de Monte Carlo se basa en un bucle sencillo: definir un sistema, generar inputs aleatorios, calcular un resultado y repetir. El resultado no es un tipo especial de número aleatorio. Es un conjunto de resultados que se aproxima al comportamiento de un sistema incierto.

El clásico ejemplo de pi hace visible la lógica sin necesidad de código.

Estimación de pi con puntos aleatorios

Empiece con un cuadrado y dibuje un círculo dentro de él, de forma que el círculo toque los límites del cuadrado. El cuadrado define el dominio. Ahora deje caer puntos al azar por todo el cuadrado, dando a cada ubicación la misma probabilidad de recibir un punto.

Para cada punto, compruebe si cae dentro del círculo. Puede hacerlo comparando su distancia desde el centro con el radio del círculo. Los puntos que quedan dentro del círculo forman una muestra del área del círculo, mientras que todos los puntos juntos representan el área del cuadrado.

A four-step infographic illustrating the Monte Carlo method to estimate the value of Pi using random dots.

La regla de agregación es la parte importante. Divida el número de puntos dentro del círculo por el número total de puntos. Esa relación se aproxima al área del círculo dividida por el área del cuadrado, que es π dividido por cuatro. Multiplique esa proporción por cuatro y tendrá una estimación de π.

La estimación no será exacta tras un número reducido de intentos. La agrupación aleatoria crea ruido. A medida que repita el experimento, la estimación se estabilizará en torno al valor matemático, aunque las ejecuciones individuales puedan seguir difiriendo.

Los tres bloques de construcción

Una forma sencilla de pensar en una simulación es separar su estructura en tres partes:

  1. Dominio: Definir el espacio de inputs posibles, como el cuadrado que contiene al círculo.

  2. Proceso de muestreo: Obtener valores aleatorios según una distribución específica, como puntos uniformes a lo largo del cuadrado.

  3. Regla de agregación: Convertir cada intento en un resultado y, a continuación, resumir el conjunto con una métrica como una relación, una media o un percentil.

El mismo patrón aparece en el trabajo con datos empresariales. El dominio puede ser el valor plausible de los acuerdos, el proceso de muestreo puede extraerse de una distribución triangular y la regla de agregación puede sumar los ingresos previstos de todas las oportunidades. Entender cómo describen las distribuciones a los datos es esencial porque la distribución determina qué posibilidades considera la simulación habituales, raras o imposibles.

Cómo crear su primera simulación en Python

La primera simulación en Python debe ser lo suficientemente pequeña como para poder inspeccionarla. La biblioteca estándar le ofrece todo lo necesario para el ejemplo de pi: random genera las muestras y math proporciona el valor de referencia para calcular el error.

El siguiente script define los inputs, fija una semilla para la repetibilidad, cuenta los puntos dentro de un círculo unitario e imprime el progreso en hitos útiles.

import math
import random

TRIALS = 100_000
SEED = 42
random.seed(SEED)

inside = 0
milestones = {1_000, 10_000, 100_000}

for trial in range(1, TRIALS + 1):
    x = random.uniform(-1, 1)
    y = random.uniform(-1, 1)

    if x * x + y * y <= 1:
        inside += 1

    if trial in milestones:
        estimate = 4 * inside / trial
        error = abs(estimate - math.pi)
        print(
            f"Trials: {trial:,}, "
            f"estimate: {estimate:.6f}, "
            f"absolute error: {error:.6f}"
        )
import math
import random

TRIALS = 100_000
SEED = 42
random.seed(SEED)

inside = 0
milestones = {1_000, 10_000, 100_000}

for trial in range(1, TRIALS + 1):
    x = random.uniform(-1, 1)
    y = random.uniform(-1, 1)

    if x * x + y * y <= 1:
        inside += 1

    if trial in milestones:
        estimate = 4 * inside / trial
        error = abs(estimate - math.pi)
        print(
            f"Trials: {trial:,}, "
            f"estimate: {estimate:.6f}, "
            f"absolute error: {error:.6f}"
        )
import math
import random

TRIALS = 100_000
SEED = 42
random.seed(SEED)

inside = 0
milestones = {1_000, 10_000, 100_000}

for trial in range(1, TRIALS + 1):
    x = random.uniform(-1, 1)
    y = random.uniform(-1, 1)

    if x * x + y * y <= 1:
        inside += 1

    if trial in milestones:
        estimate = 4 * inside / trial
        error = abs(estimate - math.pi)
        print(
            f"Trials: {trial:,}, "
            f"estimate: {estimate:.6f}, "
            f"absolute error: {error:.6f}"
        )

Los inputs tienen tareas distintas. TRIALS controla la duración del experimento, mientras que SEED hace que la secuencia aleatoria sea reproducible. La reproducibilidad es importante en la ingeniería de datos porque es necesario distinguir un cambio en el modelo de una variación ordinaria de muestreo.

Lectura correcta de los resultados

En cada hito, el script calcula la estimación actual y su error absoluto respecto al valor real de π. La estimación inicial puede variar notablemente, mientras que las estimaciones posteriores suelen parecer más estables. Ese patrón es útil, pero no trate el número final impreso como el resultado completo.

Una versión más sólida almacena la estimación de cada hito y la representa frente al recuento de intentos. Añada una línea de referencia horizontal en math.pi e inspeccione si la estimación se está acercando a esa línea. El gráfico muestra la convergencia de forma directa, lo cual aporta más información que la comparación de dos resultados aislados.

Screenshot from https://placeholder.example.com/monte-carlo-pi-python.png

La dispersión entre ejecuciones independientes forma parte de la señal. Un único resultado reproducible es útil para la depuración, pero no describe la incertidumbre del método.

Para el trabajo con datos de producción, la misma estructura puede servir de apoyo para la detección de anomalías de datos basada en Python. Sustituya las coordenadas aleatorias por inputs operativos muestreados, reemplace la prueba del círculo por su lógica de negocio o de flujos de datos y conserve la distribución de resultados para su revisión.

Casos prácticos de uso para la estimación y el riesgo

El ejemplo de pi utiliza una relación geométrica, pero las simulaciones empresariales suelen propagar la incertidumbre a través de un modelo de negocio o de flujo de datos. El bucle sigue siendo el mismo: muestrear inputs, aplicar el modelo, guardar el resultado y resumir la salida.

Incertidumbre de los ingresos

Considere una cartera trimestral que contiene oportunidades con valores de cierre inciertos. Para cada acuerdo, utilice una distribución triangular con un valor mínimo, un valor más probable y un máximo. El mínimo puede representar un resultado conservador, el valor más probable puede reflejar la evaluación de ventas actual y el máximo puede representar el cierre plausible más fuerte.

Una ejecución de simulación muestrea un valor para cada acuerdo y suma esos valores. Repetir el proceso crea una distribución de los ingresos de la cartera. La media proporciona una estimación central, mientras que los percentiles seleccionados ofrecen un rango para la planificación. El valor reside en mostrar cómo se compone la incertidumbre en toda la cartera, especialmente cuando un pequeño grupo de acuerdos contribuye en gran medida al pronóstico.

Este mismo estilo de pronóstico probabilístico aparece en otros contextos de decisión. A los lectores que trabajen con probabilidades de eventos les puede resultar útil la explicación de Monte Carlo para operadores de mercados de predicción, ya que aplica el muestreo repetido a resultados inciertos en lugar de confiar en un único pronóstico determinista.

Riesgo de finalización de flujos de acuerdos

Para un proceso ETL, muestree recuentos de filas inciertos, tasas de procesamiento, tiempos de llegada de origen y saturación de recursos. La lógica de agregación puede calcular el tiempo estimado de finalización para cada ejecución. El resultado de decisión es si ese tiempo de finalización se sitúa antes de la ventana del SLA.

El resultado puede orientar la planificación de la capacidad. Si la distribución del tiempo de finalización simulado supera con frecuencia la fecha límite, el equipo dispone de pruebas para investigar la partición, la programación de la carga de trabajo, las dependencias de origen o el propio SLA.

Brechas en la disponibilidad de datos

Un equipo de datos también puede simular la falta de información en las tablas de origen. Muestree las tasas de nulos o las condiciones de falta de carga a partir del comportamiento operativo observado, aplique esas condiciones al cálculo del KPI y registre la métrica resultante. La distribución de salida muestra cuánto podría variar el KPI cuando cambia la completitud de la fuente.

Caso de uso

Distribución del input clave

Agregación

Resultado de decisión

Incertidumbre de los ingresos

Distribución triangular del valor del acuerdo

Suma de resultados de acuerdos muestreados

Rango de planificación para los ingresos de la cartera

Finalización de flujos de acuerdos

Distribuciones de tiempo de ejecución, volumen de filas, llegada y saturación

Calcular el tiempo de finalización y el estado del SLA

Prioridad de capacidad o de solución

Brechas en la disponibilidad de datos

Distribuciones observadas de completitud y tasa de nulos

Volver a calcular el KPI afectado

Volatilidad y exposición esperadas del KPI

La estructura del código apenas cambia entre estos ejemplos. El trabajo importante se realiza en el modelo de entrada y en la lógica de agregación. Si esas suposiciones no reflejan el comportamiento de la empresa o del flujo de datos, un mayor número de ejecuciones no solucionará el modelo.

Presente los resultados como rangos vinculados a decisiones. "El KPI puede oscilar en un amplio intervalo plausible cuando la completitud de la fuente se deteriora" ofrece a un directivo una razón para financiar la solución. Una cifra de previsión aislada oculta esa opción operativa.

Cuántas iteraciones se necesitan

10.000 iteraciones no es una respuesta universal. Una guía práctica recomienda 10.000 iteraciones para muchas aplicaciones empresariales y sugiere comprobar si los resultados clave varían menos de un 1% al aumentar el número de ejecuciones de 10.000 a 20.000. Contrasta esa recomendación con las directrices de AWS que sugieren tamaños de muestra en torno a 100.000 para lograr precisión. Lea la discusión práctica sobre convergencia para ver esa comparación.

El número de ejecuciones necesarias depende de la decisión y del resultado que se mida. Una media puede estabilizarse mientras que un percentil 95 sigue presentando ruido. Los inputs sesgados o con colas pesadas necesitan más ejecuciones que los compactos y equilibrados, mientras que las variables correlacionadas pueden reducir la información efectiva proporcionada por cada muestra.

La guía de AWS prefiere detenerse cuando la simulación cumple con una tolerancia de error, incluyendo el error estándar de la media, en lugar de seleccionar un número fijo de antemano. Ese enfoque también se adapta al trabajo de ingeniería de datos, donde una estimación de KPI y un percentil de riesgo de SLA pueden necesitar precisiones diferentes. Para conocer el contexto sobre métodos estadísticos relacionados para el análisis de datos, conecte la comprobación de convergencia con el uso previsto de la métrica.

Una comprobación práctica de convergencia

Registre la media móvil y los percentiles de las colas inferior y superior en puntos de control regulares. El siguiente patrón realiza una comprobación cada 500 iteraciones, ofreciéndole valores para representar y comparar.

checkpoints = []
results = []

for trial in range(1, total_trials + 1):
    result = run_model()
    results.append(result)

    if trial % 500 == 0:
        ordered = sorted(results)
        mean = sum(results) / len(results)
        lower = ordered[int(0.05 * len(ordered))]
        upper = ordered[int(0.95 * len(ordered))]

        checkpoints.append((trial, mean, lower, upper))
checkpoints = []
results = []

for trial in range(1, total_trials + 1):
    result = run_model()
    results.append(result)

    if trial % 500 == 0:
        ordered = sorted(results)
        mean = sum(results) / len(results)
        lower = ordered[int(0.05 * len(ordered))]
        upper = ordered[int(0.95 * len(ordered))]

        checkpoints.append((trial, mean, lower, upper))
checkpoints = []
results = []

for trial in range(1, total_trials + 1):
    result = run_model()
    results.append(result)

    if trial % 500 == 0:
        ordered = sorted(results)
        mean = sum(results) / len(results)
        lower = ordered[int(0.05 * len(ordered))]
        upper = ordered[int(0.95 * len(ordered))]

        checkpoints.append((trial, mean, lower, upper))

Represente las tres series registradas. Aumente el número de ejecuciones hasta que la media móvil y las dos líneas de las colas sean lo suficientemente estables para la decisión, como una elección de capacidad, un compromiso financiero o una revisión del SLA.

Una tolerancia interna útil puede ser un error estándar relativo inferior al 1–2% para las estimaciones puntuales e inferior al 5% para los percentiles de las colas. Estos son objetivos operativos, no garantías matemáticas. Documente por qué se adaptan al caso de uso, especialmente cuando el resultado afecta a la planificación de producción o a la solución de la calidad de los datos.

A line chart comparing estimation error percentages against the number of iterations for three different distribution scenarios.

Errores comunes y comprobaciones de validación

Una simulación puede generar un histograma impecable y, aun así, ser errónea. La mayoría de los fallos comienzan antes del bucle aleatorio, en las suposiciones que definen los inputs y las relaciones.

Hacer coincidir las distribuciones con los datos

El muestreo uniforme es atractivo porque es sencillo, pero indica que todos los valores del rango son igual de plausibles. Eso rara vez se ajusta a un input empresarial sesgado. Los acuerdos de ingresos suelen requerir suposiciones de tipo triangular o PERT, mientras que las medidas operativas positivas pueden necesitar una distribución sesgada a la derecha.

Utilice observaciones históricas siempre que estén disponibles. Si el historial es escaso, registre el razonamiento que justifica los valores mínimo, más probable y máximo, en lugar de presentar el criterio de expertos como un hecho contrastado.

Preservar las relaciones entre los inputs

El muestreo independiente puede sobrestimar la diversificación. Dos oportunidades de ingresos pueden depender del presupuesto de un mismo cliente, y dos fases de un flujo de datos pueden competir por los mismos recursos de almacenamiento.

Modele la dependencia de forma explícita. Una matriz de covarianza con una descomposición de Cholesky puede generar muestras correlacionadas, mientras que los flujos deterministas pueden preservar relaciones conocidas. Valide la correlación simulada frente a la relación que pretendía representar.

Hacer que las ejecuciones sean reproducibles

Sin una semilla, una nueva ejecución cambia la secuencia aleatoria. Eso dificulta la depuración y puede crear discrepancias innecesarias entre los resultados de desarrollo y de producción.

Establezca una semilla durante las pruebas, regístrela con los metadatos de la ejecución y utilice flujos aleatorios controlados cuando haya procesos paralelos ejecutando simulaciones. Para los reportes de producción, distinga una ejecución de auditoría reproducible de un conjunto más amplio de ejecuciones independientes utilizadas para evaluar la variabilidad del muestreo.

Validar antes de confiar en el histograma

Comience con un caso sencillo cuya respuesta pueda calcular analíticamente. El ejemplo de pi ofrece ese tipo de comprobación. En un modelo de ingresos, pruebe una cartera simplificada deliberadamente donde el resultado esperado sea fácil de deducir. En un modelo de flujo de datos, utilice primero inputs fijos y luego introduzca variabilidad de uno en uno.

Principio de validación: Una simulación debe ganarse la confianza a través de la comparación, no mediante el atractivo visual.

Por último, no publique únicamente la media. Incluya el intervalo seleccionado, las suposiciones de entrada, la semilla o configuración de ejecución y las pruebas de convergencia. Una parte interesada necesita saber qué dice el modelo y cuánta confianza puede depositar en él.

A list infographic titled Common Pitfalls and Validation Checks for statistical modeling and simulations.

Antes de compartir un resultado, compruebe:

  • Ajuste de inputs: ¿Reflejan las distribuciones el comportamiento observado y los límites válidos?

  • Dependencias: ¿Se han modelado los factores comunes y las correlaciones?

  • Reproducibilidad: ¿Puede otro ingeniero volver a ejecutar la misma configuración?

  • Convergencia: ¿Se estabilizan la media y los percentiles relevantes?

  • Control de coherencia: ¿Coincide una versión simplificada con una expectativa analítica o histórica?

  • Comunicación: ¿Son visibles los rangos, las suposiciones y las limitaciones junto a la estimación puntual?

Conexión de la simulación con la calidad de los datos y la Observability

La simulación de Monte Carlo no sustituye a la monitorización. Un sistema de data observability puede detectar registros faltantes, fallos de actualización, volúmenes inusuales, errores de validación y cambios de esquema a medida que ocurren. La simulación responde a una pregunta diferente: ¿qué incertidumbre posterior podrían introducir esas condiciones en un KPI, panel o característica de machine learning?

Considere una alerta de actualización en una tabla de origen. La capa de monitorización registra el retraso y el conjunto de datos afectado. El equipo de datos puede entonces parametrizar una simulación con el comportamiento de entrega observado, los patrones de completitud y la lógica de dependencia del KPI. Cada ejecución estima un resultado de KPI plausible bajo esas condiciones, generando un rango de riesgo que ayuda al equipo a priorizar las soluciones.

Esa priorización es más útil que contar alertas. Una anomalía menor en una tabla aislada puede merecer menos atención inmediata que un problema moderado de completitud que afecte a una métrica regulatoria o a un panel ejecutivo. La simulación conecta el evento técnico con la exposición del negocio.

Un flujo de trabajo en producción

Una implementación práctica puede seguir esta secuencia:

  1. Instrumentar el flujo de datos: Capturar la actualización, el volumen, las tasas de nulos, los fallos de validación y los cambios de esquema.

  2. Crear inputs del modelo: Convertir el comportamiento de calidad observado en distribuciones con límites y suposiciones explícitos.

  3. Ejecutar el modelo de KPI: Muestrear los inputs de calidad y calcular la métrica afectada para cada intento.

  4. Almacenar el resultado: Guardar la configuración de la ejecución, la información de convergencia, el rango de resultados y la marca de tiempo junto al panel.

  5. Revisar los factores impulsores: Utilizar el análisis de sensibilidad para identificar qué condición de calidad contribuye más a la incertidumbre de la métrica.

El enfoque de métodos de Monte Carlo para una mejor data observability conecta estas previsiones probabilísticas con las señales de calidad operativas. digna puede combinar la monitorización del comportamiento de los datos, la validación, el seguimiento de Timeliness, la detección de anomalías y la monitorización de esquemas dentro del entorno del cliente, lo que permite a los equipos conservar los datos en su sitio mientras relacionan las condiciones de calidad observadas con el riesgo de la métrica.

Comience con un KPI que las partes interesadas ya cuestionen. Defina sus dependencias ascendentes, recopile las señales de calidad que le afectan y ejecute una simulación controlada con suposiciones documentadas. Una vez que el resultado demuestre ser útil en la revisión de incidentes, añádalo al panel para que las partes interesadas vean tanto el estado actual de los datos como la incertidumbre que rodea a la métrica.

digna ayuda a los equipos de datos a supervisar la calidad, Timeliness, las anomalías, los resultados de validación, los cambios de esquema y las métricas de negocio en su propio entorno, generando los inputs operativos necesarios para el análisis consciente de la incertidumbre. Visite digna para explorar cómo la plataforma puede conectar las señales de data observability con los métodos de Monte Carlo para obtener análisis más defendibles.

Compartir en X
Compartir en X
Compartir en Facebook
Compartir en Facebook
Compartir en LinkedIn
Compartir en LinkedIn

Conoce al equipo detrás de la plataforma

Un equipo con sede en Viena de expertos en IA, datos y software respaldado

por el rigor académico y la experiencia empresarial.

Conoce al equipo detrás de la plataforma

Un equipo con sede en Viena de expertos en IA, datos y software respaldado
por el rigor académico y la experiencia empresarial.

Producto

Integraciones

Recursos

Empresa

INDEXED BYIndexerNow INDEXED BYIndexerNow