simulate-stochastic-process
Acerca de
Esta habilidad simula procesos estocásticos como Cadenas de Markov, Paseos Aleatorios y EDEs, incluyendo muestreo MCMC con diagnósticos de convergencia y visualización. Úsela para generar trayectorias muestrales para estimación o predicción cuando las soluciones analíticas son intratables, o para estimación Monte Carlo con garantías de convergencia. También está diseñada para validar resultados analíticos y muestrear a partir de posteriores complejos.
Instalación rápida
Claude Code
Recomendadonpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/simulate-stochastic-processCopia y pega este comando en Claude Code para instalar esta habilidad
Documentación
Stochastischen Prozess simulieren
Stichprobenpfade aus stochastischen Prozessen simulieren -- einschliesslich diskreter Markov-Ketten, zeitkontinuierlicher Prozesse, stochastischer Differentialgleichungen und MCMC-Sampler -- mit Konvergenzdiagnostik, Varianzreduktionstechniken und Trajektorienvisualisierung.
Wann verwenden
- Erzeugung von Stichprobenpfaden aus einem stochastischen Prozess fuer Schaetzung, Vorhersage oder Visualisierung erforderlich
- Analytische Loesungen sind nicht handhabbar und Simulation ist der einzige praktikable Ansatz
- Monte-Carlo-Schaetzung mit Konvergenzgarantien und Unsicherheitsquantifizierung wird durchgefuehrt
- Validierung analytischer Ergebnisse (stationaere Verteilungen, Treffzeiten) gegen empirische Simulation gewuenscht
- Stichprobenziehung aus einer komplexen Posterior-Verteilung mittels MCMC erforderlich
- Prototyping eines stochastischen Modells vor Uebergang zur vollstaendigen analytischen Behandlung
Eingaben
Erforderlich
| Eingabe | Typ | Beschreibung |
|---|---|---|
process_type | string | Art des Prozesses: "dtmc", "ctmc", "random_walk", "brownian_motion", "sde", "mcmc" |
parameters | dict | Prozessspezifische Parameter (Uebergangsmatrix, Drift-/Diffusionskoeffizienten, Zieldichte, etc.) |
n_paths | integer | Anzahl unabhaengiger zu simulierender Stichprobenpfade |
n_steps | integer | Anzahl der Zeitschritte pro Pfad (oder Gesamt-MCMC-Iterationen) |
Optional
| Eingabe | Typ | Standard | Beschreibung |
|---|---|---|---|
initial_state | scalar/vector | prozessspezifisch | Startzustand oder -verteilung fuer jeden Pfad |
dt | float | 0.01 | Zeitschrittgroesse fuer zeitkontinuierliche Diskretisierung |
seed | integer | zufaellig | Zufallsseed fuer Reproduzierbarkeit |
burn_in | integer | n_steps / 10 | Anzahl anfaenglich zu verwerfender Schritte (MCMC) |
thinning | integer | 1 | Jeden k-ten Sample behalten zur Autokorrelationsreduktion |
variance_reduction | string | "none" | Methode: "none", "antithetic", "stratified", "control_variate" |
target_function | callable | keine | Funktion zur Auswertung entlang der Pfade fuer Monte-Carlo-Schaetzung |
Vorgehensweise
Schritt 1: Prozessmodell und Parameter definieren
1.1. Prozesstyp identifizieren und alle erforderlichen Parameter zusammenstellen:
- DTMC: Uebergangsmatrix
Pund Zustandsraum. Validieren dassPzeilenstochastisch ist. - CTMC: Ratenmatrix
Q. Validieren dass Zeilen sich zu 0 summieren und Nebendiagonaleintraege nicht-negativ sind. - Random Walk: Schrittverteilung (z.B.
{-1, +1}mit gleicher Wahrscheinlichkeit), gegebenenfalls Grenzen. - Brownsche Bewegung: Drift
mu, Volatilitaetsigma, Dimensiond. - SDE (Ito): Driftfunktion
a(x,t), Diffusionsfunktionb(x,t). - MCMC: Ziel-Log-Dichte, Vorschlagsmechanismus (Random-Walk-Metropolis, Hamilton, Gibbs-Komponenten).
1.2. Parameterkonsistenz validieren:
- Matrixdimensionen stimmen mit Zustandsraumgroesse ueberein.
- SDE-Koeffizienten erfuellen Wachstums- und Lipschitz-Bedingungen (zumindest informell) fuer den gewaehlten Loeser.
- MCMC-Vorschlag ist wohldefiniert fuer den Traeger der Zielverteilung.
1.3. Zufallsseed fuer Reproduzierbarkeit setzen.
Erwartet: Ein vollstaendig spezifiziertes stochastisches Modell mit validierten Parametern und einem reproduzierbaren Zufallszustand.
Bei Fehler: Wenn Parameter inkonsistent sind (z.B. nicht-stochastische Matrix), vor dem Fortfahren korrigieren. Wenn SDE-Koeffizienten pathologisch sind, ein anderes Diskretisierungsschema in Betracht ziehen.
Schritt 2: Simulationsmethode auswaehlen
2.1. Den geeigneten Algorithmus basierend auf dem Prozesstyp waehlen:
| Prozess | Methode | Schluesseleigenschaft |
|---|---|---|
| DTMC | Direkte Stichprobenziehung aus Uebergangszeile | Exakt |
| CTMC | Gillespie-Algorithmus (SSA) | Exakt, ereignisgesteuert |
| CTMC (approx.) | Tau-Leaping | Approximativ, schneller bei hohen Raten |
| Random Walk | Direkte Stichprobenziehung der Inkremente | Exakt |
| Brownsche Bew. | Kumulative Summe Gauss'scher Inkremente | Exakt fuer festes dt |
| SDE (allgemein) | Euler-Maruyama | Ordnung 0.5 stark, Ordnung 1.0 schwach |
| SDE (hoehere Ord.) | Milstein | Ordnung 1.0 stark (skalares Rauschen) |
| SDE (steif) | Implizites Euler-Maruyama | Stabil fuer steife Drift |
| MCMC (allgemein) | Metropolis-Hastings | Asymptotisch exakt |
| MCMC (Gradient) | Hamiltonsches Monte Carlo (HMC) | Besseres Mixing in hohen Dimensionen |
| MCMC (bedingt) | Gibbs-Sampler | Exakte Bedingungsverteilungen wenn verfuegbar |
2.2. Fuer SDE-Methoden dt klein genug fuer numerische Stabilitaet waehlen. Nuetzliche Heuristik: mit dt = 0.01 beginnen und halbieren bis Ergebnisse stabil sind.
2.3. Fuer MCMC die Vorschlagsskala anpassen um eine Akzeptanzrate von ungefaehr zu erreichen:
- 23.4% fuer hochdimensionalen Random-Walk-Metropolis
- 57.4% fuer eindimensionale Ziele
- 65-90% fuer HMC (abhaengig von Trajektorienlaenge)
2.4. Wenn Varianzreduktion angefordert, diese konfigurieren:
- Antithetische Variablen: Fuer jeden Pfad mit Zufallsinkrementen
Zauch mit-Zsimulieren. - Stratifizierte Stichprobe: Den Wahrscheinlichkeitsraum partitionieren und innerhalb jeder Schicht ziehen.
- Kontrollvariablen: Eine korrelierte Groesse mit bekanntem Erwartungswert zur Varianzreduktion identifizieren.
Erwartet: Ein ausgewaehlter Simulationsalgorithmus passend zum Prozesstyp mit geeigneten Abstimmungsparametern.
Bei Fehler: Wenn die gewaehlte Methode instabil ist (z.B. Euler-Maruyama divergiert), zu einer impliziten Methode wechseln oder dt reduzieren.
Schritt 3: Simulation implementieren und ausfuehren
3.1. Speicher fuer n_paths Trajektorien zuweisen, jeweils der Laenge n_steps (oder dynamisch fuer ereignisgesteuerte Methoden wie Gillespie).
3.2. Fuer jeden Pfad i = 1, ..., n_paths:
DTMC / Random Walk:
x[0] = initial_statesetzen- Fuer
t = 1, ..., n_steps:x[t]aus der Uebergangsverteilung gegebenx[t-1]ziehen
CTMC (Gillespie):
x[0] = initial_statesetzen,time = 0- Solange
time < T_max:- Gesamtrate
lambda = -Q[x, x]berechnen - Haltezeit
tau ~ Exp(lambda)ziehen - Naechsten Zustand aus Uebergangswahrscheinlichkeiten
Q[x, j] / lambdafuerj != xziehen time += tauaktualisieren, Uebergang aufzeichnen
- Gesamtrate
SDE (Euler-Maruyama):
x[0] = initial_statesetzen- Fuer
t = 1, ..., n_steps:dW = sqrt(dt) * N(0, I)(Wiener-Inkrement)x[t] = x[t-1] + a(x[t-1], t*dt) * dt + b(x[t-1], t*dt) * dW
MCMC (Metropolis-Hastings):
x[0] = initial_statesetzen- Fuer
t = 1, ..., n_steps:x' ~ q(x' | x[t-1])vorschlagen- Akzeptanzverhaeltnis
alpha = min(1, p(x') * q(x[t-1]|x') / (p(x[t-1]) * q(x'|x[t-1])))berechnen - Mit Wahrscheinlichkeit
alphaakzeptieren:x[t] = x'falls akzeptiert, sonstx[t] = x[t-1] - Akzeptanzentscheidung aufzeichnen
3.3. Wenn target_function angegeben, diese an jedem Zustand entlang jedes Pfades auswerten und Werte speichern.
3.4. Thinning anwenden: jeden thinning-ten Sample behalten.
3.5. burn_in Samples vom Beginn jedes Pfades verwerfen (hauptsaechlich fuer MCMC).
Erwartet: n_paths vollstaendige Trajektorien im Speicher, mit optionalen Funktionsauswertungen. MCMC-Akzeptanzrate liegt im Zielbereich.
Bei Fehler: Wenn die Simulation NaN- oder Inf-Werte erzeugt, dt fuer SDE-Methoden reduzieren oder Parametergueltigkeit pruefen. Wenn die MCMC-Akzeptanzrate nahe 0% oder 100% liegt, Vorschlagsskala anpassen.
Schritt 4: Konvergenzdiagnostik anwenden
4.1. Trace-Plots: Den Wert jeder Komponente ueber die Zeit fuer eine Teilmenge der Pfade darstellen. Visuelle Inspektion auf Stationaritaet (keine Trends, stabile Varianz).
4.2. Gelman-Rubin-Diagnostik (R-hat): Fuer MCMC mit mehreren Ketten:
- Innerhalb-Ketten-Varianz
Wund Zwischen-Ketten-VarianzBberechnen. R_hat = sqrt((n-1)/n + B/(n*W))- Konvergenz angezeigt durch
R_hat < 1.01(streng) oderR_hat < 1.1(nachsichtig).
4.3. Effektive Stichprobengroesse (ESS):
- Autokorrelation bei steigenden Lags schaetzen.
ESS = n_samples / (1 + 2 * sum(autocorrelations))- Faustregel:
ESS > 400fuer zuverlaessige Posterior-Zusammenfassungen.
4.4. Geweke-Diagnostik: Mittelwert der ersten 10% und der letzten 50% jeder Kette vergleichen. Der z-Score sollte innerhalb [-2, 2] fuer Konvergenz liegen.
4.5. Fuer Nicht-MCMC-Prozesse: Sicherstellen dass zeitgemittelte Statistiken (Mittelwert, Varianz) mit zunehmender Pfadlaenge stabilisieren. Laufende Durchschnitte darstellen.
4.6. Eine Zusammenfassungstabelle erstellen:
| Diagnostik | Wert | Schwellenwert | Status |
|---|---|---|---|
| R-hat (max) | ... | < 1.01 | ... |
| ESS (min) | ... | > 400 | ... |
| Geweke z (max abs) | ... | < 2.0 | ... |
| Akzeptanzrate | ... | 0.15-0.50 | ... |
Erwartet: Alle Konvergenzdiagnostiken bestehen ihre Schwellenwerte. Trace-Plots zeigen stabile, gut mischende Ketten.
Bei Fehler: Wenn R-hat > 1.1, laengere Ketten laufen lassen oder den Vorschlag verbessern. Wenn ESS sehr niedrig ist, Thinning erhoehen oder zu einem besseren Sampler wechseln (z.B. HMC). Wenn Geweke fehlschlaegt, Burn-in verlaengern.
Schritt 5: Zusammenfassungsstatistiken mit Konfidenzintervallen berechnen
5.1. Fuer jede Groesse von Interesse (Zustandsbelegung, Funktionserwartungswert, Treffzeiten):
- Punktschaetzung als Stichprobenmittel ueber Pfade berechnen (nach Burn-in und Thinning).
- Standardfehler mittels effektiver Stichprobengroesse berechnen:
SE = SD / sqrt(ESS).
5.2. Konfidenzintervalle konstruieren:
- Normalapproximation:
Schaetzung +/- z_{alpha/2} * SE - Fuer schiefe Verteilungen Percentil-Bootstrap oder Batch-Mittel verwenden.
5.3. Wenn Varianzreduktion angewandt wurde, den Varianzreduktionsfaktor berechnen:
VRF = Var(naiver Schaetzer) / Var(reduzierter Schaetzer)- Die effektive Beschleunigung berichten.
5.4. Fuer Monte-Carlo-Integrationsschaetzungen:
- Schaetzung, Standardfehler, 95%-KI, ESS und Anzahl der Funktionsauswertungen berichten.
5.5. Fuer Verteilungsschaetzungen:
- Empirische Quantile berechnen (Median, 2.5te, 97.5te Perzentile).
- Kerndichteschaetzungen fuer stetige Groessen.
5.6. Alle Zusammenfassungsstatistiken mit ihren Unsicherheiten tabellieren.
Erwartet: Punktschaetzungen mit zugehoerigen Standardfehlern und Konfidenzintervallen. Varianzreduktion (falls angewandt) ergibt VRF > 1.
Bei Fehler: Wenn Konfidenzintervalle zu breit sind, n_paths oder n_steps erhoehen. Wenn Varianzreduktion Schaetzungen verschlechtert (VRF < 1), deaktivieren -- die Kontrollvariable oder das antithetische Schema passt moeglicherweise nicht zum Problem.
Schritt 6: Trajektorien und Verteilungen visualisieren
6.1. Trajektorienplots: Eine repraesentative Teilmenge von Stichprobenpfaden (5-20 Pfade) ueber die Zeit darstellen. Transparenz fuer ueberlappende Pfade verwenden.
6.2. Ensemble-Statistiken: Die mittlere Trajektorie und punktweise 95%-Konfidenzbaender ueber alle Pfade ueberlagern.
6.3. Randverteilungen: An ausgewaehlten Zeitpunkten Histogramme oder Dichteschaetzungen der Zustandsverteilung ueber Pfade darstellen.
6.4. Vergleich mit stationaerer Verteilung: Wenn eine analytische stationaere Verteilung verfuegbar ist, diese dem empirischen Histogramm der letzten Zeitscheibe ueberlagern.
6.5. Autokorrelationsplots: Fuer MCMC die Autokorrelationsfunktion (ACF) fuer jede Komponente bis zu einem vernuenftigen Lag darstellen.
6.6. Diagnostik-Dashboard: Trace-Plots, ACF-Plots, laufende Mittelwert-Plots und Randdichten zu einer einzigen Mehrfach-Paneel-Abbildung fuer umfassende Bewertung kombinieren.
6.7. Alle Abbildungen sowohl in Vektor- (PDF/SVG) als auch in Rasterformaten (PNG) fuer die Dokumentation speichern.
Erwartet: Publikationsreife Abbildungen die Trajektorienverhalten, Verteilungskonvergenz und diagnostische Zusammenfassungen zeigen. Analytische Loesungen (wo verfuegbar) stimmen mit empirischen Ergebnissen ueberein.
Bei Fehler: Wenn Visualisierungen Nichtstationaritaet oder nicht erwartete Multimodalitaet aus dem Modell zeigen, Schritte 1-2 auf Parameter- oder Methodenfehler ueberpruefen. Wenn Plots ueberladen sind, Anzahl dargestellter Pfade reduzieren oder Abbildungsgroesse erhoehen.
Validierung
- Alle simulierten Trajektorien bleiben im gueltigen Zustandsraum (keine Out-of-Bounds-Werte, kein NaN/Inf)
- Fuer DTMC/CTMC: empirische stationaere Verteilung konvergiert zur analytischen (innerhalb erwarteten Monte-Carlo-Fehlers)
- Fuer SDE: Halbierung von
dtaendert Ergebnisse nicht qualitativ (Konvergenzordnungspruefung) - Fuer MCMC: R-hat < 1.01, ESS > 400, Geweke-z-Scores innerhalb [-2, 2]
- Konfidenzintervallbreiten nehmen proportional zu
1/sqrt(n_paths)ab (Zentraler Grenzwertsatz) - Varianzreduktionstechniken ergeben VRF > 1 (Schaetzungen verbessern sich, verschlechtern sich nicht)
- Reproduzierbarkeit: erneutes Ausfuehren mit demselben Seed erzeugt identische Ergebnisse
Haeufige Stolperfallen
- Unzureichendes Burn-in fuer MCMC: Start von einem schlechten Anfangszustand erfordert ein langes Burn-in bevor Samples die Zielverteilung repraesentieren. Immer Trace-Plots inspizieren und Konvergenzdiagnostik verwenden statt die Burn-in-Laenge zu raten.
- Euler-Maruyama-Instabilitaet fuer steife SDEs: Wenn der Driftterm grosse Gradienten hat, kann explizites Euler-Maruyama divergieren. Zu impliziten Methoden wechseln oder adaptive Schrittgroesse verwenden.
- Verwechslung starker und schwacher Konvergenz fuer SDEs: Starke Konvergenz misst pfadweisen Fehler (wichtig fuer einzelne Trajektorien); schwache Konvergenz misst Verteilungsfehler (ausreichend fuer Erwartungswerte). Euler-Maruyama hat schwache Ordnung 1.0 aber starke Ordnung 0.5.
- Qualitaet des Pseudozufallszahlengenerators: Fuer sehr lange Simulationen koennen minderwertige RNGs korrelierte Samples erzeugen. Einen gut getesteten Generator verwenden (Mersenne Twister, PCG oder Xoshiro) und Unabhaengigkeit verifizieren.
- Autokorrelation in MCMC ignorieren: Autokorrelierte MCMC-Samples als unabhaengig behandeln unterschaetzt Unsicherheit. Immer effektive Stichprobengroesse verwenden, nicht rohe Sampleanzahl, fuer Standardfehler.
- Antithetische Variablen fuer nicht-monotone Funktionen: Antithetische Stichprobenziehung reduziert Varianz nur wenn der Schaetzgegenstand eine monotone Funktion der zugrundeliegenden Uniformen ist. Fuer nicht-monotone Funktionen kann sie Varianz erhoehen.
- Speicher fuer grosse Simulationen: Speicherung aller Zeitschritte vieler langer Pfade kann den Speicher erschoepfen. Online-Statistiken verwenden (laufender Mittelwert, Varianz) wenn vollstaendige Trajektorien nicht fuer die Visualisierung benoetigt werden.
Verwandte Skills
- Markov-Kette modellieren -- stellt die Uebergangsmatrizen und analytischen Loesungen bereit, die die Simulation validiert
- Hidden-Markov-Modell anpassen -- Simulation aus angepassten HMMs ermoeglicht posteriore praediktive Pruefung und synthetische Datenerzeugung
Repositorio GitHub
Frequently asked questions
What is the simulate-stochastic-process skill?
simulate-stochastic-process is a Claude Skill by pjt222. Skills package instructions and resources that Claude loads on demand, so Claude can perform simulate-stochastic-process-related tasks without extra prompting.
How do I install simulate-stochastic-process?
Use the install commands on this page: add simulate-stochastic-process to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does simulate-stochastic-process belong to?
simulate-stochastic-process is in the Design category, tagged design.
Is simulate-stochastic-process free to use?
Yes. simulate-stochastic-process is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.
Habilidades relacionadas
Utilice la habilidad executing-plans cuando tenga un plan de implementación completo para ejecutar en lotes controlados con puntos de revisión. Esta habilidad carga y revisa críticamente el plan, luego ejecuta tareas en pequeños lotes (por defecto 3 tareas) mientras reporta el progreso entre cada lote para la revisión del arquitecto. Esto asegura una implementación sistemática con puntos de control de calidad integrados.
Esta habilidad despacha un subagente revisor de código para analizar los cambios en el código frente a los requisitos antes de proceder. Debe usarse después de completar tareas, implementar funciones principales o antes de fusionar con la rama principal. La revisión ayuda a detectar problemas de forma temprana al comparar la implementación actual con el plan original.
Esta habilidad proporciona una guía integral para que los desarrolladores conecten servidores MCP a Claude Code mediante transportes HTTP, stdio o SSE. Cubre la instalación, configuración, autenticación y seguridad para integrar servicios externos como GitHub, Notion y APIs personalizadas. Úsala al configurar integraciones MCP, al configurar herramientas externas o al trabajar con el Protocolo de Contexto del Modelo de Claude.
Esta habilidad ayuda a los desarrolladores a elegir entre las interfaces web y CLI de Claude Code mediante el análisis de tareas, y luego permite la teletransportación fluida de sesiones entre estos entornos. Optimiza el flujo de trabajo gestionando el estado y el contexto de la sesión al cambiar entre web, CLI o móvil. Úsala para proyectos complejos que requieren diferentes herramientas en varias etapas.
