executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
simulate-stochastic-process模拟随机过程(马尔可夫链、随机游走、随机微分方程、MCMC),包括收敛诊断、方差 缩减和可视化。适用于生成用于估计、预测或可视化的样本路径;当解析解不可得时; 运行需要收敛保证的蒙特卡洛估计;对比解析结果与经验模拟进行验证;或通过 MCMC 从复杂后验分布中采样时。
Independent GitHub snapshot · Automated classification · Original documentation governs
模拟随机过程的样本路径——包括离散马尔可夫链、连续时间过程、随机微分方程和 MCMC 采样器——并进行收敛诊断、方差缩减技术和轨迹可视化。
| 输入 | 类型 | 描述 |
|---|---|---|
process_type | string | 过程类型:"dtmc"、"ctmc"、"random_walk"、"brownian_motion"、"sde"、"mcmc" |
parameters | dict | 过程特定参数(转移矩阵、漂移/扩散系数、目标密度等) |
n_paths | integer | 独立样本路径数量 |
n_steps | integer | 每条路径的时间步数(或 MCMC 总迭代数) |
| 输入 | 类型 | 默认值 | 描述 |
|---|---|---|---|
initial_state | scalar/vector | 过程特定 | 每条路径的起始状态或分布 |
dt | float | 0.01 | 连续时间离散化的时间步长 |
seed | integer | random | 用于可重复性的随机种子 |
burn_in | integer | n_steps / 10 | 要丢弃的初始步数(MCMC) |
thinning | integer | 1 | 保留每第 k 个样本以减少自相关 |
variance_reduction | string | "none" | 方法:"none"、"antithetic"、"stratified"、"control_variate" |
target_function | callable | none | 沿路径评估的用于蒙特卡洛估计的函数 |
1.1. 识别过程类型并收集所有必需参数:
P 和状态空间。验证 P 是行随机的。Q。验证行和为 0 且非对角线元素非负。{-1, +1} 等概率),边界(如有)。mu,波动率 sigma,维度 d。a(x,t),扩散函数 b(x,t)。1.2. 验证参数一致性:
1.3. 设置随机种子以确保可重复性。
预期结果: 一个完全指定的随机模型,参数已验证,随机状态可重复。
失败处理: 如果参数不一致(例如非随机矩阵),在继续之前修正。如果 SDE 系数具有病理性,考虑使用不同的离散化方案。
2.1. 根据过程类型选择适当的算法:
| 过程 | 方法 | 关键性质 |
|---|---|---|
| DTMC | 从转移行直接采样 | 精确 |
| CTMC | Gillespie 算法 (SSA) | 精确,事件驱动 |
| CTMC(近似) | Tau-leaping | 近似,高速率时更快 |
| 随机游走 | 直接采样增量 | 精确 |
| 布朗运动 | 高斯增量的累积和 | 固定 dt 时精确 |
| SDE(一般) | Euler-Maruyama | 强收敛 0.5 阶,弱收敛 1.0 阶 |
| SDE(高阶) | Milstein | 强收敛 1.0 阶(标量噪声) |
| SDE(刚性) | 隐式 Euler-Maruyama | 刚性漂移稳定 |
| MCMC(一般) | Metropolis-Hastings | 渐近精确 |
| MCMC(梯度) | Hamilton 蒙特卡洛 (HMC) | 高维混合更好 |
| MCMC(条件) | Gibbs 采样器 | 条件分布可得时精确 |
2.2. 对于 SDE 方法,选择足够小的 dt 以确保数值稳定性。一个有用的启发式方法:从 dt = 0.01 开始,减半直到结果稳定。
2.3. 对于 MCMC,调整提议尺度以达到大约以下接受率:
2.4. 如果请求方差缩减,进行配置:
Z 的路径,同时模拟 -Z。预期结果: 选定的模拟算法匹配过程类型,具有适当的调参。
失败处理: 如果所选方法不稳定(例如 Euler-Maruyama 发散),切换到隐式方法或减小 dt。
3.1. 为 n_paths 条轨迹分配存储,每条长度为 n_steps(或对事件驱动方法如 Gillespie 动态分配)。
3.2. 对每条路径 i = 1, ..., n_paths:
DTMC / 随机游走:
x[0] = initial_statet = 1, ..., n_steps:根据 x[t-1] 从转移分布中采样 x[t]CTMC (Gillespie):
x[0] = initial_state,time = 0time < T_max 时:
lambda = -Q[x, x]tau ~ Exp(lambda)Q[x, j] / lambda(j != x)采样下一状态time += tau,记录转移SDE (Euler-Maruyama):
x[0] = initial_statet = 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) * dWMCMC (Metropolis-Hastings):
x[0] = initial_statet = 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. 报告汇总表:
| 诊断指标 | 值 | 阈值 | 状态 |
|---|---|---|---|
| R-hat(最大) | ... | < 1.01 | ... |
| ESS(最小) | ... | > 400 | ... |
| Geweke z(最大绝对值) | ... | < 2.0 | ... |
| 接受率 | ... | 0.15-0.50 | ... |
预期结果: 所有收敛诊断通过其阈值。轨迹图显示稳定、良好混合的链。
失败处理: 如果 R-hat > 1.1,运行更长的链或改进提议。如果 ESS 非常低,增加稀疏化或切换到更好的采样器(例如 HMC)。如果 Geweke 失败,延长预热期。
5.1. 对每个感兴趣的量(状态占用、函数期望、命中时间):
SE = SD / sqrt(ESS)。5.2. 构造置信区间:
estimate +/- z_{alpha/2} * SE5.3. 如果应用了方差缩减,计算方差缩减因子:
VRF = Var(朴素估计量) / Var(缩减估计量)5.4. 对蒙特卡洛积分估计:
5.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),用于文档记录。
预期结果: 出版质量的图形,展示轨迹行为、分布收敛和诊断摘要。解析解(如可用)与经验结果匹配。
失败处理: 如果可视化揭示了模型未预期的非平稳性或多模态,回到第 1-2 步检查参数或方法错误。如果图形杂乱,减少显示的路径数量或增加图形尺寸。
dt 减半不会定性地改变结果(收敛阶检查)1/sqrt(n_paths) 比例减小(中心极限定理)