You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyMC3中如何创建多个随机游走变量?

在PyMC3中创建多个高斯随机游走的正确姿势

没错,你完全想对了!当你在pm.GaussianRandomWalk里设置shape=(20,100)时,PyMC3会生成20个独立的、长度为100的高斯随机游走实例,数组的每一行正好对应一个完整的随机游走序列。

验证维度确认结果

你可以通过抽样后查看结果的形状来直观验证:

import pymc3 as pm
import arviz as az

with pm.Model() as model:
    z = pm.GaussianRandomWalk('z', mu=0, sd=1, shape=(20,100))
    # 执行抽样并返回ArviZ格式的结果
    trace = pm.sample(1000, return_inferencedata=True)

# 打印后验结果的形状
print(trace.posterior.z.shape)

输出会是类似(2, 1000, 20, 100)的结果:

  • 第一个维度是默认的抽样链数(2条链)
  • 第二个维度是每条链的抽样次数
  • 第三个维度就是你需要的20个随机游走实例
  • 第四个维度是每个游走包含的100个时间步

小技巧:单独访问某个随机游走

如果后续需要提取特定的随机游走(比如第3个,注意Python是0索引),可以用索引操作快速定位:

# 获取所有抽样中第3个随机游走的全部时间步数据
third_walk = trace.posterior.z[..., 2, :]

关于“整合为单个变量”

其实你当前的写法已经把20个游走整合到了一个变量z中,它是一个结构化的张量,后续分析时可以轻松按维度做批量操作——比如计算所有游走的时间步均值,或者对每个游走单独做统计检验,完全不需要额外拆分。

内容的提问来源于stack exchange,提问作者Booley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:08:21