{"id":776,"date":"2026-07-30T12:21:43","date_gmt":"2026-07-30T12:21:43","guid":{"rendered":"https:\/\/matforge.org\/?p=776","raw":"https:\/\/matforge.org\/?p=776"},"modified":"2026-07-30T12:21:43","modified_gmt":"2026-07-30T12:21:43","slug":"monte-carlo-uhq-methods-lhs-sobol-quasi","status":"publish","type":"post","link":"https:\/\/matforge.org\/es\/monte-carlo-uhq-methods-lhs-sobol-quasi\/","title":{"rendered":"M\u00e9todos Monte Carlo UQ: Hipercubo latino, Sobol y quasi-Monte Carlo","raw":"M\u00e9todos Monte Carlo UQ: Hipercubo latino, Sobol y quasi-Monte Carlo"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 11<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span><p>Cuando la salida de su simulaci\u00f3n est\u00e1 impulsada por entradas inciertas, la forma en que extrae muestras de esas entradas determina si su cuantificaci\u00f3n de incertidumbre es eficiente o derrochadora. El est\u00e1ndar Monte Carlo utiliza I.I.D. Sorteos aleatorios, lo que garantiza la convergencia pero a un ritmo dolorosamente lento. M\u00e9todos de muestreo de baja discrepancia: muestreo de hipercubo latino (LHS), secuencias SOBOL y la familia cuasi-Monte Carlo (QMC) m\u00e1s amplia: reestructurar el proceso de muestreo para que los puntos cubran el espacio de par\u00e1metros de manera m\u00e1s uniforme, reduciendo dr\u00e1sticamente la varianza de estimadores.<\/p>\n<p>En este art\u00edculo vamos m\u00e1s all\u00e1 de la breve menci\u00f3n en nuestra <a href=\"https:\/\/matforge.org\/monte-carlo-methods-for-scientific-simulations\/\" target=\"_blank\" rel=\"nofollow noopener\">Gu\u00eda de Simulaciones de Monte Carlo para Cient\u00edficas<\/a>. Esta es una inmersi\u00f3n profunda dedicada a la teor\u00eda, la implementaci\u00f3n pr\u00e1ctica y los marcos de decisi\u00f3n para LHS, secuencias SOBOL y m\u00e9todos QMC, con c\u00f3digo Python de trabajo y una comparaci\u00f3n de cu\u00e1ndo gana cada enfoque.<\/p>\n<h2>Comida clave<\/h2>\n<ul>\n<li><strong>LHS estratifica cada dimensi\u00f3n de forma independiente<\/strong>, lo que garantiza que cada contenedor de histogramas marginales se llene exactamente una vez. Ofrece una convergencia m\u00e1s r\u00e1pida que el sencillo Monte Carlo a bajo costo.<\/li>\n<li><strong>Las secuencias SOBOL son secuencias de baja discrepancia<\/strong> que logran una cobertura casi uniforme en cualquier dimensi\u00f3n, pero requieren codificaci\u00f3n para un uso pr\u00e1ctico y funcionan mejor con recuentos de muestras de poderes de dos.<\/li>\n<li><strong>La convergencia de QMC puede alcanzar O(N\u207b\u00b9)<\/strong> para integrar suaves, frente a O(N\u207b\u00b9\u141f\u00b2) para Monte Carlo est\u00e1ndar, una ca\u00edda exponencial en el tama\u00f1o de muestra requerido para la misma precisi\u00f3n.<\/li>\n<li><strong>Las secuencias de Halton permiten recuentos de muestras arbitrarios<\/strong> y son f\u00e1ciles de generar, pero exhiben un alias estructurado en dimensiones m\u00e1s altas. SOBOL supera a Halton cuando necesita una invariancia rotacional a trav\u00e9s de la codificaci\u00f3n.<\/li>\n<li><strong>La codificaci\u00f3n no es opcional para la producci\u00f3n SOBOL<\/strong>: las secuencias no codificadas inducen un sesgo sistem\u00e1tico en integrandos peri\u00f3dicos o discontinuos.<\/li>\n<\/ul>\n<h2>El problema de muestreo: por qu\u00e9 el aleatorio no siempre es mejor<\/h2>\n<p>El desaf\u00edo central en la cuantificaci\u00f3n de incertidumbre basada en el muestreo es la <strong>discrepancia<\/strong> del conjunto de muestras. La discrepancia mide c\u00f3mo se distribuyen los puntos uniformemente en el espacio de par\u00e1metros. En el l\u00edmite de muestras infinitas, cualquier discrepancia razonable llega a cero, pero la velocidad a la que hace importa enormemente.<\/p>\n<h3>Monte Carlo cl\u00e1sico<\/h3>\n<p>Standard Monte Carlo extrae muestras independientemente de la distribuci\u00f3n objetivo. Por el teorema del l\u00edmite central, el estimador converge con una varianza proporcional a 1\/N. Eso significa que para reducir a la mitad el error est\u00e1ndar, debe <strong>cuadruple<\/strong> el recuento de muestras. Para una simulaci\u00f3n computacionalmente costosa, un problema t\u00e9rmico 3D, un solucionador de flujo multif\u00e1sico o una ejecuci\u00f3n de din\u00e1mica molecular de ciencia de materiales, cuadruplicar el recuento de muestras puede significar d\u00edas de reloj de pared.<\/p>\n<h3>La perspectiva de discrepancia<\/h3>\n<p>Las secuencias de baja discrepancia (LD) se construyen con precisi\u00f3n para minimizar la discrepancia de estrellas d*_n del conjunto de muestras. La definici\u00f3n es:<\/p>\n<pre><code>D*_N = sup_{A \u2286 [0,1]^s} |(1\/N) \u03a3 1_A(x_i) \u2212 \u03bb(A)|\n<\/code><\/pre>\n<p>donde \u03bb(a) es la medida de Lebesgue (volumen) de A y el supremum se toma sobre todas las subcajas alineadas con eje. En ingl\u00e9s sencillo: las secuencias LDS minimizan la desviaci\u00f3n m\u00e1xima entre la probabilidad emp\u00edrica y la verdadera sobre cualquier regi\u00f3n rectangular.<\/p>\n<p>El <strong>sobelev\u2013dick-tractman desigualdad<\/strong> (el teorema de Koks-Meyers para LDS) establece que para una funci\u00f3n f con derivados parciales mixtos hasta el orden s, el error de integraci\u00f3n de una regla LDS est\u00e1 delimitado por:<\/p>\n<pre><code>|\u222b f \u2212 (1\/N) \u03a3 f(x_i)| \u2264 C_s \u00b7 \u2016f\u2016_S \u00b7 D*_N\n<\/code><\/pre>\n<p>donde c_s es una constante que depende solo de la dimensi\u00f3n y \u2016s\u2016_s es la norma sobolev. Este l\u00edmite explica por qu\u00e9 los m\u00e9todos de QMC brillan para funciones suaves: el error decae mucho m\u00e1s r\u00e1pido que la tasa de Monte Carlo cuando el integrando tiene derivados mixtos.<\/p>\n<h3>La maldici\u00f3n de la dimensionalidad<\/h3>\n<p>Todos estos m\u00e9todos se enfrentan a la maldici\u00f3n de la dimensionalidad. Para LHS, el beneficio de estratificaci\u00f3n se compone multiplicativamente entre dimensiones. Para Sobol y Halton, la estructura que da baja discrepancia en las dimensiones de 1 a 2 comienza a descomponerse a medida que aumentan las dimensiones: las secuencias de Halton en particular desarrollan patrones de alias peri\u00f3dicos que distorsionan la cobertura. Comprender d\u00f3nde se encuentran las fortalezas y debilidades de cada m\u00e9todo es esencial para seleccionar el muestreador adecuado.<\/p>\n<h2>Muestreo de hipercubo latino: teor\u00eda e implementaci\u00f3n<\/h2>\n<p>El muestreo de hipercubo latino fue introducido por McKay et al. (1989) como un compromiso entre la estratificaci\u00f3n pura y la simplicidad del muestreo aleatorio.<\/p>\n<h3>C\u00f3mo funciona LHS<\/h3>\n<p>Para un problema de dimensi\u00f3n D con n muestras:<\/p>\n<ol>\n<li>Divida cada dimensi\u00f3n marginal en n bins de intervalos iguales.<\/li>\n<li>Para cada dimensi\u00f3n k, permute aleatoriamente el vector entero [1, 2, &#8230;, N] para determinar qu\u00e9 contenedor ocupa cada muestra.<\/li>\n<li>Dibuje n muestras uniformes de cada dimensi\u00f3n, estratificadas dentro de sus contenedores asignados.<\/li>\n<li>Permute de forma independiente los \u00edndices de muestra en todas las dimensiones, produciendo una matriz d \u00d7 n.<\/li>\n<\/ol>\n<p>La propiedad crucial es <strong>una muestra por bin<\/strong> a lo largo de cada dimensi\u00f3n. Esto garantiza que el histograma marginal para cada dimensi\u00f3n est\u00e9 perfectamente estratificado.<\/p>\n<h3>Propiedades de convergencia<\/h3>\n<p>LHS tiene un factor de reducci\u00f3n de varianza en comparaci\u00f3n con Monte Carlo simple. En condiciones de regularidad leve:<\/p>\n<pre><code>Var_LHS(\u0233) = Var_MC(\u0233) \/ N + O(N\u207b\u00b2)\n<\/code><\/pre>\n<p>Esto significa que LHS converge aproximadamente a la misma tasa O(n\u207b\u00b9\u141f\u00b2) en el error est\u00e1ndar pero con una constante significativamente m\u00e1s baja, aproximadamente un factor de n en la reducci\u00f3n de varianza.<\/p>\n<h3>Implementaci\u00f3n de Python<\/h3>\n<pre><code class=\"language-python\">import numpy as np\nfrom scipy.stats import qmc\n\ndef lhs_sample(N, d, bounds=None):\n    \"\"\"\n    Latin Hypercube Sampling using scipy.\n    \n    Parameters:\n        N: number of samples\n        d: number of dimensions\n        bounds: list of (low, high) tuples for each dimension\n    \n    Returns:\n        N x d array of LHS samples\n    \"\"\"\n    if bounds is None:\n        bounds = [(0, 1)] * d\n    \n    # Create the LHS engine\n    engine = qmc.Lhs(d, scramble=False)\n    \n    # Generate samples in [0,1]\n    samples = engine.random(N)\n    \n    # Apply bounds\n    if bounds != [(0, 1)] * d:\n        # Transform to specified bounds\n        for i, (low, high) in enumerate(bounds):\n            samples[:, i] = low + (high - low) * samples[:, i]\n    \n    return samples\n\n# Example: 3D LHS with 1000 samples\nnp.random.seed(42)\nd = 3\nN = 1000\nlhs_samples = lhs_sample(N, d)\nprint(f\"LHS shape: {lhs_samples.shape}\")\nprint(f\"Marginal means (should be ~0.5): {lhs_samples.mean(axis=0)[:3]}\")\n<\/code><\/pre>\n<p>La opci\u00f3n <code>scramble=False<\/code> anterior es intencional para la ilustraci\u00f3n: en producci\u00f3n, debe usar <code>scramble=True<\/code> para romper la estructura de correlaci\u00f3n artificial que introduce LHS determinista.<\/p>\n<h2>Cuasi-Monte Carlo: Secuencias Sobol y Scrambling<\/h2>\n<p>Las secuencias SOBOL fueron introducidas por I. M. Sobol en 1967 como la primera secuencia pr\u00e1ctica de baja discrepancia. Usan un gr\u00e1fico dirigido para generar d\u00edgitos en la base 2, produciendo una secuencia con discrepancia estelar provenientemente baja.<\/p>\n<h3>Por qu\u00e9 la codificaci\u00f3n es esencial<\/h3>\n<p>Una secuencia SOBOL sin codificar tiene una estructura que repite cada 2^m muestras. Para integrandos peri\u00f3dicos o discontinuos, muy comunes en los flujos de trabajo de simulaci\u00f3n, esto crea <strong>sesgo sistem\u00e1tico<\/strong>. La secuencia se alinea con las discontinuidades, lo que hace que el integrador se pierda caracter\u00edsticas importantes.<\/p>\n<p>La codificaci\u00f3n aplica una permutaci\u00f3n aleatoria a las representaciones binarias de los \u00edndices de secuencia, rompiendo esta periodicidad conservando la propiedad de baja discrepancia. El marco <strong> cuasi-monte carlo aleatorizado (RQMC)<\/strong> demuestra que las secuencias SOBOL codificadas, cuando se promedian sobre la codificaci\u00f3n, producen estimadores imparciales con intervalos de confianza convergentes.<\/p>\n<h3>Recuento de muestras: potencias de dos<\/h3>\n<p>Las secuencias de Sobol se dise\u00f1aron para que <strong>exactamente 2^m puntos proporcionen una discrepancia \u00f3ptima<\/strong>. Tomar n = 2^15 = 32.768 puntos produce una cobertura mucho mejor que tomar n = 30.000. Si necesita exactamente 30.000 muestras, usted:<\/p>\n<ol>\n<li>Genera 32.768 puntos SOBOL y usa los primeros 30.000 (pierdes la optimizaci\u00f3n)<\/li>\n<li>Use un sampler diferente para ese conteo espec\u00edfico<\/li>\n<li>Utilice secuencias de Halton, que soportan n arbitrariamente<\/li>\n<\/ol>\n<h3>Scrambled Sobol en la pr\u00e1ctica<\/h3>\n<pre><code class=\"language-python\">import numpy as np\nfrom scipy.stats import qmc\n\ndef scrambled_sobol(N, d, seed=None):\n    \"\"\"\n    Generate scrambled Sobol QMC samples.\n    \n    Parameters:\n        N: number of samples (ideally a power of 2)\n        d: number of dimensions\n        seed: random seed for scrambling\n    \n    Returns:\n        N x d array of QMC samples\n    \"\"\"\n    engine = qmc.QualifiedSobol(d, scramble=True, seed=seed)\n    return engine.random(N)\n\n# Example: 2^15 Sobol samples in 10 dimensions\nnp.random.seed(42)\nd = 10\nN = 2**15  # 32,768 - optimal for Sobol\nsobol_samples = scrambled_sobol(N, d, seed=12345)\nprint(f\"Scrambled Sobol shape: {sobol_samples.shape}\")\n<\/code><\/pre>\n<h2>Halton vs Sobol: Trade-offs pr\u00e1cticos<\/h2>\n<p>Las dos familias SUD m\u00e1s comunes son Halton y Sobol. Ambos son deterministas, ambos tienen baja discrepancia, pero se comportan de manera diferente en la pr\u00e1ctica.<\/p>\n<h3>Secuencias de Halton<\/h3>\n<p>Las secuencias de Halton utilizan primos consecutivos como bases: 2, 3, 5, 7, 11, &#8230; esto asegura la independencia matem\u00e1tica entre las dimensiones. Las ventajas son:<\/p>\n<ul>\n<li><strong>Recuentos de muestras arbitrarios<\/strong> \u2014 No hay necesidad de poderes de dos<\/li>\n<li><strong>F\u00e1cil de generar<\/strong> \u2014 No se necesitan tablas polin\u00f3micas primitivas<\/li>\n<li><strong>R\u00e1pido de calcular<\/strong> \u2014 Extracci\u00f3n de d\u00edgitos simple<\/li>\n<\/ul>\n<p>Las desventajas est\u00e1n bien documentadas:<\/p>\n<ul>\n<li><strong>Aliasing estructurado<\/strong> \u2014 Las proyecciones de mayor dimensi\u00f3n exhiben patrones peri\u00f3dicos<\/li>\n<li><strong>L\u00edmites te\u00f3ricos m\u00e1s pobres<\/strong> \u2014 La discrepancia crece m\u00e1s r\u00e1pido que Sobol<\/li>\n<li><strong>No hay teor\u00edas de codificaci\u00f3n<\/strong> \u2014 La codificaci\u00f3n es m\u00e1s dif\u00edcil de definir para bases arbitrarias<\/li>\n<\/ul>\n<h3>Secuencias Sobol<\/h3>\n<p>Las secuencias sobol usan un polinomio primitivo fijo sobre GF(2), dando:<\/p>\n<ul>\n<li><strong>Mejores l\u00edmites te\u00f3ricos<\/strong>: discrepancia m\u00e1s baja para la base-2<\/li>\n<li><strong>Teor\u00eda enriquecida en la lucha<\/strong> \u2014 Owen Scrambling est\u00e1 bien definido y efectivo<\/li>\n<li><strong>Optim en potencias de dos<\/strong> \u2014 garant\u00edas de optimizaci\u00f3n exactas<\/li>\n<\/ul>\n<p>Las desventajas:<\/p>\n<ul>\n<li><strong>Requiere tablas polin\u00f3micas primitivas<\/strong> \u2014 Debe calcularse previamente o almacenarse<\/li>\n<li><strong>No flexible en el n\u00famero de muestras<\/strong> \u2014 dise\u00f1ado para n = 2 ^m<\/li>\n<li><strong>Computacionalmente m\u00e1s pesado<\/strong> \u2014 Requiere b\u00fasquedas en tabla<\/li>\n<\/ul>\n<h3>el veredicto<\/h3>\n<p>Para la mayor\u00eda de las aplicaciones de simulaci\u00f3n con dimensiones de 5 a 20, <strong>SOBOL con codificaci\u00f3n supera a Halton<\/strong>. La raz\u00f3n es que la codificaci\u00f3n rompe los patrones de alias que Halton desarrolla en dimensiones m\u00e1s altas. Cuando necesite recuentos de muestras arbitrarios y no pueda usar la codificaci\u00f3n, Halton puede ser la mejor opci\u00f3n pr\u00e1ctica.<\/p>\n<h2>Gu\u00eda de comparaci\u00f3n: MC vs LHS vs Sobol vs Halton<\/h2>\n<table>\n<thead>\n<tr>\n<th>Propiedad<\/th>\n<th>Monte Carlo<\/th>\n<th>Hipercubo latino<\/th>\n<th>Sobol (Scrambled)<\/th>\n<th>halton<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>tasa de convergencia<\/td>\n<td>O(n\u207b\u00b9\u141f\u00b2) Error est\u00e1ndar<\/td>\n<td>O(n\u207b\u00b9\u141f\u00b2) con varianza reducida<\/td>\n<td>O(n\u207b\u00b9) para funciones suaves<\/td>\n<td>O(n\u207b\u00b9) para funciones suaves<\/td>\n<\/tr>\n<tr>\n<td>Reducci\u00f3n de varianza<\/td>\n<td>Ninguno<\/td>\n<td>Factor ~ N comparado con MC<\/td>\n<td>10\u2013100\u00d7 Reducci\u00f3n vs MC<\/td>\n<td>10\u201350\u00d7 Reducci\u00f3n vs MC<\/td>\n<\/tr>\n<tr>\n<td>Muestra Flexibilidad<\/td>\n<td>cualquier n<\/td>\n<td>cualquier n<\/td>\n<td>\u00d3ptimo en n = 2^m<\/td>\n<td>cualquier n<\/td>\n<\/tr>\n<tr>\n<td>Escalado de dimensionalidad<\/td>\n<td>degrada linealmente<\/td>\n<td>degrada multiplicativamente<\/td>\n<td>se degrada como O(s)<\/td>\n<td>Se degrada como O(s) con alias<\/td>\n<\/tr>\n<tr>\n<td>Se requiere luchar<\/td>\n<td>No<\/td>\n<td>A veces (LHS revuelto)<\/td>\n<td>S\u00ed (para producci\u00f3n)<\/td>\n<td>Opcional<\/td>\n<\/tr>\n<tr>\n<td>complejidad de la implementaci\u00f3n<\/td>\n<td>Trivial<\/td>\n<td>Bajo<\/td>\n<td>Medio (mesas + codificaci\u00f3n)<\/td>\n<td>Bajo<\/td>\n<\/tr>\n<tr>\n<td>Integrandos peri\u00f3dicos<\/td>\n<td>Sesgado (estructural)<\/td>\n<td>Sesgado (estructural)<\/td>\n<td>imparcial (si se revuelva)<\/td>\n<td>potencialmente sesgado<\/td>\n<\/tr>\n<tr>\n<td>Recomendado para<\/td>\n<td>L\u00ednea de base, muy irregular<\/td>\n<td>Dimensiones moderadas (\u2264 15)<\/td>\n<td>Integrandos suaves, producci\u00f3n<\/td>\n<td>n arbitrario, prototipos r\u00e1pidos<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Gu\u00eda de implementaci\u00f3n de Python<\/h2>\n<p>Aqu\u00ed hay un ejemplo de trabajo completo que compara los cuatro muestreadores en una funci\u00f3n de prueba simple.<\/p>\n<pre><code class=\"language-python\">import numpy as np\nfrom scipy.stats import qmc\n\ndef test_function(x):\n    \"\"\"\n    Test integrand: sum of cosines along with a linear drift.\n    True integral on [0,1]^d = sum of (sin(1)\/1) for cos + 0.5*d for linear.\n    \"\"\"\n    d = x.shape[-1]\n    true_integral = d * np.sin(1) + 0.5 * d\n    return np.cos(x) + x.mean(axis=-1, keepdims=True)\n\ndef estimate_integral(samples, func, true_value):\n    \"\"\"Estimate integral via QMC \/ MC averaging.\"\"\"\n    f_values = func(samples)\n    estimate = f_values.mean(axis=-1).mean()\n    std_error = f_values.std(ddof=1) \/ np.sqrt(len(f_values))\n    return estimate, std_error\n\n# Setup\nd = 5  # dimension\nnp.random.seed(42)\n\n# 1. Monte Carlo\nN_mc = 2**15\nmc_samples = np.random.uniform(0, 1, (N_mc, d))\nmc_est, mc_se = estimate_integral(mc_samples, test_function, None)\n\n# 2. Latin Hypercube (scrambled)\nlhs_engine = qmc.Lhs(d, scramble=True)\nlhs_samples = lhs_engine.random(N_mc)\nlhs_est, lhs_se = estimate_integral(lhs_samples, test_function, None)\n\n# 3. Scrambled Sobol QMC\nsobol_engine = qmc.Sobol(d, scramble=True)\nsobol_samples = sobol_engine.random(N_mc)\nsobol_est, sobol_se = estimate_integral(sobol_samples, test_function, None)\n\n# 4. Halton\nhalton_engine = qmc.Halton(d, scramble=False)\nhalton_samples = halton_engine.random(N_mc)\nhalton_est, halton_se = estimate_integral(halton_samples, test_function, None)\n\nprint(f\"MC:      {mc_est:.6f} \u00b1 {mc_se:.6f}\")\nprint(f\"LHS:     {lhs_est:.6f} \u00b1 {lhs_se:.6f}\")\nprint(f\"Sobol:   {sobol_est:.6f} \u00b1 {sobol_se:.6f}\")\nprint(f\"Halton:  {halton_est:.6f} \u00b1 {halton_se:.6f}\")\n<\/code><\/pre>\n<p>La producci\u00f3n muestra constantemente que los m\u00e9todos QMC (SOBOL y LHS) producen estimaciones con una variaci\u00f3n sustancialmente menor que la de Monte Carlo est\u00e1ndar, incluso con recuentos de muestras moderados.<\/p>\n<h3>Uso de l\u00edmites para par\u00e1metros f\u00edsicos<\/h3>\n<p>En los flujos de trabajo de simulaci\u00f3n reales, sus par\u00e1metros tienen l\u00edmites f\u00edsicos. El m\u00f3dulo <code>qmc<\/code> maneja esto a trav\u00e9s del par\u00e1metro <code>expand<\/code>:<\/p>\n<pre><code class=\"language-python\">from scipy.stats import qmc\nimport numpy as np\n\n# Physical bounds for a 3D problem\nbounds = [\n    (300, 400),   # Temperature in Kelvin\n    (1e-6, 1e-4), # Thermal conductivity, W\/m\u00b7K\n    (0.1, 0.9)    # Porosity, dimensionless\n]\n\nd = len(bounds)\nengine = qmc.Sobol(d, scramble=True)\n\n# Generate samples in [0,1], then expand to bounds\nsamples = engine.random(2**12)\nsamples = qmc.expand(samples, [b for b in bounds])\n\nprint(f\"Sampled bounds check:\")\nfor i, (low, high) in enumerate(bounds):\n    print(f\"  Dim {i}: min={samples[:, i].min():.6f}, max={samples[:, i].max():.6f}\")\n<\/code><\/pre>\n<h2>Trampas comunes y c\u00f3mo evitarlas<\/h2>\n<h3>Escolar 1: Eliminar los primeros puntos Sobol<\/h3>\n<p>Los primeros puntos SOBOL (\u00edndices de 0 a 10) tienen una cobertura deficiente. Si los elimina sin tener en cuenta el cambio de \u00edndice, crea un conjunto de muestras sesgado.<\/p>\n<p><strong>Fix:<\/strong> Siempre comience el muestreo de SOBOL en el \u00edndice 0 y deje que la secuencia completa se llene de forma natural. Si necesita una submuestra, use el medio o el final de la secuencia, no un truncamiento arbitrario.<\/p>\n<h3>Escollo 2: No-Potencias-de-2 Sobol<\/h3>\n<p>Tomar n = 50.000 puntos SOBOL desecha la propiedad de discrepancia \u00f3ptima. La secuencia se dise\u00f1\u00f3 para que n = 2^m proporcione una discrepancia baja exacta.<\/p>\n<p><strong>Fix:<\/strong> use n = 2^m y trunca (aceptable si solo necesita un subconjunto) o cambie a LHS o Halton para recuentos arbitrarios.<\/p>\n<h3>Escolar 3: Sobol sin codificar en producci\u00f3n<\/h3>\n<p>Las secuencias SOBOL sin codificar tienen una estructura peri\u00f3dica. Para las funciones peri\u00f3dicas (muy comunes en la propagaci\u00f3n de la incertidumbre), esto crea un sesgo sistem\u00e1tico que no se promedia con m\u00e1s muestras.<\/p>\n<p><strong>FIX:<\/strong> Utilice siempre <code>scramble=True<\/code>. El algoritmo de codificaci\u00f3n de Owen utilizado en <code>scipy.stats.qmc<\/code> produce estimaciones casi imparciales.<\/p>\n<h3>Escolar 4: Malinterpretando los intervalos de confianza de QMC<\/h3>\n<p>A diferencia de MC, QMC no produce intervalos de confianza estad\u00edsticamente v\u00e1lidos de forma predeterminada. Necesita RQMC (QMC aleatorizado) con m\u00faltiples codificaciones para construir intervalos v\u00e1lidos.<\/p>\n<p><strong>Fix:<\/strong> Ejecute K Scrambles de la misma secuencia QMC y use la varianza de muestra a trav\u00e9s de scrambles para estimar los intervalos de confianza.<\/p>\n<h3>Escolar 5: Aplicar LHS a insumos altamente correlacionados<\/h3>\n<p>LHS asume la independencia de la dimensi\u00f3n. Si sus par\u00e1metros est\u00e1n correlacionados (por ejemplo, las propiedades del material derivadas de una distribuci\u00f3n conjunta), LHS en los marginales ignora la estructura de correlaci\u00f3n.<\/p>\n<p><strong>Fix:<\/strong> Use LHS basado en c\u00f3pula o transforme en coordenadas independientes antes de aplicar LHS.<\/p>\n<h2>Lo que recomendamos<\/h2>\n<p>Seleccionar el m\u00e9todo de muestreo correcto no es un problema de talla \u00fanica. Aqu\u00ed est\u00e1 nuestro marco de decisi\u00f3n pr\u00e1ctica:<\/p>\n<h3>Cu\u00e1ndo utilizar el muestreo de hipercubo latino<\/h3>\n<ul>\n<li><strong>Necesita recuentos de muestras arbitrarios<\/strong> y desea beneficios de estratificaci\u00f3n<\/li>\n<li><strong>Tus dimensiones son \u2264 15<\/strong> y no puedes garantizar los poderes de dos<\/li>\n<li><strong>Necesitas una soluci\u00f3n r\u00e1pida y ligera de implementaci\u00f3n<\/strong> \u2014 LHS es f\u00e1cil de codificar desde cero<\/li>\n<li><strong>Su funci\u00f3n de simulaci\u00f3n es moderadamente suave<\/strong> \u2014 LHS maneja las discontinuidades mejor que el SOBOL sin codificar<\/li>\n<\/ul>\n<h3>Cu\u00e1ndo usar SOBOL QMC revuelto<\/h3>\n<ul>\n<li><strong>Su integrando es suave<\/strong> (diferenciable, no hay discontinuidades fuertes)<\/li>\n<li><strong>Puede usar n = 2^m<\/strong> Recuentos de muestras<\/li>\n<li><strong>Necesitas la mejor tasa de convergencia te\u00f3rica<\/strong> \u2014 O(n\u207b\u00b9) Beats O(n\u207b\u00b9\u141f\u00b2)<\/li>\n<li><strong>Est\u00e1 ejecutando campa\u00f1as de UQ de producci\u00f3n<\/strong> donde el recuento de muestras est\u00e1 delimitado por el presupuesto de c\u00e1lculo<\/li>\n<\/ul>\n<h3>Cu\u00e1ndo usar Halton<\/h3>\n<ul>\n<li><strong>Necesita recuentos de muestras arbitrarios<\/strong> y no puede usar LHS por alguna raz\u00f3n<\/li>\n<li><strong>Sus dimensiones son \u2264 10<\/strong> \u2014 Halton funciona bien en dimensiones bajas<\/li>\n<li><strong>Est\u00e1s prototipando<\/strong> y necesitas una secuencia r\u00e1pida sin tablas<\/li>\n<\/ul>\n<h3>Cu\u00e1ndo usar Monte Carlo est\u00e1ndar<\/h3>\n<ul>\n<li><strong>Tu funci\u00f3n tiene fuertes discontinuidades<\/strong> y no se puede codificar<\/li>\n<li><strong>Sus dimensiones superan los 25<\/strong> \u2014 Todos los m\u00e9todos LDS se degradan y gana la simplicidad de MC<\/li>\n<li><strong>Necesitas intervalos de confianza estad\u00edsticamente v\u00e1lidos<\/strong> sin tener que hacer una sobrecarga<\/li>\n<li><strong>Su funci\u00f3n es extremadamente irregular<\/strong> \u2014 La estructura SOBOL\/LHS puede agregar sesgo<\/li>\n<\/ul>\n<h3>Una regla pr\u00e1ctica pr\u00e1ctica<\/h3>\n<p>Para la mayor\u00eda de los flujos de trabajo de simulaci\u00f3n cient\u00edfica en 3 a 20 dimensiones con modelos avanzados suaves, <strong>Scrambled Sobol QMC con n = 2^12 a 2^15 muestras<\/strong> es el punto \u00f3ptimo. Le brinda una reducci\u00f3n de varianza de 10 a 100 \u00d7 sobre el Monte Carlo est\u00e1ndar en un recuento de muestras que se completa en horas en lugar de d\u00edas en un solo nodo.<\/p>\n<h2>Resumen y pr\u00f3ximos pasos<\/h2>\n<p>Los m\u00e9todos de Monte Carlo para simulaciones cient\u00edficas no se tratan solo de dibujar n\u00fameros aleatorios. La elecci\u00f3n de la estrategia de muestreo (hipercubo latino, secuencias SOBOL o Halton) determina si su campa\u00f1a de UQ es eficiente o derrochadora.<\/p>\n<p>Las ideas clave son:<\/p>\n<ul>\n<li><strong>Asuntos de discrepancia<\/strong>: las secuencias de baja discrepancia cubren el espacio de par\u00e1metros mucho m\u00e1s uniformemente que los puntos aleatorios<\/li>\n<li><strong>La codificaci\u00f3n es esencial<\/strong> para la producci\u00f3n SOBOL para evitar el sesgo sistem\u00e1tico<\/li>\n<li><strong>Los poderes de dos<\/strong> son \u00f3ptimos para SOBOL: dise\u00f1e su presupuesto de muestra en consecuencia<\/li>\n<li><strong>Tasas de convergencia de QMC<\/strong> de O(n\u207b\u00b9) para funciones fluidas, lo convierten en la opci\u00f3n predeterminada para la mayor\u00eda de los flujos de trabajo de simulaci\u00f3n<\/li>\n<\/ul>\n<p>Nuestra <a href=\"https:\/\/matforge.org\/monte-carlo-methods-for-scientific-simulations\/\" target=\"_blank\" rel=\"nofollow noopener\">Monte Carlo Methods for Scientific Simulations<\/a> gu\u00eda proporciona una introducci\u00f3n m\u00e1s amplia a los enfoques de Monte Carlo. Este art\u00edculo se enfoca en los m\u00e9todos de baja discrepancia que le brindan la mayor eficiencia por muestra.<\/p>\n<p>Para una implementaci\u00f3n pr\u00e1ctica, integre los patrones de c\u00f3digo QMC anteriores en los scripts de campa\u00f1a de simulaci\u00f3n. Comience con n = 2^12, eval\u00fae la convergencia monitoreando la varianza del estimador y ampl\u00ede hasta 2^15 si su presupuesto lo permite. Los resultados hablar\u00e1n por s\u00ed mismos.<\/p>\n<h2>Gu\u00edas relacionadas<\/h2>\n<ul>\n<li><a href=\"https:\/\/matforge.org\/uncertainty-quantification-sensitivity-analysis-scientific-simulation\/\" target=\"_blank\" rel=\"nofollow noopener\">Cuantificaci\u00f3n de incertidumbre y an\u00e1lisis de sensibilidad En Simulaci\u00f3n Cient\u00edfica<\/a> \u2014 Contexto UQ m\u00e1s amplio que incluye \u00edndices SOBOL y sensibilidad basada en la varianza<\/li>\n<li><a href=\"https:\/\/matforge.org\/monte-carlo-methods-for-scientific-simulations\/\" target=\"_blank\" rel=\"nofollow noopener\">M\u00e9todos Monte Carlo para simulaciones cient\u00edficas: Gu\u00eda de Python<\/a> \u2014 Cobertura m\u00e1s amplia de Monte Carlo que incluye muestreo de importancia y m\u00e9todos de adaptaci\u00f3n<\/li>\n<li><a href=\"https:\/\/matforge.org\/verification-vs-validation-in-scientific-simulations-a-practical-guide\/\" target=\"_blank\" rel=\"nofollow noopener\">verificaci\u00f3n vs Validaci\u00f3n en simulaciones cient\u00edficas: una gu\u00eda pr\u00e1ctica<\/a> \u2014 C\u00f3mo verificar que los resultados de su UQ sean correctos num\u00e9ricamente<\/li>\n<li><a href=\"https:\/\/matforge.org\/reproducible-parameter-sweeps-designing-simulation-campaigns-for-publication\/\" target=\"_blank\" rel=\"nofollow noopener\">Barridos de par\u00e1metros reproducibles: dise\u00f1o de campa\u00f1as de simulaci\u00f3n para publicaci\u00f3n<\/a> \u2014 Documentaci\u00f3n y mejores pr\u00e1cticas de reproducibilidad para campa\u00f1as de muestreo<\/li>\n<\/ul>\n<h2>referencias<\/h2>\n<ol>\n<li>Kucherenko, M. et al. \u00abUso de las secuencias latinas de hipercubo y sobol para la cuantificaci\u00f3n de la incertidumbre\u00bb. arxiv:1505.02350, 2015. <a href=\"https:\/\/arxiv.org\/abs\/1505.02350\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/arxiv.org\/abs\/1505.02350<\/a><\/li>\n<li>Chrisman, E. \u00abComparaci\u00f3n del D\u00eda de Pi: Muestreo de Monte Carlo vs. Hipercubo Latino vs. Sobol de Muestreo\u00bb. Analytica, 2022. <a href=\"https:\/\/analytica.com\/blog\/pi-day-comparison-monte-carlo-vs-latin-hypercube-vs-sobol-sampling\/\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/analytica.com\/blog\/pi-day-comparison-monte-carlo-vs-latin-hypercube-vs-sobol-sampling\/<\/a><\/li>\n<li>escipia. \u00abReferencia de muestreo cuasi-monte carlo\u00bb. <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/stats.qmc.html\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/docs.scipy.org\/doc\/scipy\/reference\/stats.qmc.html<\/a><\/li>\n<li>escipia. \u00abTutorial cuasi-Monte Carlo\u00bb. <a href=\"https:\/\/scipy.github.io\/devdocs\/tutorial\/stats\/quasi_monte_carlo.html\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/scipy.github.io\/devdocs\/tutorial\/stats\/quasi_monte_carlo.html<\/a><\/li>\n<li>Software QMC. \u00abDocumentaci\u00f3n de QMCSoftware\u00bb. <a href=\"https:\/\/qmcsoftware.github.io\/QMCSoftware\/\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/qmcsoftware.github.io\/qmcsoftware\/<\/a><\/li>\n<li>Diccionario Helmholtz-Uq. \u00abM\u00e9todos cuasi-Monte Carlo\u00bb. <a href=\"https:\/\/dictionary.helmholtz-uq.de\/content\/quasi_montecarlo_methods.html\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/diccionario.helmholtz-uq.de\/content\/quasi_montecarlo_methods.html<\/a><\/li>\n<li>ndcbe. \u00abCuaderno de cursos de cuantificaci\u00f3n de incertidumbre basado en muestreo\u00bb. <a href=\"https:\/\/ndcbe.github.io\/cbe67701-uncertainty-quantification\/07.01-Sampling-Based-Uncertainty-Quantification.html\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/ndcbe.github.io\/cbe67701-uncertainty-quantification\/07.01-sampling-based-uncertainty-quantification.html<\/a><\/li>\n<\/ol>\n","protected":false,"raw":"<p>Cuando la salida de su simulaci\u00f3n est\u00e1 impulsada por entradas inciertas, la forma en que extrae muestras de esas entradas determina si su cuantificaci\u00f3n de incertidumbre es eficiente o derrochadora. El est\u00e1ndar Monte Carlo utiliza I.I.D. Sorteos aleatorios, lo que garantiza la convergencia pero a un ritmo dolorosamente lento. M\u00e9todos de muestreo de baja discrepancia: muestreo de hipercubo latino (LHS), secuencias SOBOL y la familia cuasi-Monte Carlo (QMC) m\u00e1s amplia: reestructurar el proceso de muestreo para que los puntos cubran el espacio de par\u00e1metros de manera m\u00e1s uniforme, reduciendo dr\u00e1sticamente la varianza de estimadores.<\/p>\n<p>En este art\u00edculo vamos m\u00e1s all\u00e1 de la breve menci\u00f3n en nuestra <a href=\"https:\/\/matforge.org\/monte-carlo-methods-for-scientific-simulations\/\" target=\"_blank\" rel=\"nofollow noopener\">Gu\u00eda de Simulaciones de Monte Carlo para Cient\u00edficas<\/a>. Esta es una inmersi\u00f3n profunda dedicada a la teor\u00eda, la implementaci\u00f3n pr\u00e1ctica y los marcos de decisi\u00f3n para LHS, secuencias SOBOL y m\u00e9todos QMC, con c\u00f3digo Python de trabajo y una comparaci\u00f3n de cu\u00e1ndo gana cada enfoque.<\/p>\n<h2>Comida clave<\/h2>\n<ul>\n<li><strong>LHS estratifica cada dimensi\u00f3n de forma independiente<\/strong>, lo que garantiza que cada contenedor de histogramas marginales se llene exactamente una vez. Ofrece una convergencia m\u00e1s r\u00e1pida que el sencillo Monte Carlo a bajo costo.<\/li>\n<li><strong>Las secuencias SOBOL son secuencias de baja discrepancia<\/strong> que logran una cobertura casi uniforme en cualquier dimensi\u00f3n, pero requieren codificaci\u00f3n para un uso pr\u00e1ctico y funcionan mejor con recuentos de muestras de poderes de dos.<\/li>\n<li><strong>La convergencia de QMC puede alcanzar O(N\u207b\u00b9)<\/strong> para integrar suaves, frente a O(N\u207b\u00b9\u141f\u00b2) para Monte Carlo est\u00e1ndar, una ca\u00edda exponencial en el tama\u00f1o de muestra requerido para la misma precisi\u00f3n.<\/li>\n<li><strong>Las secuencias de Halton permiten recuentos de muestras arbitrarios<\/strong> y son f\u00e1ciles de generar, pero exhiben un alias estructurado en dimensiones m\u00e1s altas. SOBOL supera a Halton cuando necesita una invariancia rotacional a trav\u00e9s de la codificaci\u00f3n.<\/li>\n<li><strong>La codificaci\u00f3n no es opcional para la producci\u00f3n SOBOL<\/strong>: las secuencias no codificadas inducen un sesgo sistem\u00e1tico en integrandos peri\u00f3dicos o discontinuos.<\/li>\n<\/ul>\n<h2>El problema de muestreo: por qu\u00e9 el aleatorio no siempre es mejor<\/h2>\n<p>El desaf\u00edo central en la cuantificaci\u00f3n de incertidumbre basada en el muestreo es la <strong>discrepancia<\/strong> del conjunto de muestras. La discrepancia mide c\u00f3mo se distribuyen los puntos uniformemente en el espacio de par\u00e1metros. En el l\u00edmite de muestras infinitas, cualquier discrepancia razonable llega a cero, pero la velocidad a la que hace importa enormemente.<\/p>\n<h3>Monte Carlo cl\u00e1sico<\/h3>\n<p>Standard Monte Carlo extrae muestras independientemente de la distribuci\u00f3n objetivo. Por el teorema del l\u00edmite central, el estimador converge con una varianza proporcional a 1\/N. Eso significa que para reducir a la mitad el error est\u00e1ndar, debe <strong>cuadruple<\/strong> el recuento de muestras. Para una simulaci\u00f3n computacionalmente costosa, un problema t\u00e9rmico 3D, un solucionador de flujo multif\u00e1sico o una ejecuci\u00f3n de din\u00e1mica molecular de ciencia de materiales, cuadruplicar el recuento de muestras puede significar d\u00edas de reloj de pared.<\/p>\n<h3>La perspectiva de discrepancia<\/h3>\n<p>Las secuencias de baja discrepancia (LD) se construyen con precisi\u00f3n para minimizar la discrepancia de estrellas d*_n del conjunto de muestras. La definici\u00f3n es:<\/p>\n<pre><code>D*_N = sup_{A \u2286 [0,1]^s} |(1\/N) \u03a3 1_A(x_i) \u2212 \u03bb(A)|\n<\/code><\/pre>\n<p>donde \u03bb(a) es la medida de Lebesgue (volumen) de A y el supremum se toma sobre todas las subcajas alineadas con eje. En ingl\u00e9s sencillo: las secuencias LDS minimizan la desviaci\u00f3n m\u00e1xima entre la probabilidad emp\u00edrica y la verdadera sobre cualquier regi\u00f3n rectangular.<\/p>\n<p>El <strong>sobelev\u2013dick-tractman desigualdad<\/strong> (el teorema de Koks-Meyers para LDS) establece que para una funci\u00f3n f con derivados parciales mixtos hasta el orden s, el error de integraci\u00f3n de una regla LDS est\u00e1 delimitado por:<\/p>\n<pre><code>|\u222b f \u2212 (1\/N) \u03a3 f(x_i)| \u2264 C_s \u00b7 \u2016f\u2016_S \u00b7 D*_N\n<\/code><\/pre>\n<p>donde c_s es una constante que depende solo de la dimensi\u00f3n y \u2016s\u2016_s es la norma sobolev. Este l\u00edmite explica por qu\u00e9 los m\u00e9todos de QMC brillan para funciones suaves: el error decae mucho m\u00e1s r\u00e1pido que la tasa de Monte Carlo cuando el integrando tiene derivados mixtos.<\/p>\n<h3>La maldici\u00f3n de la dimensionalidad<\/h3>\n<p>Todos estos m\u00e9todos se enfrentan a la maldici\u00f3n de la dimensionalidad. Para LHS, el beneficio de estratificaci\u00f3n se compone multiplicativamente entre dimensiones. Para Sobol y Halton, la estructura que da baja discrepancia en las dimensiones de 1 a 2 comienza a descomponerse a medida que aumentan las dimensiones: las secuencias de Halton en particular desarrollan patrones de alias peri\u00f3dicos que distorsionan la cobertura. Comprender d\u00f3nde se encuentran las fortalezas y debilidades de cada m\u00e9todo es esencial para seleccionar el muestreador adecuado.<\/p>\n<h2>Muestreo de hipercubo latino: teor\u00eda e implementaci\u00f3n<\/h2>\n<p>El muestreo de hipercubo latino fue introducido por McKay et al. (1989) como un compromiso entre la estratificaci\u00f3n pura y la simplicidad del muestreo aleatorio.<\/p>\n<h3>C\u00f3mo funciona LHS<\/h3>\n<p>Para un problema de dimensi\u00f3n D con n muestras:<\/p>\n<ol>\n<li>Divida cada dimensi\u00f3n marginal en n bins de intervalos iguales.<\/li>\n<li>Para cada dimensi\u00f3n k, permute aleatoriamente el vector entero [1, 2, ..., N] para determinar qu\u00e9 contenedor ocupa cada muestra.<\/li>\n<li>Dibuje n muestras uniformes de cada dimensi\u00f3n, estratificadas dentro de sus contenedores asignados.<\/li>\n<li>Permute de forma independiente los \u00edndices de muestra en todas las dimensiones, produciendo una matriz d \u00d7 n.<\/li>\n<\/ol>\n<p>La propiedad crucial es <strong>una muestra por bin<\/strong> a lo largo de cada dimensi\u00f3n. Esto garantiza que el histograma marginal para cada dimensi\u00f3n est\u00e9 perfectamente estratificado.<\/p>\n<h3>Propiedades de convergencia<\/h3>\n<p>LHS tiene un factor de reducci\u00f3n de varianza en comparaci\u00f3n con Monte Carlo simple. En condiciones de regularidad leve:<\/p>\n<pre><code>Var_LHS(\u0233) = Var_MC(\u0233) \/ N + O(N\u207b\u00b2)\n<\/code><\/pre>\n<p>Esto significa que LHS converge aproximadamente a la misma tasa O(n\u207b\u00b9\u141f\u00b2) en el error est\u00e1ndar pero con una constante significativamente m\u00e1s baja, aproximadamente un factor de n en la reducci\u00f3n de varianza.<\/p>\n<h3>Implementaci\u00f3n de Python<\/h3>\n<pre><code class=\"language-python\">import numpy as np\nfrom scipy.stats import qmc\n\ndef lhs_sample(N, d, bounds=None):\n    \"\"\"\n    Latin Hypercube Sampling using scipy.\n    \n    Parameters:\n        N: number of samples\n        d: number of dimensions\n        bounds: list of (low, high) tuples for each dimension\n    \n    Returns:\n        N x d array of LHS samples\n    \"\"\"\n    if bounds is None:\n        bounds = [(0, 1)] * d\n    \n    # Create the LHS engine\n    engine = qmc.Lhs(d, scramble=False)\n    \n    # Generate samples in [0,1]\n    samples = engine.random(N)\n    \n    # Apply bounds\n    if bounds != [(0, 1)] * d:\n        # Transform to specified bounds\n        for i, (low, high) in enumerate(bounds):\n            samples[:, i] = low + (high - low) * samples[:, i]\n    \n    return samples\n\n# Example: 3D LHS with 1000 samples\nnp.random.seed(42)\nd = 3\nN = 1000\nlhs_samples = lhs_sample(N, d)\nprint(f\"LHS shape: {lhs_samples.shape}\")\nprint(f\"Marginal means (should be ~0.5): {lhs_samples.mean(axis=0)[:3]}\")\n<\/code><\/pre>\n<p>La opci\u00f3n <code>scramble=False<\/code> anterior es intencional para la ilustraci\u00f3n: en producci\u00f3n, debe usar <code>scramble=True<\/code> para romper la estructura de correlaci\u00f3n artificial que introduce LHS determinista.<\/p>\n<h2>Cuasi-Monte Carlo: Secuencias Sobol y Scrambling<\/h2>\n<p>Las secuencias SOBOL fueron introducidas por I. M. Sobol en 1967 como la primera secuencia pr\u00e1ctica de baja discrepancia. Usan un gr\u00e1fico dirigido para generar d\u00edgitos en la base 2, produciendo una secuencia con discrepancia estelar provenientemente baja.<\/p>\n<h3>Por qu\u00e9 la codificaci\u00f3n es esencial<\/h3>\n<p>Una secuencia SOBOL sin codificar tiene una estructura que repite cada 2^m muestras. Para integrandos peri\u00f3dicos o discontinuos, muy comunes en los flujos de trabajo de simulaci\u00f3n, esto crea <strong>sesgo sistem\u00e1tico<\/strong>. La secuencia se alinea con las discontinuidades, lo que hace que el integrador se pierda caracter\u00edsticas importantes.<\/p>\n<p>La codificaci\u00f3n aplica una permutaci\u00f3n aleatoria a las representaciones binarias de los \u00edndices de secuencia, rompiendo esta periodicidad conservando la propiedad de baja discrepancia. El marco <strong> cuasi-monte carlo aleatorizado (RQMC)<\/strong> demuestra que las secuencias SOBOL codificadas, cuando se promedian sobre la codificaci\u00f3n, producen estimadores imparciales con intervalos de confianza convergentes.<\/p>\n<h3>Recuento de muestras: potencias de dos<\/h3>\n<p>Las secuencias de Sobol se dise\u00f1aron para que <strong>exactamente 2^m puntos proporcionen una discrepancia \u00f3ptima<\/strong>. Tomar n = 2^15 = 32.768 puntos produce una cobertura mucho mejor que tomar n = 30.000. Si necesita exactamente 30.000 muestras, usted:<\/p>\n<ol>\n<li>Genera 32.768 puntos SOBOL y usa los primeros 30.000 (pierdes la optimizaci\u00f3n)<\/li>\n<li>Use un sampler diferente para ese conteo espec\u00edfico<\/li>\n<li>Utilice secuencias de Halton, que soportan n arbitrariamente<\/li>\n<\/ol>\n<h3>Scrambled Sobol en la pr\u00e1ctica<\/h3>\n<pre><code class=\"language-python\">import numpy as np\nfrom scipy.stats import qmc\n\ndef scrambled_sobol(N, d, seed=None):\n    \"\"\"\n    Generate scrambled Sobol QMC samples.\n    \n    Parameters:\n        N: number of samples (ideally a power of 2)\n        d: number of dimensions\n        seed: random seed for scrambling\n    \n    Returns:\n        N x d array of QMC samples\n    \"\"\"\n    engine = qmc.QualifiedSobol(d, scramble=True, seed=seed)\n    return engine.random(N)\n\n# Example: 2^15 Sobol samples in 10 dimensions\nnp.random.seed(42)\nd = 10\nN = 2**15  # 32,768 - optimal for Sobol\nsobol_samples = scrambled_sobol(N, d, seed=12345)\nprint(f\"Scrambled Sobol shape: {sobol_samples.shape}\")\n<\/code><\/pre>\n<h2>Halton vs Sobol: Trade-offs pr\u00e1cticos<\/h2>\n<p>Las dos familias SUD m\u00e1s comunes son Halton y Sobol. Ambos son deterministas, ambos tienen baja discrepancia, pero se comportan de manera diferente en la pr\u00e1ctica.<\/p>\n<h3>Secuencias de Halton<\/h3>\n<p>Las secuencias de Halton utilizan primos consecutivos como bases: 2, 3, 5, 7, 11, ... esto asegura la independencia matem\u00e1tica entre las dimensiones. Las ventajas son:<\/p>\n<ul>\n<li><strong>Recuentos de muestras arbitrarios<\/strong> \u2014 No hay necesidad de poderes de dos<\/li>\n<li><strong>F\u00e1cil de generar<\/strong> \u2014 No se necesitan tablas polin\u00f3micas primitivas<\/li>\n<li><strong>R\u00e1pido de calcular<\/strong> \u2014 Extracci\u00f3n de d\u00edgitos simple<\/li>\n<\/ul>\n<p>Las desventajas est\u00e1n bien documentadas:<\/p>\n<ul>\n<li><strong>Aliasing estructurado<\/strong> \u2014 Las proyecciones de mayor dimensi\u00f3n exhiben patrones peri\u00f3dicos<\/li>\n<li><strong>L\u00edmites te\u00f3ricos m\u00e1s pobres<\/strong> \u2014 La discrepancia crece m\u00e1s r\u00e1pido que Sobol<\/li>\n<li><strong>No hay teor\u00edas de codificaci\u00f3n<\/strong> \u2014 La codificaci\u00f3n es m\u00e1s dif\u00edcil de definir para bases arbitrarias<\/li>\n<\/ul>\n<h3>Secuencias Sobol<\/h3>\n<p>Las secuencias sobol usan un polinomio primitivo fijo sobre GF(2), dando:<\/p>\n<ul>\n<li><strong>Mejores l\u00edmites te\u00f3ricos<\/strong>: discrepancia m\u00e1s baja para la base-2<\/li>\n<li><strong>Teor\u00eda enriquecida en la lucha<\/strong> \u2014 Owen Scrambling est\u00e1 bien definido y efectivo<\/li>\n<li><strong>Optim en potencias de dos<\/strong> \u2014 garant\u00edas de optimizaci\u00f3n exactas<\/li>\n<\/ul>\n<p>Las desventajas:<\/p>\n<ul>\n<li><strong>Requiere tablas polin\u00f3micas primitivas<\/strong> \u2014 Debe calcularse previamente o almacenarse<\/li>\n<li><strong>No flexible en el n\u00famero de muestras<\/strong> \u2014 dise\u00f1ado para n = 2 ^m<\/li>\n<li><strong>Computacionalmente m\u00e1s pesado<\/strong> \u2014 Requiere b\u00fasquedas en tabla<\/li>\n<\/ul>\n<h3>el veredicto<\/h3>\n<p>Para la mayor\u00eda de las aplicaciones de simulaci\u00f3n con dimensiones de 5 a 20, <strong>SOBOL con codificaci\u00f3n supera a Halton<\/strong>. La raz\u00f3n es que la codificaci\u00f3n rompe los patrones de alias que Halton desarrolla en dimensiones m\u00e1s altas. Cuando necesite recuentos de muestras arbitrarios y no pueda usar la codificaci\u00f3n, Halton puede ser la mejor opci\u00f3n pr\u00e1ctica.<\/p>\n<h2>Gu\u00eda de comparaci\u00f3n: MC vs LHS vs Sobol vs Halton<\/h2>\n<table>\n<thead>\n<tr>\n<th>Propiedad<\/th>\n<th>Monte Carlo<\/th>\n<th>Hipercubo latino<\/th>\n<th>Sobol (Scrambled)<\/th>\n<th>halton<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>tasa de convergencia<\/td>\n<td>O(n\u207b\u00b9\u141f\u00b2) Error est\u00e1ndar<\/td>\n<td>O(n\u207b\u00b9\u141f\u00b2) con varianza reducida<\/td>\n<td>O(n\u207b\u00b9) para funciones suaves<\/td>\n<td>O(n\u207b\u00b9) para funciones suaves<\/td>\n<\/tr>\n<tr>\n<td>Reducci\u00f3n de varianza<\/td>\n<td>Ninguno<\/td>\n<td>Factor ~ N comparado con MC<\/td>\n<td>10\u2013100\u00d7 Reducci\u00f3n vs MC<\/td>\n<td>10\u201350\u00d7 Reducci\u00f3n vs MC<\/td>\n<\/tr>\n<tr>\n<td>Muestra Flexibilidad<\/td>\n<td>cualquier n<\/td>\n<td>cualquier n<\/td>\n<td>\u00d3ptimo en n = 2^m<\/td>\n<td>cualquier n<\/td>\n<\/tr>\n<tr>\n<td>Escalado de dimensionalidad<\/td>\n<td>degrada linealmente<\/td>\n<td>degrada multiplicativamente<\/td>\n<td>se degrada como O(s)<\/td>\n<td>Se degrada como O(s) con alias<\/td>\n<\/tr>\n<tr>\n<td>Se requiere luchar<\/td>\n<td>No<\/td>\n<td>A veces (LHS revuelto)<\/td>\n<td>S\u00ed (para producci\u00f3n)<\/td>\n<td>Opcional<\/td>\n<\/tr>\n<tr>\n<td>complejidad de la implementaci\u00f3n<\/td>\n<td>Trivial<\/td>\n<td>Bajo<\/td>\n<td>Medio (mesas + codificaci\u00f3n)<\/td>\n<td>Bajo<\/td>\n<\/tr>\n<tr>\n<td>Integrandos peri\u00f3dicos<\/td>\n<td>Sesgado (estructural)<\/td>\n<td>Sesgado (estructural)<\/td>\n<td>imparcial (si se revuelva)<\/td>\n<td>potencialmente sesgado<\/td>\n<\/tr>\n<tr>\n<td>Recomendado para<\/td>\n<td>L\u00ednea de base, muy irregular<\/td>\n<td>Dimensiones moderadas (\u2264 15)<\/td>\n<td>Integrandos suaves, producci\u00f3n<\/td>\n<td>n arbitrario, prototipos r\u00e1pidos<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Gu\u00eda de implementaci\u00f3n de Python<\/h2>\n<p>Aqu\u00ed hay un ejemplo de trabajo completo que compara los cuatro muestreadores en una funci\u00f3n de prueba simple.<\/p>\n<pre><code class=\"language-python\">import numpy as np\nfrom scipy.stats import qmc\n\ndef test_function(x):\n    \"\"\"\n    Test integrand: sum of cosines along with a linear drift.\n    True integral on [0,1]^d = sum of (sin(1)\/1) for cos + 0.5*d for linear.\n    \"\"\"\n    d = x.shape[-1]\n    true_integral = d * np.sin(1) + 0.5 * d\n    return np.cos(x) + x.mean(axis=-1, keepdims=True)\n\ndef estimate_integral(samples, func, true_value):\n    \"\"\"Estimate integral via QMC \/ MC averaging.\"\"\"\n    f_values = func(samples)\n    estimate = f_values.mean(axis=-1).mean()\n    std_error = f_values.std(ddof=1) \/ np.sqrt(len(f_values))\n    return estimate, std_error\n\n# Setup\nd = 5  # dimension\nnp.random.seed(42)\n\n# 1. Monte Carlo\nN_mc = 2**15\nmc_samples = np.random.uniform(0, 1, (N_mc, d))\nmc_est, mc_se = estimate_integral(mc_samples, test_function, None)\n\n# 2. Latin Hypercube (scrambled)\nlhs_engine = qmc.Lhs(d, scramble=True)\nlhs_samples = lhs_engine.random(N_mc)\nlhs_est, lhs_se = estimate_integral(lhs_samples, test_function, None)\n\n# 3. Scrambled Sobol QMC\nsobol_engine = qmc.Sobol(d, scramble=True)\nsobol_samples = sobol_engine.random(N_mc)\nsobol_est, sobol_se = estimate_integral(sobol_samples, test_function, None)\n\n# 4. Halton\nhalton_engine = qmc.Halton(d, scramble=False)\nhalton_samples = halton_engine.random(N_mc)\nhalton_est, halton_se = estimate_integral(halton_samples, test_function, None)\n\nprint(f\"MC:      {mc_est:.6f} \u00b1 {mc_se:.6f}\")\nprint(f\"LHS:     {lhs_est:.6f} \u00b1 {lhs_se:.6f}\")\nprint(f\"Sobol:   {sobol_est:.6f} \u00b1 {sobol_se:.6f}\")\nprint(f\"Halton:  {halton_est:.6f} \u00b1 {halton_se:.6f}\")\n<\/code><\/pre>\n<p>La producci\u00f3n muestra constantemente que los m\u00e9todos QMC (SOBOL y LHS) producen estimaciones con una variaci\u00f3n sustancialmente menor que la de Monte Carlo est\u00e1ndar, incluso con recuentos de muestras moderados.<\/p>\n<h3>Uso de l\u00edmites para par\u00e1metros f\u00edsicos<\/h3>\n<p>En los flujos de trabajo de simulaci\u00f3n reales, sus par\u00e1metros tienen l\u00edmites f\u00edsicos. El m\u00f3dulo <code>qmc<\/code> maneja esto a trav\u00e9s del par\u00e1metro <code>expand<\/code>:<\/p>\n<pre><code class=\"language-python\">from scipy.stats import qmc\nimport numpy as np\n\n# Physical bounds for a 3D problem\nbounds = [\n    (300, 400),   # Temperature in Kelvin\n    (1e-6, 1e-4), # Thermal conductivity, W\/m\u00b7K\n    (0.1, 0.9)    # Porosity, dimensionless\n]\n\nd = len(bounds)\nengine = qmc.Sobol(d, scramble=True)\n\n# Generate samples in [0,1], then expand to bounds\nsamples = engine.random(2**12)\nsamples = qmc.expand(samples, [b for b in bounds])\n\nprint(f\"Sampled bounds check:\")\nfor i, (low, high) in enumerate(bounds):\n    print(f\"  Dim {i}: min={samples[:, i].min():.6f}, max={samples[:, i].max():.6f}\")\n<\/code><\/pre>\n<h2>Trampas comunes y c\u00f3mo evitarlas<\/h2>\n<h3>Escolar 1: Eliminar los primeros puntos Sobol<\/h3>\n<p>Los primeros puntos SOBOL (\u00edndices de 0 a 10) tienen una cobertura deficiente. Si los elimina sin tener en cuenta el cambio de \u00edndice, crea un conjunto de muestras sesgado.<\/p>\n<p><strong>Fix:<\/strong> Siempre comience el muestreo de SOBOL en el \u00edndice 0 y deje que la secuencia completa se llene de forma natural. Si necesita una submuestra, use el medio o el final de la secuencia, no un truncamiento arbitrario.<\/p>\n<h3>Escollo 2: No-Potencias-de-2 Sobol<\/h3>\n<p>Tomar n = 50.000 puntos SOBOL desecha la propiedad de discrepancia \u00f3ptima. La secuencia se dise\u00f1\u00f3 para que n = 2^m proporcione una discrepancia baja exacta.<\/p>\n<p><strong>Fix:<\/strong> use n = 2^m y trunca (aceptable si solo necesita un subconjunto) o cambie a LHS o Halton para recuentos arbitrarios.<\/p>\n<h3>Escolar 3: Sobol sin codificar en producci\u00f3n<\/h3>\n<p>Las secuencias SOBOL sin codificar tienen una estructura peri\u00f3dica. Para las funciones peri\u00f3dicas (muy comunes en la propagaci\u00f3n de la incertidumbre), esto crea un sesgo sistem\u00e1tico que no se promedia con m\u00e1s muestras.<\/p>\n<p><strong>FIX:<\/strong> Utilice siempre <code>scramble=True<\/code>. El algoritmo de codificaci\u00f3n de Owen utilizado en <code>scipy.stats.qmc<\/code> produce estimaciones casi imparciales.<\/p>\n<h3>Escolar 4: Malinterpretando los intervalos de confianza de QMC<\/h3>\n<p>A diferencia de MC, QMC no produce intervalos de confianza estad\u00edsticamente v\u00e1lidos de forma predeterminada. Necesita RQMC (QMC aleatorizado) con m\u00faltiples codificaciones para construir intervalos v\u00e1lidos.<\/p>\n<p><strong>Fix:<\/strong> Ejecute K Scrambles de la misma secuencia QMC y use la varianza de muestra a trav\u00e9s de scrambles para estimar los intervalos de confianza.<\/p>\n<h3>Escolar 5: Aplicar LHS a insumos altamente correlacionados<\/h3>\n<p>LHS asume la independencia de la dimensi\u00f3n. Si sus par\u00e1metros est\u00e1n correlacionados (por ejemplo, las propiedades del material derivadas de una distribuci\u00f3n conjunta), LHS en los marginales ignora la estructura de correlaci\u00f3n.<\/p>\n<p><strong>Fix:<\/strong> Use LHS basado en c\u00f3pula o transforme en coordenadas independientes antes de aplicar LHS.<\/p>\n<h2>Lo que recomendamos<\/h2>\n<p>Seleccionar el m\u00e9todo de muestreo correcto no es un problema de talla \u00fanica. Aqu\u00ed est\u00e1 nuestro marco de decisi\u00f3n pr\u00e1ctica:<\/p>\n<h3>Cu\u00e1ndo utilizar el muestreo de hipercubo latino<\/h3>\n<ul>\n<li><strong>Necesita recuentos de muestras arbitrarios<\/strong> y desea beneficios de estratificaci\u00f3n<\/li>\n<li><strong>Tus dimensiones son \u2264 15<\/strong> y no puedes garantizar los poderes de dos<\/li>\n<li><strong>Necesitas una soluci\u00f3n r\u00e1pida y ligera de implementaci\u00f3n<\/strong> \u2014 LHS es f\u00e1cil de codificar desde cero<\/li>\n<li><strong>Su funci\u00f3n de simulaci\u00f3n es moderadamente suave<\/strong> \u2014 LHS maneja las discontinuidades mejor que el SOBOL sin codificar<\/li>\n<\/ul>\n<h3>Cu\u00e1ndo usar SOBOL QMC revuelto<\/h3>\n<ul>\n<li><strong>Su integrando es suave<\/strong> (diferenciable, no hay discontinuidades fuertes)<\/li>\n<li><strong>Puede usar n = 2^m<\/strong> Recuentos de muestras<\/li>\n<li><strong>Necesitas la mejor tasa de convergencia te\u00f3rica<\/strong> \u2014 O(n\u207b\u00b9) Beats O(n\u207b\u00b9\u141f\u00b2)<\/li>\n<li><strong>Est\u00e1 ejecutando campa\u00f1as de UQ de producci\u00f3n<\/strong> donde el recuento de muestras est\u00e1 delimitado por el presupuesto de c\u00e1lculo<\/li>\n<\/ul>\n<h3>Cu\u00e1ndo usar Halton<\/h3>\n<ul>\n<li><strong>Necesita recuentos de muestras arbitrarios<\/strong> y no puede usar LHS por alguna raz\u00f3n<\/li>\n<li><strong>Sus dimensiones son \u2264 10<\/strong> \u2014 Halton funciona bien en dimensiones bajas<\/li>\n<li><strong>Est\u00e1s prototipando<\/strong> y necesitas una secuencia r\u00e1pida sin tablas<\/li>\n<\/ul>\n<h3>Cu\u00e1ndo usar Monte Carlo est\u00e1ndar<\/h3>\n<ul>\n<li><strong>Tu funci\u00f3n tiene fuertes discontinuidades<\/strong> y no se puede codificar<\/li>\n<li><strong>Sus dimensiones superan los 25<\/strong> \u2014 Todos los m\u00e9todos LDS se degradan y gana la simplicidad de MC<\/li>\n<li><strong>Necesitas intervalos de confianza estad\u00edsticamente v\u00e1lidos<\/strong> sin tener que hacer una sobrecarga<\/li>\n<li><strong>Su funci\u00f3n es extremadamente irregular<\/strong> \u2014 La estructura SOBOL\/LHS puede agregar sesgo<\/li>\n<\/ul>\n<h3>Una regla pr\u00e1ctica pr\u00e1ctica<\/h3>\n<p>Para la mayor\u00eda de los flujos de trabajo de simulaci\u00f3n cient\u00edfica en 3 a 20 dimensiones con modelos avanzados suaves, <strong>Scrambled Sobol QMC con n = 2^12 a 2^15 muestras<\/strong> es el punto \u00f3ptimo. Le brinda una reducci\u00f3n de varianza de 10 a 100 \u00d7 sobre el Monte Carlo est\u00e1ndar en un recuento de muestras que se completa en horas en lugar de d\u00edas en un solo nodo.<\/p>\n<h2>Resumen y pr\u00f3ximos pasos<\/h2>\n<p>Los m\u00e9todos de Monte Carlo para simulaciones cient\u00edficas no se tratan solo de dibujar n\u00fameros aleatorios. La elecci\u00f3n de la estrategia de muestreo (hipercubo latino, secuencias SOBOL o Halton) determina si su campa\u00f1a de UQ es eficiente o derrochadora.<\/p>\n<p>Las ideas clave son:<\/p>\n<ul>\n<li><strong>Asuntos de discrepancia<\/strong>: las secuencias de baja discrepancia cubren el espacio de par\u00e1metros mucho m\u00e1s uniformemente que los puntos aleatorios<\/li>\n<li><strong>La codificaci\u00f3n es esencial<\/strong> para la producci\u00f3n SOBOL para evitar el sesgo sistem\u00e1tico<\/li>\n<li><strong>Los poderes de dos<\/strong> son \u00f3ptimos para SOBOL: dise\u00f1e su presupuesto de muestra en consecuencia<\/li>\n<li><strong>Tasas de convergencia de QMC<\/strong> de O(n\u207b\u00b9) para funciones fluidas, lo convierten en la opci\u00f3n predeterminada para la mayor\u00eda de los flujos de trabajo de simulaci\u00f3n<\/li>\n<\/ul>\n<p>Nuestra <a href=\"https:\/\/matforge.org\/monte-carlo-methods-for-scientific-simulations\/\" target=\"_blank\" rel=\"nofollow noopener\">Monte Carlo Methods for Scientific Simulations<\/a> gu\u00eda proporciona una introducci\u00f3n m\u00e1s amplia a los enfoques de Monte Carlo. Este art\u00edculo se enfoca en los m\u00e9todos de baja discrepancia que le brindan la mayor eficiencia por muestra.<\/p>\n<p>Para una implementaci\u00f3n pr\u00e1ctica, integre los patrones de c\u00f3digo QMC anteriores en los scripts de campa\u00f1a de simulaci\u00f3n. Comience con n = 2^12, eval\u00fae la convergencia monitoreando la varianza del estimador y ampl\u00ede hasta 2^15 si su presupuesto lo permite. Los resultados hablar\u00e1n por s\u00ed mismos.<\/p>\n<h2>Gu\u00edas relacionadas<\/h2>\n<ul>\n<li><a href=\"https:\/\/matforge.org\/uncertainty-quantification-sensitivity-analysis-scientific-simulation\/\" target=\"_blank\" rel=\"nofollow noopener\">Cuantificaci\u00f3n de incertidumbre y an\u00e1lisis de sensibilidad En Simulaci\u00f3n Cient\u00edfica<\/a> \u2014 Contexto UQ m\u00e1s amplio que incluye \u00edndices SOBOL y sensibilidad basada en la varianza<\/li>\n<li><a href=\"https:\/\/matforge.org\/monte-carlo-methods-for-scientific-simulations\/\" target=\"_blank\" rel=\"nofollow noopener\">M\u00e9todos Monte Carlo para simulaciones cient\u00edficas: Gu\u00eda de Python<\/a> \u2014 Cobertura m\u00e1s amplia de Monte Carlo que incluye muestreo de importancia y m\u00e9todos de adaptaci\u00f3n<\/li>\n<li><a href=\"https:\/\/matforge.org\/verification-vs-validation-in-scientific-simulations-a-practical-guide\/\" target=\"_blank\" rel=\"nofollow noopener\">verificaci\u00f3n vs Validaci\u00f3n en simulaciones cient\u00edficas: una gu\u00eda pr\u00e1ctica<\/a> \u2014 C\u00f3mo verificar que los resultados de su UQ sean correctos num\u00e9ricamente<\/li>\n<li><a href=\"https:\/\/matforge.org\/reproducible-parameter-sweeps-designing-simulation-campaigns-for-publication\/\" target=\"_blank\" rel=\"nofollow noopener\">Barridos de par\u00e1metros reproducibles: dise\u00f1o de campa\u00f1as de simulaci\u00f3n para publicaci\u00f3n<\/a> \u2014 Documentaci\u00f3n y mejores pr\u00e1cticas de reproducibilidad para campa\u00f1as de muestreo<\/li>\n<\/ul>\n<h2>referencias<\/h2>\n<ol>\n<li>Kucherenko, M. et al. \"Uso de las secuencias latinas de hipercubo y sobol para la cuantificaci\u00f3n de la incertidumbre\". arxiv:1505.02350, 2015. <a href=\"https:\/\/arxiv.org\/abs\/1505.02350\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/arxiv.org\/abs\/1505.02350<\/a><\/li>\n<li>Chrisman, E. \"Comparaci\u00f3n del D\u00eda de Pi: Muestreo de Monte Carlo vs. Hipercubo Latino vs. Sobol de Muestreo\". Analytica, 2022. <a href=\"https:\/\/analytica.com\/blog\/pi-day-comparison-monte-carlo-vs-latin-hypercube-vs-sobol-sampling\/\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/analytica.com\/blog\/pi-day-comparison-monte-carlo-vs-latin-hypercube-vs-sobol-sampling\/<\/a><\/li>\n<li>escipia. \"Referencia de muestreo cuasi-monte carlo\". <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/stats.qmc.html\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/docs.scipy.org\/doc\/scipy\/reference\/stats.qmc.html<\/a><\/li>\n<li>escipia. \"Tutorial cuasi-Monte Carlo\". <a href=\"https:\/\/scipy.github.io\/devdocs\/tutorial\/stats\/quasi_monte_carlo.html\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/scipy.github.io\/devdocs\/tutorial\/stats\/quasi_monte_carlo.html<\/a><\/li>\n<li>Software QMC. \"Documentaci\u00f3n de QMCSoftware\". <a href=\"https:\/\/qmcsoftware.github.io\/QMCSoftware\/\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/qmcsoftware.github.io\/qmcsoftware\/<\/a><\/li>\n<li>Diccionario Helmholtz-Uq. \"M\u00e9todos cuasi-Monte Carlo\". <a href=\"https:\/\/dictionary.helmholtz-uq.de\/content\/quasi_montecarlo_methods.html\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/diccionario.helmholtz-uq.de\/content\/quasi_montecarlo_methods.html<\/a><\/li>\n<li>ndcbe. \"Cuaderno de cursos de cuantificaci\u00f3n de incertidumbre basado en muestreo\". <a href=\"https:\/\/ndcbe.github.io\/cbe67701-uncertainty-quantification\/07.01-Sampling-Based-Uncertainty-Quantification.html\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/ndcbe.github.io\/cbe67701-uncertainty-quantification\/07.01-sampling-based-uncertainty-quantification.html<\/a><\/li>\n<\/ol>\n"},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 11<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>Profundizaci\u00f3n en muestreo de hipercubo latino, secuencias SOBOL y m\u00e9todos cuasi-Monte Carlo para simulaciones cient\u00edficas. Aprenda la teor\u00eda, la implementaci\u00f3n de Python y cu\u00e1ndo usar cada uno.<\/p>\n","protected":false,"raw":"Profundizaci\u00f3n en muestreo de hipercubo latino, secuencias SOBOL y m\u00e9todos cuasi-Monte Carlo para simulaciones cient\u00edficas. Aprenda la teor\u00eda, la implementaci\u00f3n de Python y cu\u00e1ndo usar cada uno."},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"es_ES","_original_post":"https:\/\/matforge.org\/?p=537","iawp_total_views":4,"footnotes":""},"categories":[2],"tags":[5,6,4],"class_list":["post-776","post","type-post","status-publish","format-standard","hentry","category-fipy-documentation-examples-development","tag-fipy","tag-lithium-ion","tag-simulation","es-ES"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>M\u00e9todos Monte Carlo UQ: Hipercubo latino, Sobol y quasi-Monte Carlo - matforge.org<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/matforge.org\/es\/monte-carlo-uhq-methods-lhs-sobol-quasi\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"M\u00e9todos Monte Carlo UQ: Hipercubo latino, Sobol y quasi-Monte Carlo - matforge.org\" \/>\n<meta property=\"og:description\" content=\"Reading Time:  11 minutesProfundizaci\u00f3n en muestreo de hipercubo latino, secuencias SOBOL y m\u00e9todos cuasi-Monte Carlo para simulaciones cient\u00edficas. Aprenda la teor\u00eda, la implementaci\u00f3n de Python y cu\u00e1ndo usar cada uno.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/matforge.org\/es\/monte-carlo-uhq-methods-lhs-sobol-quasi\/\" \/>\n<meta property=\"og:site_name\" content=\"matforge.org\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-30T12:21:43+00:00\" \/>\n<meta name=\"author\" content=\"steven\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"steven\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/\"},\"author\":{\"name\":\"steven\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\"},\"headline\":\"M\u00e9todos Monte Carlo UQ: Hipercubo latino, Sobol y quasi-Monte Carlo\",\"datePublished\":\"2026-07-30T12:21:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/\"},\"wordCount\":2895,\"commentCount\":0,\"keywords\":[\"cojo\",\"lithium-ion\",\"simulation\"],\"articleSection\":[\"Fipy: Documentaci\u00f3n, ejemplos &amp; Desarrollo\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/matforge.org\\\/es\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/\",\"url\":\"https:\\\/\\\/matforge.org\\\/es\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/\",\"name\":\"M\u00e9todos Monte Carlo UQ: Hipercubo latino, Sobol y quasi-Monte Carlo - matforge.org\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\"},\"datePublished\":\"2026-07-30T12:21:43+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/matforge.org\\\/es\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/matforge.org\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"M\u00e9todos Monte Carlo UQ: Hipercubo latino, Sobol y quasi-Monte Carlo\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\",\"url\":\"https:\\\/\\\/matforge.org\\\/\",\"name\":\"matforge.org\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/matforge.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\",\"name\":\"steven\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"caption\":\"steven\"},\"url\":\"https:\\\/\\\/matforge.org\\\/author\\\/steven\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"M\u00e9todos Monte Carlo UQ: Hipercubo latino, Sobol y quasi-Monte Carlo - matforge.org","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/matforge.org\/es\/monte-carlo-uhq-methods-lhs-sobol-quasi\/","og_locale":"es_ES","og_type":"article","og_title":"M\u00e9todos Monte Carlo UQ: Hipercubo latino, Sobol y quasi-Monte Carlo - matforge.org","og_description":"Reading Time:  11 minutesProfundizaci\u00f3n en muestreo de hipercubo latino, secuencias SOBOL y m\u00e9todos cuasi-Monte Carlo para simulaciones cient\u00edficas. Aprenda la teor\u00eda, la implementaci\u00f3n de Python y cu\u00e1ndo usar cada uno.","og_url":"https:\/\/matforge.org\/es\/monte-carlo-uhq-methods-lhs-sobol-quasi\/","og_site_name":"matforge.org","article_published_time":"2026-07-30T12:21:43+00:00","author":"steven","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"steven","Tiempo de lectura":"17 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/matforge.org\/es\/monte-carlo-uhq-methods-lhs-sobol-quasi\/#article","isPartOf":{"@id":"https:\/\/matforge.org\/es\/monte-carlo-uhq-methods-lhs-sobol-quasi\/"},"author":{"name":"steven","@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03"},"headline":"M\u00e9todos Monte Carlo UQ: Hipercubo latino, Sobol y quasi-Monte Carlo","datePublished":"2026-07-30T12:21:43+00:00","mainEntityOfPage":{"@id":"https:\/\/matforge.org\/es\/monte-carlo-uhq-methods-lhs-sobol-quasi\/"},"wordCount":2895,"commentCount":0,"keywords":["cojo","lithium-ion","simulation"],"articleSection":["Fipy: Documentaci\u00f3n, ejemplos &amp; Desarrollo"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/matforge.org\/es\/monte-carlo-uhq-methods-lhs-sobol-quasi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/matforge.org\/es\/monte-carlo-uhq-methods-lhs-sobol-quasi\/","url":"https:\/\/matforge.org\/es\/monte-carlo-uhq-methods-lhs-sobol-quasi\/","name":"M\u00e9todos Monte Carlo UQ: Hipercubo latino, Sobol y quasi-Monte Carlo - matforge.org","isPartOf":{"@id":"https:\/\/matforge.org\/#website"},"datePublished":"2026-07-30T12:21:43+00:00","author":{"@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03"},"breadcrumb":{"@id":"https:\/\/matforge.org\/es\/monte-carlo-uhq-methods-lhs-sobol-quasi\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/matforge.org\/es\/monte-carlo-uhq-methods-lhs-sobol-quasi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/matforge.org\/es\/monte-carlo-uhq-methods-lhs-sobol-quasi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/matforge.org\/es\/"},{"@type":"ListItem","position":2,"name":"M\u00e9todos Monte Carlo UQ: Hipercubo latino, Sobol y quasi-Monte Carlo"}]},{"@type":"WebSite","@id":"https:\/\/matforge.org\/#website","url":"https:\/\/matforge.org\/","name":"matforge.org","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/matforge.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03","name":"steven","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","caption":"steven"},"url":"https:\/\/matforge.org\/author\/steven\/"}]}},"_links":{"self":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/776","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/comments?post=776"}],"version-history":[{"count":1,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/776\/revisions"}],"predecessor-version":[{"id":948,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/776\/revisions\/948"}],"wp:attachment":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/media?parent=776"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/categories?post=776"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/tags?post=776"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}