PyMC:马尔可夫系统中的参数估计

2024-05-10

简单的马尔可夫链

假设我们想要估计系统的参数,以便我们可以在给定时间步 t 的状态的情况下预测系统在时间步 t+1 的状态。 PyMC 应该能够轻松处理这个问题。

让我们的玩具系统由一维世界中的移动物体组成。状态是对象的位置。我们想要估计潜在变量,即物体的速度。下一个状态取决于前一个状态和潜在变量速度。

# define the system and the data
true_vel = .2
true_pos = 0
true_positions = [.2 * step for step in range(100)]

我们假设我们的观察中有一些噪音(但这在这里并不重要)。

问题是:如何对下一个状态对当前状态的依赖关系进行建模。我可以为转换函数提供参数 idx 来访问时间 t 的位置,然后预测时间 t+1 的位置。

vel = pymc.Normal("pos", 0, 1/(.5**2))
idx = pymc.DiscreteUniform("idx", 0, 100, value=range(100), observed=True)

@pm.deterministic
def transition(positions=true_positions, vel=vel, idx=idx):
    return positions[idx] + vel

# observation with gaussian noise
obs = pymc.Normal("obs", mu=transition, tau=1/(.5**2))

但是,索引似乎是一个不适合索引的数组。可能有更好的方法来访问以前的状态。


最简单的方法是生成一个列表,并让 PyMC 将其作为容器来处理。有一个相关的PyMC wiki 上的示例 https://github.com/pymc-devs/pymc/wiki/Surplus。这是相关的片段:

# Lognormal distribution of P's
Pmean0 = 0.
P_0 = Lognormal('P_0', mu=Pmean0, tau=isigma2, trace=False, value=P_inits[0])
P = [P_0]

# Recursive step
for i in range(1,nyears):
    Pmean = Lambda("Pmean", lambda P=P[i-1], k=k, r=r: log(max(P+r*P*(1-P)-k*catch[i-1],0.01)))
    Pi = Lognormal('P_%i'%i, mu=Pmean, tau=isigma2, value=P_inits[i], trace=False)
    P.append(Pi)

请注意当前对数正态分布的均值是如何成为上一个对数正态分布的函数的?不优雅,使用list.append等等,但您可以使用列表理解来代替。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyMC:马尔可夫系统中的参数估计 的相关文章

随机推荐

  • 如何动态且安全地设置XUL密钥?

    我正在尝试为我的引导附加组件动态创建一个关键元素 目前 我创建了一个keyset元素并将其附加到document getElementById mainKeyset parentNode with appendChild 然后创建key元素
  • 更改二维数组元素的值会更改整个列

    当我打印我的arrvalue 我得到了 2D 数组的正确值 但是当我退出 while 循环时 我的值都是错误的 我不确定我做错了什么 num runs n 4 x np linspace 1 1 n y np linspace 1 1 n
  • 从 Eclipse IDE 在 Tomcat8 中部署 Maven 项目

  • Python错误代码:IndexError:索引错误列表索引超出范围

    我正在尝试用 Python 编写一个模拟赛马的函数 虽然没有获胜者 但它会清除屏幕 显示马匹列表 所有马匹的索引都从零开始 然后 在我标记的行上 代码变得混乱 我发现索引错误列表超出范围 我正在尝试随机选择一匹马 随机选择一个索引号 并将该
  • 哪里可以下载 JSTL jar [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道 因为我尝试过的所有地方似乎都超时了 您可以下载JSTL 1 1here http archiv
  • ruby 中的 unshift + file.join

    unshift File join File dirname FILE vendor addressable 2 1 0 lib addressable uri 上面的代码是否访问具有以下路径的文件 vendor addressable 2
  • 有没有办法从函数内单击导航链接?

    基本上 我正在延迟导航 单击链接后 onClick 处理程序通过检查条件并调用另一个函数来阻止导航 如果满足特定条件 则仅该页面导航到另一个页面 那么我如何从该函数中触发 Navlink 单击 我能够通过使用解决这个问题event prev
  • 表单请求中的 Laravel 数组验证

    我无法验证 Form Request 类中包含数组元素的字段 规则方法 public function rules return state gt required state 0 gt required state gt required
  • 如何在reactjs中重新加载组件(页面的一部分)?

    我当时正在做反应项目 当我们单击重新加载按钮时 我试图重新加载组件 我实现了 onClick 函数 如下所示 但它正在重新加载整个窗口 我只想重新加载该类组件 而不是整个窗口 谁能帮我解决这个问题吗 refreshPage window l
  • 我可以限制kafka-node消费者的消费吗?

    这看起来像我的 kafka 节点消费者 var kafka require kafka node var consumer new Consumer client 在某些情况下 获取的消息数量超出了我的处理能力 有没有办法限制它 例如每秒接
  • 解决 Three.js / webGL 中的 gl_PointSize 限制

    我正在使用 Three js 创建交互式数据可视化 此可视化涉及渲染 68000 个节点 其中每个不同的节点具有不同的大小和颜色 最初我尝试通过渲染网格来实现此目的 但事实证明这非常昂贵 我当前的尝试是使用 Three js 粒子系统 每个
  • Node.js 中的 http.request 是否有默认超时?

    在 Node js 中有一个服务器的默认超时 对于传入的 HTTP 请求 120000 毫秒 2 分钟 请参阅HTTP s server timeout文档 http nodejs org api http html http server
  • 在 pandas 中,如何对日期时间列进行 groupby weekday() ?

    我想过滤掉周末数据 只查看工作日的数据 周一 0 周五 4 我是 pandas 的新手 在 pandas 中实现此目的的最佳方法是什么 import datetime from pandas import data read csv dat
  • 如何在 PHP 中对数组和数据进行排序?

    这个问题旨在作为有关 PHP 中数组排序问题的参考 人们很容易认为您的特定案例是独特的并且值得提出新问题 但大多数实际上只是此页面上的解决方案之一的微小变化 如果您的问题因与此问题重复而被关闭 请仅在您能解释为什么它与以下所有问题显着不同的
  • Pandas 时间序列数据索引从字符串到浮点[重复]

    这个问题在这里已经有答案了 有人知道如何将字符串输出转换为浮点数吗 我正在尝试创建单独的数据框 Month and day of the week 基于时间戳索引 这df index strftime输出一个字符串 但我需要一个float基
  • 在 JerseyTest 中访问 Spring beans

    我试图弄清楚如何从 JerseyTest 的子类访问 Spring bean 扩展 JerseyTest 我已经设法在测试中加载 Spring 上下文 但我还没有弄清楚如何访问 spring 上下文 我的设置如下所示 public abst
  • 只读模式下不允许写操作(FlushMode.MANUAL)

    我对Spring真的很陌生 我正在使用 JSF Hibernate Spring 开发一个简单的 JEE 应用程序 我在尝试更新 DAO 上的值时遇到一些问题 我确信问题与 Spring 配置 xml 文件有关 但我无法找出是什么 这是我的
  • fprintf 调试断言失败

    我有一个程序 如果我手动启动它 它可以正确运行 但是 如果我尝试添加注册表项以在启动过程中自动启动它 则会收到以下错误 Debug assertion failed str null fprintf c line 55 我尝试在发生任何事情
  • 将 Angular Material 与 Twitter Bootstrap 相结合,不会发生冲突

    我想将 Twitter Bootstrap 与 Angular 材料结合起来 我发现引导材料设计https github com FezVrasta bootstrap material design https github com Fe
  • PyMC:马尔可夫系统中的参数估计

    简单的马尔可夫链 假设我们想要估计系统的参数 以便我们可以在给定时间步 t 的状态的情况下预测系统在时间步 t 1 的状态 PyMC 应该能够轻松处理这个问题 让我们的玩具系统由一维世界中的移动物体组成 状态是对象的位置 我们想要估计潜在变