Wenn die Ausgabe Ihrer Simulation von unsicheren Eingaben gesteuert wird, bestimmt die Art und Weise, wie Sie Samples aus diesen Eingaben ziehen, ob Ihre Unsicherheitsquantifizierung effizient oder verschwenderisch ist. Standard Monte Carlo verwendet I.I.D. Zufällige Ziehungen, die die Konvergenz garantieren, aber schmerzlich langsam. Stichprobenmethoden mit geringer Diskrepanz — Latin Hypercube Stichproben (LHS), SOBOL-Sequenzen und die breitere Familie der Quasi-Monte-Carlo (QMC) – Restrukturieren Sie den Probenahmeprozess so, dass Punkte den Parameterraum gleichmäßiger abdecken, wodurch die Varianz der Schätzer.
In diesem Artikel gehen wir über die kurze Erwähnung in unserem Monte Carlo for Scientific Simulations Guide hinaus. Dies ist ein spezieller Tiefpunkt in der Theorie, der praktischen Implementierung und den Entscheidungsrahmen für LHS, SOBOL-Sequenzen und QMC-Methoden mit funktionierendem Python-Code und einem Vergleich, wann jeder Ansatz gewinnt.
Schlüssel zum Mitnehmen
- LHS schichtet jede Dimension unabhängig voneinander und garantiert, dass jeder marginale Histogrammbehälter genau einmal gefüllt wird. Es liefert schnellere Konvergenz als Plain Monte Carlo zu niedrigen Kosten.
- SOBOL-Sequenzen sind Sequenzen mit geringer Diskrepanz , die eine nahezu einheitliche Abdeckung in jeder Dimension erreichen, aber für den praktischen Gebrauch verschlüsselt werden müssen und am besten mit zwei Probenpotenzen arbeiten.
- QMC-Konvergenz kann O(n⁻¹) für glatte Integranden erreichen, gegenüber O(n⁻¹ᐟ²) für Standard Monte Carlo – ein exponentieller Abfall der erforderlichen Probengröße für die gleiche Präzision.
- Halton-Sequenzen erlauben beliebige Probenzählungen und sind leicht zu generieren, aber sie weisen strukturiertes Aliasing in höheren Dimensionen auf. SoBol übertrifft Halton, wenn Sie durch Scrambling Rotationsinvarianz benötigen.
- Scrambling ist für die Produktion SOBOL nicht optional. – Unverschlüsselte Sequenzen induzieren systematische Verzerrungen bei periodischen oder diskontinuierlichen Integranden.
Das Stichprobenproblem: Warum zufällig nicht immer am besten ist
Die Kernherausforderung bei der Quantifizierung der Stichprobenbasierte Unsicherheit ist die Diskrepanz des Stichprobensatzes. Die Diskrepanz misst, wie gleichmäßig Punkte über den Parameterraum verteilt sind. In der Grenze der unendlichen Stichproben geht jede vernünftige Diskrepanz auf Null, aber die Geschwindigkeit, mit der dies geschieht, ist enorm wichtig.
Klassischer Monte Carlo
Standard Monte Carlo zeichnet Proben unabhängig von der Zielverteilung. Durch den zentralen Grenzwertsatz konvergiert der Schätzer mit einer Varianz, die proportional zu 1 / n ist. Das heißt, um den Standardfehler zu halbieren, müssen Sie die Anzahl der Proben 4ple. Für eine rechnerisch teure Simulation – ein 3D-Thermoproblem, ein mehrphasiger Flusslöser oder ein Material-Science-Lauf für die molekulare Dynamik – kann sich die Probenanzahl vervierfachen.
Die Diskrepanzperspektive
Sequenzen mit geringer Diskrepanz (LDs) werden genau konstruiert, um die Sternabweichung d * _n des Probensatzes zu minimieren. Die Definition lautet:
D*_N = sup_{A ⊆ [0,1]^s} |(1/N) Σ 1_A(x_i) − λ(A)|
wobei λ(a) das Lebesgue-Maß (Volumen) von A ist und das Supremum über alle achsengerichteten Unterboxen genommen wird. Im Klartext: LDS-Sequenzen minimieren die maximale Abweichung zwischen empirischer und wahrer Wahrscheinlichkeit über jeden rechteckigen Bereich.
Die Sobelev-Dick-Tractman-Ungleichung (das Koks-Meyers-Theorem für LDS) besagt, dass für eine Funktion f mit gemischten partiellen Ableitungen bis zur Ordnung S der Integrationsfehler einer LDS-Regel begrenzt wird durch:
|∫ f − (1/N) Σ f(x_i)| ≤ C_s · ‖f‖_S · D*_N
wobei C_s eine Konstante ist, die nur von der Dimension abhängt und ‖F‖_S die Sobolev-Norm ist. Diese Bindung erklärt, warum QMC-Methoden für reibungslose Funktionen glänzen – der Fehler zerfällt viel schneller als die Monte-Carlo-Rate, wenn der Integrand gemischte Derivate begrenzt hat.
Der Fluch der Dimensionalität
Alle diese Methoden stehen dem Fluch der Dimensionalität gegenüber. Für LHS-Verbundverbindungen setzt sich die Schichtung über Dimensionen hinweg multiplikativ aus. Für Sobol und Halton beginnt die Struktur, die in 1–2 Dimensionen eine geringe Diskrepanz gibt, mit zunehmender Dimension zusammenzubrechen – Halton-Sequenzen entwickeln insbesondere periodische Aliasing-Muster, die die Abdeckung verzerren. Das Verständnis, wo die Stärken und Schwächen jeder Methode liegen, ist für die Auswahl des richtigen Samplers von entscheidender Bedeutung.
Latin Hypercube Stamples: Theorie und Implementierung
Die lateinische Hyperwürfel-Stichprobe wurde von McKay et al. (1989) als Kompromiss zwischen reiner Schichtung und Einfachheit der Zufallsstichprobe.
Wie LHS funktioniert
Für ein d-dimensionales Problem mit n Proben:
- Teilen Sie jede Randdimension in n Intervall-Bins.
- Für jede Dimension k permutieren Sie den ganzzahligen Vektor [1, 2, …, N] zufällig, um zu bestimmen, welcher Behälter jede Probe belegt.
- Zeichnen Sie n einheitliche Proben aus jeder Dimension, die in den zugewiesenen Behältern geschichtet sind.
- Die Probenindizes werden unabhängig voneinander über alle Dimensionen hinweg permutiert, wodurch eine D × N-Matrix erzeugt wird.
Die entscheidende Eigenschaft ist in jeder Dimension eine Stichprobe pro Bin . Dies garantiert, dass das Randhistogramm für jede Dimension perfekt geschichtet ist.
Konvergenzeigenschaften
LHS hat einen Varianzreduzierungsfaktor im Vergleich zu Plain Monte Carlo. Unter milden Regelmäßigkeitsbedingungen:
Var_LHS(ȳ) = Var_MC(ȳ) / N + O(N⁻²)
Dies bedeutet, dass LHS im Standardfehler ungefähr mit der gleichen O (n⁻¹ᐟ²) -Rate konvergiert, jedoch mit einer signifikant niedrigeren Konstante – ungefähr ein Faktor von n bei der Varianzreduzierung.
Python-Implementierung
import numpy as np
from scipy.stats import qmc
def lhs_sample(N, d, bounds=None):
"""
Latin Hypercube Sampling using scipy.
Parameters:
N: number of samples
d: number of dimensions
bounds: list of (low, high) tuples for each dimension
Returns:
N x d array of LHS samples
"""
if bounds is None:
bounds = [(0, 1)] * d
# Create the LHS engine
engine = qmc.Lhs(d, scramble=False)
# Generate samples in [0,1]
samples = engine.random(N)
# Apply bounds
if bounds != [(0, 1)] * d:
# Transform to specified bounds
for i, (low, high) in enumerate(bounds):
samples[:, i] = low + (high - low) * samples[:, i]
return samples
# Example: 3D LHS with 1000 samples
np.random.seed(42)
d = 3
N = 1000
lhs_samples = lhs_sample(N, d)
print(f"LHS shape: {lhs_samples.shape}")
print(f"Marginal means (should be ~0.5): {lhs_samples.mean(axis=0)[:3]}")
Die obige Option scramble=False dient der Veranschaulichung. In der Produktion sollten Sie scramble=True verwenden, um die von deterministische LHS eingeführte künstliche Korrelationsstruktur zu durchbrechen.
Quasi-Monte Carlo: SOBOL-Sequenzen und Rätsel
Sobol-Sequenzen wurden 1967 von I. M. Sobol als erste praktische Sequenz mit geringer Diskrepanz eingeführt. Sie verwenden ein gerichtetes Diagramm, um Ziffern in Base 2 zu erzeugen und eine Sequenz mit nachweislich geringer Sternabweichung zu erzeugen.
Warum Scrambling unerlässlich ist
Eine nicht verschlüsselte SOBOL-Sequenz hat eine Struktur, die alle 2 ^ m-Proben wiederholt. Für periodische oder diskontinuierliche Integranden – die in Simulationsabläufen sehr häufig sind – erzeugt dies Systematic Bias. Die Sequenz stimmt mit den Diskontinuitäten überein, wodurch der Integrator wichtige Merkmale verfehlt.
Durch das Scrambling wird eine zufällige Permutation auf die binären Darstellungen der Sequenzindizes angewendet, wodurch diese Periodizität unterbrochen wird, während die Eigenschaft mit geringer Diskrepanz beibehalten wird. Das randomisierte Quasi-Monte-Carlo (RQMC) -Framework beweist, dass verwürfelte SOBOL-Sequenzen, wenn sie über das Rühren gemittelt werden, unvoreingenommene Schätzer mit konvergierenden Konfidenzintervallen erzeugen.
Beispielanzahl: Zweierpotenzen
SOBOL-Sequenzen wurden so konzipiert, dass genau 2 ^ m Punkte eine optimale Diskrepanz ergeben. Wenn Sie N = 2 ^ 15 = 32.768 Punkte nehmen, ergibt sich eine dramatisch bessere Abdeckung als N = 30.000. Wenn Sie genau 30.000 Proben benötigen, haben Sie entweder:
- Generieren Sie 32.768 SoBol-Punkte und verwenden Sie die ersten 30.000 (Sie verlieren Optimalität)
- Verwenden Sie für diese bestimmte Anzahl einen anderen Sampler
- Verwenden Sie Halton-Sequenzen, die beliebige n unterstützen
Sobol in der Praxis durcheinander
import numpy as np
from scipy.stats import qmc
def scrambled_sobol(N, d, seed=None):
"""
Generate scrambled Sobol QMC samples.
Parameters:
N: number of samples (ideally a power of 2)
d: number of dimensions
seed: random seed for scrambling
Returns:
N x d array of QMC samples
"""
engine = qmc.QualifiedSobol(d, scramble=True, seed=seed)
return engine.random(N)
# Example: 2^15 Sobol samples in 10 dimensions
np.random.seed(42)
d = 10
N = 2**15 # 32,768 - optimal for Sobol
sobol_samples = scrambled_sobol(N, d, seed=12345)
print(f"Scrambled Sobol shape: {sobol_samples.shape}")
Halton vs Sobol: Praktische Kompromisse
Die beiden häufigsten HLT-Familien sind Halton und Sobol. Beide sind deterministisch, haben beide eine geringe Diskrepanz, verhalten sich jedoch in der Praxis unterschiedlich.
Halton-Sequenzen
Halton-Sequenzen verwenden aufeinanderfolgende Primzahlen als Grundlagen: 2, 3, 5, 7, 11, … Dies stellt die mathematische Unabhängigkeit über die Dimensionen sicher. Die Vorteile sind:
- Beliebige Stichprobenzählungen – Keine Notwendigkeit von Zweierpotenzen
- Einfach zu generieren – Keine primitiven Polynomtabellen erforderlich
- Schnell zu berechnen — Einfache Ziffernextraktion
Die Nachteile sind gut dokumentiert:
- Strukturiertes Aliasing – Höherdimensionale Projektionen weisen periodische Muster auf
- Schlechte theoretische Grenzen – Diskrepanz wächst schneller als Sobol
- Keine Scrambling-Theorie – Scrambling ist für willkürliche Grundlagen schwerer zu definieren
SOBOL-Sequenzen
SOBOL-Sequenzen verwenden ein festes primitives Polynom über gf(2)
- Bessere theoretische Grenzen – nachweislich niedrigste Diskrepanz für Base-2
- Rich-Scrambling-Theorie — Owen Scrambling ist gut definiert und effektiv
- Optimal bei Zweierpotenzen — Exakte Optimalitätsgarantien
Die Nachteile:
- Erfordert primitive Polynomtabellen – Muss vorbearbeitet oder gespeichert werden
- Nicht flexibel bei der Anzahl der Proben — ausgelegt für n = 2 ^ m
- Rechenweise schwerer – Erfordert Tabellen-Lookups
Das Urteil
Für die meisten Simulationsanwendungen mit 5–20 Dimensionen übertrifft SOBOL mit Scrambling Halton. Der Grund dafür ist, dass das Scrambling die Aliasing-Muster bricht, die Halton in höheren Dimensionen entwickelt. Wenn Sie willkürliche Stichprobenzählungen benötigen und kein Scrambling verwenden können, ist Halton möglicherweise die bessere praktische Wahl.
Vergleichshandbuch: MC vs LHS vs Sobol vs Halton
| Eigentum | Monte Carlo | Lateinischer Hyperkuchen | SOBOL (verschlüsselt) | Halton |
|---|---|---|---|---|
| Konvergenzrate | O (n⁻¹ᐟ²) Standardfehler | O(n⁻¹ᐟ²) mit reduzierter Varianz | O(n⁻¹) für glatte Funktionen | O(n⁻¹) für glatte Funktionen |
| Varianzreduzierung | Keiner | Faktor ~ n im Vergleich zu MC | 10–100 × Reduktion gegenüber MC | 10–50 × Reduktion vs MC |
| Beispielflexibilität | Beliebig n | Beliebig n | Optimal bei n = 2 ^ m | Beliebig n |
| Dimensionsskalierung | verschlechtert sich linear | verschlechtert sich multiplikativ | verschlechtert sich als O (s) | Abbau als O(S) mit Aliasing |
| Scrambling erforderlich | Nein | Manchmal (verschlüsselter LHS) | Ja (für die Produktion) | Fakultativ |
| Komplexität der Implementierung | Trivial | Niedrig | Mittel (Tische + Scrambling) | Niedrig |
| Periodische Integranden | voreingenommen (strukturell) | voreingenommen (strukturell) | unvoreingenommen (wenn verschlüsselt) | potenziell voreingenommen |
| Empfohlen für | Grundlinie, sehr unregelmäßig | Moderate Abmessungen (≤ 15) | Glatte Integranden, Produktion | Willkür N, schnelles Prototyping |
Python-Implementierungshandbuch
Hier ist ein vollständiges Arbeitsbeispiel, das alle vier Sampler mit einer einfachen Testfunktion vergleicht.
import numpy as np
from scipy.stats import qmc
def test_function(x):
"""
Test integrand: sum of cosines along with a linear drift.
True integral on [0,1]^d = sum of (sin(1)/1) for cos + 0.5*d for linear.
"""
d = x.shape[-1]
true_integral = d * np.sin(1) + 0.5 * d
return np.cos(x) + x.mean(axis=-1, keepdims=True)
def estimate_integral(samples, func, true_value):
"""Estimate integral via QMC / MC averaging."""
f_values = func(samples)
estimate = f_values.mean(axis=-1).mean()
std_error = f_values.std(ddof=1) / np.sqrt(len(f_values))
return estimate, std_error
# Setup
d = 5 # dimension
np.random.seed(42)
# 1. Monte Carlo
N_mc = 2**15
mc_samples = np.random.uniform(0, 1, (N_mc, d))
mc_est, mc_se = estimate_integral(mc_samples, test_function, None)
# 2. Latin Hypercube (scrambled)
lhs_engine = qmc.Lhs(d, scramble=True)
lhs_samples = lhs_engine.random(N_mc)
lhs_est, lhs_se = estimate_integral(lhs_samples, test_function, None)
# 3. Scrambled Sobol QMC
sobol_engine = qmc.Sobol(d, scramble=True)
sobol_samples = sobol_engine.random(N_mc)
sobol_est, sobol_se = estimate_integral(sobol_samples, test_function, None)
# 4. Halton
halton_engine = qmc.Halton(d, scramble=False)
halton_samples = halton_engine.random(N_mc)
halton_est, halton_se = estimate_integral(halton_samples, test_function, None)
print(f"MC: {mc_est:.6f} ± {mc_se:.6f}")
print(f"LHS: {lhs_est:.6f} ± {lhs_se:.6f}")
print(f"Sobol: {sobol_est:.6f} ± {sobol_se:.6f}")
print(f"Halton: {halton_est:.6f} ± {halton_se:.6f}")
Die Ausgabe zeigt konsistent, dass QMC-Methoden (SOBOL und LHS) Schätzungen mit einer wesentlich geringeren Varianz als Standard-Monte-Carlo selbst bei mäßigen Probenzahlen erzeugen.
Grenzen für physikalische Parameter verwenden
In realen Simulations-Workflows haben Ihre Parameter physikalische Grenzen. Das qmc-Modul übernimmt dies über den Parameter expand:
from scipy.stats import qmc
import numpy as np
# Physical bounds for a 3D problem
bounds = [
(300, 400), # Temperature in Kelvin
(1e-6, 1e-4), # Thermal conductivity, W/m·K
(0.1, 0.9) # Porosity, dimensionless
]
d = len(bounds)
engine = qmc.Sobol(d, scramble=True)
# Generate samples in [0,1], then expand to bounds
samples = engine.random(2**12)
samples = qmc.expand(samples, [b for b in bounds])
print(f"Sampled bounds check:")
for i, (low, high) in enumerate(bounds):
print(f" Dim {i}: min={samples[:, i].min():.6f}, max={samples[:, i].max():.6f}")
Häufige Fallstricke und wie man sie vermeidet
Fallstricke 1: Erste Sobol-Punkte entfernen
Die ersten SOBOL-Punkte (Indizes 0 bis ~ 10) haben eine schlechte Abdeckung. Wenn Sie sie ohne Berücksichtigung der Indexverschiebung fallen lassen, erstellen Sie ein voreingenommenes Beispielset.
Fix: Starten Sie die SOBOL-Probenahme immer bei Index 0 und lassen Sie die vollständige Sequenz auf natürliche Weise füllen. Wenn Sie eine Teilstichprobe benötigen, verwenden Sie die Mitte oder das Ende der Sequenz, nicht eine willkürliche Kürzung.
Falle 2: Nicht-Möglichkeiten von 2 Sobol
Wenn Sie n = 50.000 SOBOL-Punkte nehmen, wird die optimale Diskrepanzeigenschaft weggeworfen. Die Sequenz wurde so konzipiert, dass n = 2 ^ m genaue geringe Diskrepanz ergibt.
Fix: Verwenden Sie entweder n = 2 ^ m und verkürzen (akzeptabel, wenn Sie nur eine Teilmenge benötigen) oder wechseln Sie für willkürliche Zählungen zu LHS oder Halton.
Fallfall 3: Unverschlüsselter Sobol in der Produktion
Nicht verschlüsselte Sobol-Sequenzen haben periodische Strukturen. Für periodische Funktionen (sehr häufig bei der Ausbreitung von Unsicherheiten) entsteht eine systematische Verzerrung, die mit mehr Stichproben nicht gemittelt wird.
Fix: Verwenden Sie immer scramble=True. Der in scipy.stats.qmc verwendete Owen-Scrambling-Algorithmus erzeugt nahezu unvoreingenommene Schätzungen.
Fallfall 4: Fehlinterpretation von QMC-Konfidenzintervallen
Im Gegensatz zu MC erzeugt QMC standardmäßig keine statistisch gültigen Konfidenzintervalle. Sie benötigen RQMC (Randomized QMC) mit mehreren Scrambles, um gültige Intervalle zu konstruieren.
Fix: Führen Sie K-Verschlüsselung derselben QMC-Sequenz aus und verwenden Sie die Stichprobenvarianz über Scrambles, um die Konfidenzintervalle abzuschätzen.
Fallfall 5: Anwenden von LHS auf stark korrelierte Eingaben
LHS übernimmt Dimensionsunabhängigkeit. Wenn Ihre Parameter korreliert sind (z. B. Materialeigenschaften aus einer gemeinsamen Verteilung), ignoriert LHS auf den Marginals die Korrelationsstruktur.
Fix: Verwenden Sie LHS auf Copula-Basis oder transformieren Sie sie in unabhängige Koordinaten, bevor Sie LHS anwenden.
Was wir empfehlen
Die Auswahl der richtigen Stichprobenmethode ist kein Einzelproblem. Hier ist unser praktischer Entscheidungsrahmen:
Wann sollte Latin Hypercube Sampling verwendet werden?
- Sie benötigen willkürliche Stichprobenzählungen und wünschen sich Vorteile für die Schichtung
- Ihre Abmessungen sind ≤ 15 und Sie können keine Zweierpotenzen garantieren
- Sie benötigen eine schnelle, leicht umsetzbare Lösung — LHS lässt sich einfach von Grund auf codieren
- Ihre Simulationsfunktion ist mäßig reibungslos – LHS behandelt Diskontinuitäten besser als ungescramble SOBOL
Wann verwenden Sie Rührei Sobol QMC
- Ihr Integrand ist glatt (unterschiedlich, keine starken Diskontinuitäten)
- Sie können n = 2^m Sample Counts verwenden
- Sie benötigen die beste theoretische Konvergenzrate — O(n⁻¹) Beats O(n⁻¹ᐟ²)
- Sie führen Produktions-UQ-Kampagnen durch, wobei die Anzahl der Proben durch das Compute-Budget begrenzt wird
Wann soll ich halton verwenden?
- Sie benötigen willkürliche Stichprobenzählungen und können aus irgendeinem Grund LHS nicht verwenden
- Ihre Abmessungen sind ≤ 10 – Halton schneidet in niedrigen Abmessungen gut ab
- Sie sind Prototyping und benötigen eine schnelle Sequenz ohne Tabellen
Wann verwenden Sie Standard Monte Carlo?
- Ihre Funktion hat starke Diskontinuitäten und Sie können nicht klettern
- Ihre Dimensionen überschreiten 25 – Alle LDS-Methoden verschlechtern sich und die Einfachheit von MC gewinnt
- Sie benötigen statistisch gültige Konfidenzintervalle ohne Overhead
- Ihre Funktion ist extrem unregelmäßig – SoBol/LHS-Struktur kann zu Verzerrung führen
eine praktische Faustregel
Für die meisten wissenschaftlichen Simulationsworkflows in 3–20 Dimensionen mit glatten Vorwärtsmodellen ist Scrambled Sobol QMC mit n = 2 ^ 12 bis 2 ^ 15 Proben der Sweet Spot. Es gibt Ihnen eine 10-100-fache Varianzreduzierung gegenüber dem Standard-Monte-Carlo bei einer Stichprobenanzahl, die in Stunden anstelle von Tagen auf einem einzelnen Knoten abgeschlossen wird.
Zusammenfassung und nächste Schritte
Bei Monte-Carlo-Methoden für wissenschaftliche Simulationen geht es nicht nur um das Zeichnen von Zufallszahlen. Die Wahl der Stichprobenstrategie – lateinischer Hypercube, Sobol-Sequenzen oder Halton – bestimmt, ob Ihre UQ-Kampagne effizient oder verschwenderisch ist.
Die wichtigsten Erkenntnisse sind:
- Diskrepanz ist wichtig: Sequenzen mit geringer Diskrepanz decken den Parameterraum weitaus gleichmäßiger ab als zufällige Punkte
- Verschlüsselung ist unerlässlich für die Produktion Sobol, um systematische Verzerrungen zu vermeiden
- Potenzen von zwei sind optimal für SOBOL – Entwerfen Sie Ihr Beispielbudget entsprechend
- QMC-Konvergenzraten von O(n⁻¹) für reibungslose Funktionen machen es zur Standardauswahl für die meisten Simulationsworkflows
Unsere Monte Carlo Methoden für wissenschaftliche Simulations Guide bietet eine umfassendere Einführung in die Monte-Carlo-Ansätze. Dieser Artikel vergrößert die Methoden mit geringer Diskrepanz, die Ihnen die höchste Effizienz pro Probe bieten.
Integrieren Sie für die praktische Bereitstellung die oben genannten QMC-Codemuster in Ihre Simulationskampagnenskripte. Beginnen Sie mit n = 2 ^ 12, bewerten Sie die Konvergenz durch Überwachen der Schätzvarianz und skalieren Sie bis zu 2 ^ 15, wenn Ihr Budget dies zulässt. Die Ergebnisse werden für sich sprechen.
Verwandte Anleitungen
- Unsicherheitsquantifizierung und Sensitivitätsanalyse in der wissenschaftlichen Simulation — breiterer UQ-Kontext einschließlich Sobol-Indizes und Varianz-basierte Sensitivität
- Monte Carlo Methoden für wissenschaftliche Simulationen: a Python Guide – Breitere Abdeckung von Monte Carlo, einschließlich Wichtigkeitsproben und adaptiver Methoden
- Verifikation vs Validierung in wissenschaftlichen Simulationen: Ein praktischer Leitfaden – So überprüfen Sie, ob Ihre UQ-Ergebnisse numerisch korrekt sind
- Reproduzierbare Parameter-Sweeps: Design von Simulationskampagnen für die Veröffentlichung — Best Practices für Dokumentation und Reproduzierbarkeit für Stichprobenkampagnen
Referenzen
- Kucherenko, M. et al. „Verwendung von lateinischen Hypercube- und Sobol-Sequenzen für die Quantifizierung der Unsicherheit.“ arxiv:1505.02350, 2015. https://arxiv.org/abs/1505.02350
- Chrisman, E. „PI-Tagesvergleich: Monte Carlo gegen Latin Hypercube gegen Sobol Stichproben.“ Analytica, 2022. https://analytica.com/blog/pi-day-comparison-monte-carlo-vs-latin-hypercube-vs-sobol-sampling/
- scipy. „Quasi-Monte Carlo-Stichprobenreferenz.“ https://docs.scipy.org/doc/scipy/reference/stats.qmc.html
- scipy. „Quasi-Monte Carlo Tutorial.“ https://scipy.github.io/devdocs/tutorial/stats/quasi_monte_carlo.html
- qmcSoftware. „QMCSoftware-Dokumentation.“ https://qmcsoftware.github.io/qmcsoftware/
- Helmholtz-UQ-Wörterbuch. „Quasi-Monte Carlo-Methoden.“ https://dictionary.helmholtz-uq.de/content/quasi_montecarlo_methods.html
- NDCBE. „Sampling-basiertes Unsicherheitsquantifizierungs-Kurs-Notebook.“ https://ndcbe.github.io/cbe67701-uncertainty-quantification/07.01-sampling-based-uncertainty-quantification.html