Derivación e integración · Tema 30

Integración por Monte Carlo

Cómo convertir una integral en una esperanza, aproximarla mediante muestras aleatorias y cuantificar la incertidumbre de una respuesta que cambia en cada ejecución.

01 · De integral a esperanza

Promediar valores aleatorios

Sea X una variable uniforme en [a,b]. Su densidad es 1/(b−a), de modo que:

E[f(X)] = 1/(b−a) ∫abf(x)dx

Reorganizando:

I=∫abf(x)dx=(b−a)E[f(X)]

Monte Carlo reemplaza la esperanza por el promedio de muestras independientes.

02 · Fórmula básica

El estimador de Monte Carlo

Generamos N puntos independientes Xᵢ∼U(a,b) y calculamos:

ÎN=(b−a)/N Σi=1Nf(Xᵢ)

El estimador es insesgado si las muestras son realmente uniformes:

E[ÎN]=I

Insesgado no significa exacto en una ejecución. Significa que, al repetir el experimento muchas veces, el promedio de las estimaciones coincide con la integral.

03 · Incertidumbre cuantificable

Varianza y error estándar

Si σ²=Var[f(X)], la varianza del estimador es:

Var(ÎN)=(b−a)²σ²/N

El error estándar es:

SE(ÎN)=|b−a|σ/√N

Como σ es desconocida, utilizamos la desviación estándar muestral de los valores f(Xᵢ). El error estándar describe variabilidad entre ejecuciones, no el error exacto de una ejecución particular.

04 · Una tasa lenta pero estable

Convergencia O(N⁻¹/²)

La ley de los grandes números garantiza convergencia bajo condiciones habituales. Su escala es:

error típico ∝ 1/√N

Para reducir el error estándar diez veces necesitamos aproximadamente cien veces más muestras.

Costo relativo para reducir el error estadístico.
Reducción deseadaMultiplicador de N
2 veces4
5 veces25
10 veces100

En una dimensión, Simpson o una regla adaptativa suelen converger mucho más rápido para funciones suaves.

05 · Predicción teórica

Integrar x² en [0,1]

Para X∼U(0,1):

I=E[X²]=1/3

Necesitamos la varianza:

Var(X²)=E[X⁴]−E[X²]²=1/5−1/9=4/45

Con N=10000:

SE=√[4/(45·10000)]≈0.002981

Un intervalo normal aproximado del 95 % tendrá semiancho 1.96·SE≈0.005843. Diferentes semillas producirán resultados distintos, normalmente dentro de esa escala.

06 · Media y varianza en una pasada

Monte Carlo reproducible en JavaScript

El algoritmo de Welford actualiza media y varianza sin guardar todas las muestras y evita restar dos sumas grandes.

function crearAleatorio(semilla) {
  let estado = semilla >>> 0;
  return function () {
    estado += 0x6D2B79F5;
    let z = estado;
    z = Math.imul(z ^ (z >>> 15), z | 1);
    z ^= z + Math.imul(z ^ (z >>> 7), z | 61);
    return ((z ^ (z >>> 14)) >>> 0) / 4294967296;
  };
}

function monteCarlo1D(f, a, b, n, aleatorio = Math.random) {
  if (!Number.isInteger(n) || n < 2) throw new Error("n debe ser al menos 2");
  let media = 0;
  let m2 = 0;
  for (let i = 1; i <= n; i++) {
    const x = a + (b - a) * aleatorio();
    const y = f(x);
    if (!Number.isFinite(y)) throw new Error("La función no es finita");
    const delta = y - media;
    media += delta / i;
    m2 += delta * (y - media);
  }
  const varianzaMuestral = m2 / (n - 1);
  const valor = (b - a) * media;
  const errorEstandar = Math.abs(b - a) * Math.sqrt(varianzaMuestral / n);
  return {
    valor,
    errorEstandar,
    intervalo95: [valor - 1.96 * errorEstandar, valor + 1.96 * errorEstandar]
  };
}

const resultado = monteCarlo1D(x => x * x, 0, 1, 10000, crearAleatorio(123));
console.log(resultado);

07 · Repetibilidad

Números pseudoaleatorios y semillas

Los generadores habituales son deterministas: una semilla fija produce siempre la misma secuencia. Esto es valioso para pruebas, depuración y comparación de algoritmos.

  • Guardá la semilla junto con el resultado.
  • Usá semillas diferentes para réplicas independientes.
  • No confundas un generador educativo con uno criptográficamente seguro.
  • Para simulación científica exigente, utilizá generadores bien estudiados y con períodos amplios.

Math.random() no permite fijar la semilla de manera portable; por eso el ejemplo incluye un generador pequeño explícito.

08 · Comunicar incertidumbre

Intervalos de confianza aproximados

Por el teorema central del límite, para N suficientemente grande:

ÎN≈Normal(I, SE²)

Un intervalo aproximado del 95 % es:

ÎN ± 1.96·SE

Si repitiéramos todo el procedimiento, cerca del 95 % de los intervalos construidos de esta forma contendrían el valor verdadero bajo los supuestos del método.

09 · Área como probabilidad

Método de aciertos y fallos

Para estimar un área dentro de una región conocida, muestreamos puntos uniformes en una caja y contamos la fracción que cae dentro.

En el cuadrado [−1,1]², la probabilidad de caer en el círculo unitario es π/4:

π ≈ 4·(aciertos/N)

Cada muestra utiliza el indicador Y=1 si x²+y²≤1 y 0 en caso contrario. Su error estándar estimado es:

SE(π̂)=4√[p̂(1−p̂)/N]

Cuando podemos evaluar directamente una función, promediar sus valores suele aprovechar más información que convertirlos en indicadores binarios.

10 · La ventaja principal

Integrales en muchas dimensiones

Para una caja D=[a₁,b₁]×…×[ad,bd] de volumen V:

∫Df(x)dx = V·E[f(X)],   X uniforme en D

Una cuadrícula con m puntos por eje necesita mᵈ evaluaciones. Monte Carlo mantiene su tasa estadística O(N⁻¹/²) sin que el exponente dependa directamente de d.

La constante puede empeorar si aumenta la varianza, pero Monte Carlo evita la explosión combinatoria de una malla tensorial.

11 · Hipercajas

Una implementación multidimensional

function monteCarloCaja(f, limites, n, aleatorio = Math.random) {
  if (!Number.isInteger(n) || n < 1) throw new Error("n inválido");
  const volumen = limites.reduce((v, [a, b]) => v * (b - a), 1);
  let media = 0;
  let m2 = 0;

  for (let i = 1; i <= n; i++) {
    const punto = limites.map(([a, b]) => a + (b - a) * aleatorio());
    const valor = f(punto);
    const delta = valor - media;
    media += delta / i;
    m2 += delta * (valor - media);
  }
  const varianza = n > 1 ? m2 / (n - 1) : 0;
  return {
    valor: volumen * media,
    errorEstandar: Math.abs(volumen) * Math.sqrt(varianza / n)
  };
}

const resultado = monteCarloCaja(
  ([x, y, z]) => Math.exp(-(x*x + y*y + z*z)),
  [[0, 1], [0, 1], [0, 1]],
  50000
);
console.log(resultado);

12 · Mejorar sin aumentar N

Reducción de varianza

La precisión depende de Var[f(X)]. Reducir esa varianza puede ser más eficaz que generar más muestras.

  • Muestras antitéticas: emparejar x con a+b−x.
  • Estratificación: dividir el dominio y muestrear cada región.
  • Variable de control: usar una función correlacionada cuya integral conocemos.
  • Muestreo por importancia: concentrar muestras donde el integrando contribuye más.
function monteCarloAntitetico(f, a, b, pares, aleatorio = Math.random) {
  let media = 0;
  let m2 = 0;
  for (let i = 1; i <= pares; i++) {
    const x = a + (b - a) * aleatorio();
    const reflejado = a + b - x;
    const y = (f(x) + f(reflejado)) / 2;
    const delta = y - media;
    media += delta / i;
    m2 += delta * (y - media);
  }
  const varianza = m2 / (pares - 1);
  return {
    valor: (b - a) * media,
    errorEstandar: Math.abs(b - a) * Math.sqrt(varianza / pares)
  };
}

console.log(monteCarloAntitetico(Math.exp, 0, 1, 5000));

El emparejamiento es útil cuando los valores reflejados tienen correlación negativa. No reduce la varianza de todas las funciones.

13 · Elegir el método adecuado

Determinista o Monte Carlo

Cuándo suele convenir cada enfoque.
SituaciónElección habitual
Una dimensión y función suaveSimpson o cuadratura adaptativa
Pocas dimensiones y alta precisiónMétodos deterministas especializados
Decenas o cientos de dimensionesMonte Carlo o cuasi-Monte Carlo
Dominio geométrico complejoMuestreo y técnicas de importancia
Integrando costosoComparar costo y aplicar reducción de varianza

Monte Carlo no reemplaza universalmente a las reglas anteriores. Cambia precisión determinista por escalabilidad, simplicidad geométrica y una estimación estadística del error.

14 · Exploración interactiva

Laboratorio: estimar π con puntos aleatorios

Los puntos turquesa caen dentro del círculo y los corales fuera. Cambiá la cantidad de muestras y la semilla para observar la variabilidad entre ejecuciones.

EXPERIMENTO 30

Área del círculo como probabilidad

π≈4·aciertos/N

Los resultados numéricos aparecen debajo.
Estimación de π—
Error absoluto—
Error estándar—
Intervalo 95 %—

Cambiar la semilla produce otra estimación igualmente válida.

Preguntas para explorar

  1. Mantené N y cambiá la semilla: observá la variabilidad.
  2. Multiplicá las muestras por cuatro y compará el error estándar.
  3. Buscá una ejecución cuyo error real sea mayor que un error estándar.
  4. Comprobá que una muestra pequeña puede acercarse a π por azar sin ser más confiable.

15 · Comprensión

Confusiones frecuentes

«Más muestras siempre acercan monotónicamente el resultado»

La trayectoria es aleatoria y puede alejarse temporalmente. Lo que disminuye de manera predecible es la escala típica del error.

«Un estimador insesgado no tiene error»

Insesgado se refiere al promedio sobre repeticiones; cada ejecución conserva variabilidad.

«El error estándar es el error real»

Es una desviación típica estimada del procedimiento, no la distancia conocida al valor verdadero.

«Monte Carlo converge rápido porque funciona en muchas dimensiones»

Su tasa N⁻¹/² es lenta. Su ventaja es que esa tasa no empeora directamente con la dimensión.

«Cualquier generador aleatorio sirve para cualquier aplicación»

Calidad, período, independencia y reproducibilidad importan; seguridad criptográfica es otro requisito diferente.

16 · Práctica guiada

Ejercicios

Ejercicio 1: estimador

En [0,2], cuatro muestras producen valores de f iguales a [1,2,3,2]. Calculá la integral estimada.

Ver solución

La media es 2 y el ancho es 2; la estimación es 2·2=4.

Ejercicio 2: costo

¿Cuántas veces más muestras se necesitan para reducir el error estándar a la tercera parte?

Ver solución

Nueve veces, porque 1/√9=1/3.

Ejercicio 3: intervalo

Una estimación vale 1.50 con error estándar 0.02. Construí el intervalo normal del 95 %.

Ver solución razonada

1.50±1.96·0.02=1.50±0.0392, aproximadamente [1.4608,1.5392].

Ejercicio 4: π

De 10000 puntos, 7860 caen dentro del círculo. Estimá π.

Ver solución

π̂=4·7860/10000=3.144.

Ejercicio 5: dimensión

Una cuadrícula utiliza 20 puntos por eje. ¿Cuántos necesita en dimensión 6?

Ver solución

20⁶=64,000,000 puntos. Este crecimiento exponencial motiva el uso de Monte Carlo.

17 · Síntesis

Ideas para recordar

  • Monte Carlo expresa una integral como volumen por esperanza.
  • El estimador básico es el promedio de muestras uniformes multiplicado por el volumen.
  • Su error estándar disminuye como N⁻¹/².
  • La varianza muestral permite cuantificar incertidumbre.
  • Las semillas hacen reproducibles las secuencias pseudoaleatorias.
  • Los intervalos de confianza son probabilísticos, no cotas deterministas.
  • Aciertos y fallos estima áreas mediante variables indicadoras.
  • La tasa de Monte Carlo no depende directamente de la dimensión.
  • Reducir varianza puede ser más eficiente que aumentar muestras.

En el próximo tema comenzaremos ecuaciones diferenciales numéricas con los problemas de valor inicial: construir una trayectoria a partir de una condición inicial y una ley de cambio.