MCP HubMCP Hub
Volver a habilidades

simulate-stochastic-process

pjt222
Actualizado 5 days ago
10 vistas
17
2
17
Ver en GitHub
Metaaidesign

Acerca de

Esta habilidad simula procesos estocásticos como cadenas de Markov, EDEs y MCMC, proporcionando trayectorias muestrales para estimación, predicción y visualización. Incluye características clave como diagnósticos de convergencia, reducción de varianza y herramientas de visualización. Úsela cuando las soluciones analíticas sean intratables o cuando necesite ejecutar estimaciones de Monte Carlo con garantías de convergencia.

Instalación rápida

Claude Code

Recomendado
Principal
npx skills add pjt222/agent-almanac -a claude-code
Comando PluginAlternativo
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternativo
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/simulate-stochastic-process

Copia y pega este comando en Claude Code para instalar esta habilidad

Documentación

模擬隨機過程

模擬隨機過程之樣本路徑——含離散馬可夫鏈、連續時間過程、隨機微分方程與 MCMC 取樣器——附收斂診斷、變異數縮減技巧與軌跡視覺化。

適用時機

  • 須為估計、預測或視覺化從隨機過程生成樣本路徑
  • 解析解不可行而模擬為唯一可行進路
  • 執行蒙地卡羅估計而需收斂保證與不確定性量化
  • 欲以經驗模擬驗證解析結果(穩態分布、命中時間)
  • 須以 MCMC 自複雜後驗分布取樣
  • 於投入完整解析處理前先構造隨機模型雛形

輸入

必要

InputTypeDescription
process_typestringType of process: "dtmc", "ctmc", "random_walk", "brownian_motion", "sde", "mcmc"
parametersdictProcess-specific parameters (transition matrix, drift/diffusion coefficients, target density, etc.)
n_pathsintegerNumber of independent sample paths to simulate
n_stepsintegerNumber of time steps per path (or total MCMC iterations)

選擇性

InputTypeDefaultDescription
initial_statescalar/vectorprocess-specificStarting state or distribution for each path
dtfloat0.01Time step size for continuous-time discretization
seedintegerrandomRandom seed for reproducibility
burn_inintegern_steps / 10Number of initial steps to discard (MCMC)
thinninginteger1Keep every k-th sample to reduce autocorrelation
variance_reductionstring"none"Method: "none", "antithetic", "stratified", "control_variate"
target_functioncallablenoneFunction to evaluate along paths for Monte Carlo estimation

步驟

步驟一:定義過程模型與參數

1.1. 識別過程類型並收集所有必要參數:

  • DTMC:轉移矩陣 P 與狀態空間。驗證 P 為列隨機。
  • CTMC:速率矩陣 Q。驗證列和為 0 且非對角項非負。
  • 隨機漫步:步長分布(如 {-1, +1} 機率均等)、邊界(如有)。
  • 布朗運動:漂移 mu、波動率 sigma、維度 d
  • SDE(伊藤):漂移函式 a(x,t)、擴散函式 b(x,t)
  • MCMC:目標對數密度、提案機制(隨機漫步 Metropolis、Hamiltonian、Gibbs 分量)。

1.2. 驗證參數一致性:

  • 矩陣維度與狀態空間大小相符。
  • SDE 係數於所選求解器下滿足成長與 Lipschitz 條件(至少非形式地)。
  • MCMC 提案於目標分布之支撐上有良定義。

1.3. 設隨機種子以求可重現。

預期: 完整指明之隨機模型,參數已驗證且隨機狀態可重現。

失敗時: 若參數不一致(如非隨機矩陣),先修正再進。若 SDE 係數病態,考慮另一離散化方案。

步驟二:選擇模擬方法

2.1. 依過程類型選擇合適演算法:

ProcessMethodKey Property
DTMCDirect sampling from transition rowExact
CTMCGillespie algorithm (SSA)Exact, event-driven
CTMC (approx.)Tau-leapingApproximate, faster for high rates
Random walkDirect sampling of incrementsExact
Brownian motionCumulative sum of Gaussian incrementsExact for fixed dt
SDE (general)Euler-MaruyamaOrder 0.5 strong, order 1.0 weak
SDE (higher order)MilsteinOrder 1.0 strong (scalar noise)
SDE (stiff)Implicit Euler-MaruyamaStable for stiff drift
MCMC (general)Metropolis-HastingsAsymptotically exact
MCMC (gradient)Hamiltonian Monte Carlo (HMC)Better mixing for high dimensions
MCMC (conditional)Gibbs samplerExact conditionals when available

2.2. SDE 方法中,選 dt 須小至數值穩定。經驗法則:自 dt = 0.01 起並折半,直至結果穩定。

2.3. MCMC 中,調提案尺度以達約以下接受率:

  • 高維隨機漫步 Metropolis:23.4%
  • 一維目標:57.4%
  • HMC:65-90%(依軌跡長度而定)

2.4. 若請求變異數縮減,配置之:

  • 對偶變數:對每路徑之隨機增量 Z,亦以 -Z 模擬。
  • 分層取樣:劃分機率空間,於每層內取樣。
  • 控制變數:識別具已知期望之相關量以縮減變異數。

預期: 已選妥配對過程類型之模擬演算法及其調參。

失敗時: 若所選方法不穩(如 Euler-Maruyama 發散),轉至隱式方法或降 dt

步驟三:實作並執行模擬

3.1. 為 n_paths 條軌跡分配儲存空間,每條長 n_steps(或對如 Gillespie 之事件驅動方法動態分配)。

3.2. 對每路徑 i = 1, ..., n_paths

DTMC/隨機漫步:

  • x[0] = initial_state
  • t = 1, ..., n_steps:依給定 x[t-1] 之轉移分布取樣 x[t]

CTMC(Gillespie):

  • x[0] = initial_statetime = 0
  • time < T_max
    • 計算總速率 lambda = -Q[x, x]
    • 取樣保持時間 tau ~ Exp(lambda)
    • j != x,依轉移機率 Q[x, j] / lambda 取樣下一狀態
    • 更新 time += tau、記錄轉移

SDE(Euler-Maruyama):

  • x[0] = initial_state
  • t = 1, ..., n_steps
    • dW = sqrt(dt) * N(0, I)(Wiener 增量)
    • 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_state
  • t = 1, ..., n_steps
    • 提議 x' ~ q(x' | x[t-1])
    • 計算接受比 alpha = min(1, p(x') * q(x[t-1]|x') / (p(x[t-1]) * q(x'|x[t-1])))
    • 以機率 alpha 接受:接受則 x[t] = x',否則 x[t] = x[t-1]
    • 記錄接受決定

3.3. 若提供 target_function,於每路徑之每狀態評估之並儲存其值。

3.4. 套用稀疏化:保留每 thinning 之第 k 樣。

3.5. 自每路徑開頭丟棄 burn_in 樣(主要對 MCMC)。

預期: n_paths 條完整軌跡儲存於記憶體,附選擇性之函式評估。MCMC 接受率於目標範圍內。

失敗時: 若模擬產生 NaN 或 Inf,對 SDE 方法降 dt 或檢查參數有效性。若 MCMC 接受率近 0% 或 100%,調整提案尺度。

步驟四:套用收斂診斷

4.1. 追蹤圖:對部分路徑繪每分量之值隨時間之變化。視覺檢查穩態(無趨勢、變異數穩定)。

4.2. Gelman-Rubin 診斷(R-hat):對含多鏈之 MCMC:

  • 計算鏈內變異數 W 與鏈間變異數 B
  • R_hat = sqrt((n-1)/n + B/(n*W))
  • 收斂示為 R_hat < 1.01(嚴格)或 R_hat < 1.1(寬鬆)。

4.3. 有效樣本數(ESS)

  • 估計遞增滯後之自相關。
  • ESS = n_samples / (1 + 2 * sum(autocorrelations))
  • 經驗法則:ESS > 400 為可靠後驗摘要。

4.4. Geweke 診斷:比對每鏈前 10% 與後 50% 之均值。z 分數應於 [-2, 2] 內以示收斂。

4.5. 對非 MCMC 過程:驗證時間平均統計(均值、變異數)隨路徑長度增而穩定。繪走動均值。

4.6. 報告摘要表:

DiagnosticValueThresholdStatus
R-hat (max)...< 1.01...
ESS (min)...> 400...
Geweke z (max abs)...< 2.0...
Acceptance rate...0.15-0.50...

預期: 所有收斂診斷皆過其閾值。追蹤圖示鏈穩定且混合良好。

失敗時: 若 R-hat > 1.1,跑更長之鏈或改善提案。若 ESS 甚低,增稀疏化或轉至更佳取樣器(如 HMC)。若 Geweke 失敗,延長 burn-in。

步驟五:計算摘要統計與信賴區間

5.1. 對每關注量(狀態占用、函式期望、命中時間):

  • 計算點估計為跨路徑(burn-in 與稀疏化後)之樣本均值。
  • 用有效樣本數計算標準誤:SE = SD / sqrt(ESS)

5.2. 構造信賴區間:

  • 常態近似:estimate +/- z_{alpha/2} * SE
  • 偏態分布用百分位 bootstrap 或批次均值。

5.3. 若已套變異數縮減,計算變異數縮減因子:

  • VRF = Var(naive estimator) / Var(reduced estimator)
  • 報告有效加速。

5.4. 對蒙地卡羅積分估計:

  • 報告估計、標準誤、95% CI、ESS 與函式評估數。

5.5. 對分布估計:

  • 計算經驗分位數(中位數、2.5、97.5 百分位)。
  • 對連續量做核密度估計。

5.6. 列表所有摘要統計及其不確定性。

預期: 點估計附對應標準誤與信賴區間。變異數縮減(若已套)產生 VRF > 1。

失敗時: 若信賴區間過寬,增 n_pathsn_steps。若變異數縮減反惡化估計(VRF < 1),停用之——控制變數或對偶方案或不適本問題。

步驟六:視覺化軌跡與分布

6.1. 軌跡圖:繪具代表性之樣本路徑子集(5-20 條)隨時間之變化。對重疊路徑用透明度。

6.2. 集合統計:疊繪均值軌跡與跨所有路徑之點對點 95% 信賴帶。

6.3. 邊際分布:於選定時點,繪跨路徑之狀態分布之直方圖或密度估計。

6.4. 穩態分布比對:若有解析穩態分布,疊於最終時間切片之經驗直方圖上。

6.5. 自相關圖:對 MCMC,繪每分量自相關函式(ACF)至合理滯後。

6.6. 診斷儀表板:將追蹤圖、ACF 圖、走動均值圖與邊際密度合於單一多面板圖以供綜合評估。

6.7. 將所有圖以向量(PDF/SVG)與點陣(PNG)格式存檔以供文件用。

預期: 出版品質之圖示,呈現軌跡行為、分布收斂與診斷摘要。解析解(如有)與經驗結果相符。

失敗時: 若視覺化揭示模型未預期之非穩態或多模態,回看步驟一二之參數或方法錯誤。若圖過雜亂,減顯示路徑數或加大圖尺。

驗證

  • 所有模擬軌跡留於有效狀態空間(無越界值、無 NaN/Inf)
  • DTMC/CTMC:經驗穩態分布收斂至解析者(於預期蒙地卡羅誤差內)
  • SDE:折半 dt 不對結果產生質性變化(收斂階檢查)
  • MCMC:R-hat < 1.01、ESS > 400、Geweke z 分數於 [-2, 2] 內
  • 信賴區間寬度依 1/sqrt(n_paths) 比例縮小(中央極限定理)
  • 變異數縮減技巧產生 VRF > 1(估計改善而非惡化)
  • 可重現性:同種子重跑產生相同結果

常見陷阱

  • MCMC burn-in 不足:自不良初始狀態起需長 burn-in 樣本方能代表目標分布。永遠檢查追蹤圖並用收斂診斷,而非猜 burn-in 長。
  • 僵硬 SDE 之 Euler-Maruyama 不穩:若漂移項梯度大,顯式 Euler-Maruyama 可能發散。轉隱式方法或用適應步長。
  • 混淆 SDE 之強弱收斂:強收斂衡量逐路徑誤差(對個別軌跡重要);弱收斂衡量分布誤差(對期望足夠)。Euler-Maruyama 弱階為 1.0 但強階為 0.5。
  • 偽隨機數生成器品質:對極長模擬,低品質 RNG 可能產相關樣本。用經充分測試之生成器(Mersenne Twister、PCG 或 Xoshiro)並驗獨立性。
  • 忽略 MCMC 自相關:將自相關 MCMC 樣本當獨立會低估不確定性。永遠用有效樣本數,非原始樣本數,計算標準誤。
  • 對非單調函式用對偶變數:對偶取樣僅當被估量為底層均勻變數之單調函式時縮減變異數。對非單調函式可能增變異數。
  • 大規模模擬之記憶體:儲存多長路徑之所有時步可能耗盡記憶體。當完整軌跡非視覺化所需時,用線上統計(走動均值、變異數)。

相關技能

Repositorio GitHub

pjt222/agent-almanac
Ruta: i18n/wenyan-lite/skills/simulate-stochastic-process
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Habilidades relacionadas

content-collections

Meta

Esta habilidad proporciona una configuración probada en producción para Content Collections, una herramienta centrada en TypeScript que transforma archivos Markdown/MDX en colecciones de datos con tipado seguro mediante validación Zod. Úsala al construir blogs, sitios de documentación o aplicaciones Vite + React con mucho contenido para garantizar seguridad de tipos y validación automática de contenido. Abarca todo, desde la configuración del plugin de Vite y compilación MDX hasta la optimización de despliegue y validación de esquemas.

Ver habilidad

polymarket

Meta

Esta habilidad permite a los desarrolladores crear aplicaciones con la plataforma de mercados de predicción Polymarket, incluyendo la integración de API para operaciones y datos de mercado. También proporciona transmisión de datos en tiempo real a través de WebSocket para monitorear operaciones en vivo y actividad del mercado. Úsela para implementar estrategias de trading o crear herramientas que procesen actualizaciones de mercado en tiempo real.

Ver habilidad

creating-opencode-plugins

Meta

Esta habilidad ayuda a los desarrolladores a crear complementos de OpenCode que se conectan a más de 25 tipos de eventos, como comandos, archivos y operaciones LSP. Proporciona la estructura del complemento, las especificaciones de la API de eventos y los patrones de implementación para módulos en JavaScript/TypeScript. Úsala cuando necesites interceptar, monitorear o extender el ciclo de vida del asistente de IA de OpenCode con lógica personalizada basada en eventos.

Ver habilidad

sglang

Meta

SGLang es un framework de alto rendimiento para el servicio de LLM que se especializa en generación rápida y estructurada para JSON, expresiones regulares y flujos de trabajo de agentes utilizando su caché de prefijos RadixAttention. Ofrece una inferencia significativamente más rápida, especialmente para tareas con prefijos repetidos, lo que lo hace ideal para salidas complejas y estructuradas, y conversaciones multiturno. Elige SGLang sobre alternativas como vLLM cuando necesites decodificación restringida o estés construyendo aplicaciones con uso extensivo de prefijos compartidos.

Ver habilidad