인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
디자인 및 창작 · SKILL.md

simulate-stochastic-process

simulate-stochastic-process

Simulate stochastic processes (Markov chains, random walks, SDEs, MCMC) with convergence diagnostics, variance reduction, and visualization. Use when generating sample paths for estimation, prediction, or visualization; when analytical solutions are intractable; running Monte Carlo estimation needing convergence guarantees; validating analytical results aga…

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: simulate-stochastic-process locale: wenyan source_locale: en source_commit: 82c77053 fence_basis_commit: 82c77053 translator: "Julius Brussee homage — caveman" translation_date: "2026-05-03" description: > Simulate stochastic processes (Markov chains, random walks, SDEs, MCMC) with convergence diagnostics, variance reduction, and visualization. Use when generating sample paths for estimation, prediction, or visualization; when analytical solutions are intractable; running Monte Carlo estimation needing convergence guarantees; validating analytical results against empirical simulation; or sampling from complex posteriors via MCMC. license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: stochastic-processes complexity: advanced language: multi tags: stochastic, simulation, mcmc, convergence, monte-carlo

仿隨機之程

仿隨機程之樣徑——含離散馬可夫鏈、續時程、隨機微分方程、MCMC 之取樣——並收斂之察、減方之術、徑之繪。

用時

  • 須生樣徑以估、預、繪乃用
  • 解析不可解,仿為唯可行之途乃用
  • 行蒙特卡羅之估而須收斂之保與不確之量乃用
  • 欲驗解析之果(穩態分布、擊中時)於實仿乃用
  • 須以 MCMC 取樣於繁後驗乃用
  • 全析前先試隨機之模乃用

入

必要

InputTypeDescription
process_typestring程之類:"dtmc"、"ctmc"、"random_walk"、"brownian_motion"、"sde"、"mcmc"
parametersdict程特之參(轉移矩、漂/散係、目密度等)
n_pathsinteger獨樣徑之數
n_stepsinteger各徑之步數(或 MCMC 全迭數)

可選

InputTypeDefaultDescription
initial_statescalar/vectorprocess-specific各徑之始態或始分布
dtfloat0.01續時離散之時步
seedintegerrandom隨種以可復
burn_inintegern_steps / 10棄之初步數(MCMC)
thinninginteger1每 k 取一以減自相關
variance_reductionstring"none"法:"none"、"antithetic"、"stratified"、"control_variate"
target_functioncallablenone沿徑求蒙特卡羅估之函

法

第一步:定程之模與參

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_state、time = 0
  • 當 time < T_max:
    • 算總率 lambda = -Q[x, x]
    • 取持時 tau ~ Exp(lambda)
    • 自轉移概 Q[x, j] / lambda 為 j != x 取下態
    • 更 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 取一。

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 與稀化後)。
  • 以 ESS 算標誤: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_paths 或 n_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 方代目分布。常觀跡圖而用收斂察,勿猜其長。
  • Euler-Maruyama 為剛 SDE 不穩:若漂項梯度大,顯式 Euler-Maruyama 散。轉隱法或用適步。
  • 強弱收斂之惑於 SDE:強收斂量徑誤(要於個軌);弱收斂量分布誤(足於期)。Euler-Maruyama 弱階一,強階半。
  • 偽隨數之質:甚長仿中,劣 RNG 生相關樣。用驗之器(Mersenne Twister、PCG、Xoshiro)而驗其獨立。
  • 忽 MCMC 之自相關:以自相 MCMC 樣為獨低估不確。用有效樣本數,非生樣本之數,為標誤。
  • 對偶為非單調函:對偶取樣唯估為底均勻之單調函時減方。為非單調,反增方。
  • 大仿之憶:存多長徑之諸時步耗憶。若全軌不為繪所須,用線上計(行均、行方)。

參

저장한 Skills