问题标签 [pymc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Windows 上的 PyMC 安装错误
我很难在 Windows 上安装 pymc。我愿意
但它给出了错误
但是,我在 MinGW 中安装了 gFortran 编译器。我是否必须更改环境变量或其他东西?
谢谢,
python - pymc.NormApprox 意外行为 - 无法看到 mu 和 C 以及命名空间的 nuking
我是 pymc 的新手并且很享受它,但遇到了一些非常奇怪的行为。我想用它来追踪移动的东西;按照教程,我设置了一些随机指标并尝试使用pymc.NormApprox()
它。fit()
似乎可以运行,但是当我尝试输出输出时,它给了我KeyError
。当我切换到使用pymc.MCMC
它时,它会运行 `sample() OK,但随后会破坏命名空间(Python 甚至忘记了如何退出())。
系统:Ubuntu 12.04,scipy numpy等安装,pymc通过easy_install安装;也从 git 尝试过。
重现代码:test.py::
然后,在 shell 中运行 python 或 ipython::
我期望看到的:
foo.mu[foo.x]
应该给我后部的正常近似值;我不应该收到 Key 错误,也不应该闯入foo._mu
相反,我得到:
我还注意到文档字符串foo.mu
说N.mu(p1,p2)
但在线文档说N.mu[N.p1,N.p2]
。
至于后 MCMC 命名空间崩溃,它甚至忘记了如何退出()
此外,我可以确认我在运行不同安装(Enthought Python)的不同机器(MacBook Pro)上遇到了同样的问题。
python - PyMC:非平稳噪声中的多元估计
是否有可能将 pymc 用于以下任务:信号是我要估计的两个变量的非线性函数,噪声是非平稳的,在不同的时刻相关?噪声的分布是具有零均值和随时间变化的协变函数的高斯分布。信号是确定性的。
我是 pymc 的新手,不知道在这种情况下如何构造适当的似然函数。
将不胜感激任何建议。
python - 使用 enpkg 在 Canopy EPD 中免费安装 pymc
我正在尝试在 enpkg 中安装 pymc,但遇到了障碍。什么是下一个步骤?
这是我的狂欢:
python - PyMC 中的动态(基于 ODE)模型
我是 PyMC ( https://github.com/pymc-devs/pymc ) 的初学者,我正在尝试构建一个带有动态组件的模型,基本上每次模型都是求解一个小型常微分方程 (ODE) 系统叫。
我尽我所能搜索了谷歌和(已弃用的)PyMC 邮件列表,并在此处提出了模型结构(pk_model.py)和调用者(pk_fit.py):
https://gist.github.com/gyromagnetic/6097271
运行 pk_fit 一开始似乎可以工作,但随后会转储许多与 ODE 求解器相关的错误消息。ODE 和求解器的独立版本(未与 PyMC 代码集成)可以正常工作。
放入各种打印语句,看起来代码开始工作,但在某些时候,未知参数参数(kcp,kpc,ke)从标量变为 numpy.ndarrays。这似乎是问题的一部分。
作为 PyMC 的新手,我希望我做的事情显然是错误的。
我将不胜感激任何帮助。
python - 具有未知 alpha 的 PyMC Pareto + Normal 对于非常小的噪声不会收敛
我正在尝试使用 pymc 来解决一个简单的模型:
我有 N=1000 个通量,我知道这些通量来自帕累托分布:通量 ~ Pareto(alpha, 1)
我正在尝试计算 Pareto 的 alpha 参数: alpha ~ Uniform(1, 3)
我的通量测量值被高斯噪声污染:flux_meas ~ Gaussian(flux, tau)
目前,我只是试图模拟如果我改变噪音量会发生什么。
问题是,当我以非常小的(即可忽略的)噪声量运行模型时,每次运行时 alpha 的平均值都会发生根本变化,并且似乎与 alpha 的真实值根本无关。但是,如果我完全忽略高斯噪声,并说我只是直接观察帕累托分布,它会按预期工作。
我究竟做错了什么?
一个工作代码片段在这里:(一个更复杂,更旧的代码片段在这里)
关键位如下:
python - 从 MCMC 采样器输出中找到最可能的值
我对 PyMC 比较陌生,我有一个关于 MCMC 采样器输出的快速问题。我希望找到 MCMC 采样器发现的变量的最可能值(后验的最大值)。有没有快速的方法来做到这一点?据推测,MCMC 采样器发现的后验最大值处的变量值可能与 PyMC 的 MAP 方法发现的变量值大不相同。
感谢开发者提供 PyMC。它对我的工作非常有用。这个问题也已经发布到 PyMC google group。
pymc - 如何在 PyMC 中模拟 3 个法线的混合?
CrossValidated 上有一个关于如何使用 PyMC 将两个正态分布拟合到数据的问题。Cam.Davidson.Pilon的答案是使用伯努利分布将数据分配给两个法线之一:
现在我的问题是:如何处理三个法线?
基本上,问题是您不能再使用伯努利分布和 1-伯努利分布。但是那怎么办呢?
编辑:根据 CDP 的建议,我编写了以下代码:
具有以下采样过程的迹线看起来也不错。解决了!
mcmc - 使用 PyMC 拟合 3 个法线:简单数据的错误收敛
我编写了一个 PyMC 模型,用于使用(类似于这个问题中的那个)将 3 个法线拟合到数据中。
我从中采样数据的分布明显重叠,但有 3 个明显不同的峰(见下图)。将 3 个法线拟合到此类数据应该是微不足道的,我希望它能够在 99% 的 MCMC 运行中产生我从 (-10, 0, 10) 采样的平均值。 我期望的结果示例。这发生在十分之二的案例中。 10 个案例中有 6 个发生意外结果的示例。这很奇怪,因为在 -5 上,数据中没有峰值,所以我不能真正达到采样可能陷入的严重局部最小值(从 (-5,-5) 到 (-6,-4)应该提高合身性,等等)。
(自适应 Metropolis)MCMC 采样在大多数情况下卡住的原因可能是什么?有哪些可能的方法来改进它没有的抽样程序?
所以运行确实收敛,但并没有真正探索正确的范围。
更新: 使用不同的先验,我在 5/10 中得到正确的收敛(大约第一张图片),在另一个 5/10 中得到错误的收敛(大约第二张图片)。基本上,更改的行是下面的行,并删除了 AdaptiveMetropolis 步骤方法:
pymc - PyMC 错误:hasattr():属性名称必须是字符串
我在 PyMC 中对模型进行推理时遇到问题。我正在尝试在一个相当复杂的模型上运行 MCMC,但我遇到了一个错误
我在这段代码的最后一行得到了这个(抱歉,这很复杂,但我真的不确定问题可能出在哪里)。
任何帮助将非常感激。PyMC 上很少有好的教程。我正在关注 Cameron Davidson-Pilon 的优秀书籍,但到目前为止,我在其中找不到任何关于为什么这可能会给我这个错误的信息。
再次感谢。
回应 Cam.Davidson.Pilon :
该模型描述了小群体中的麻疹。重要的因素是人口规模小于麻疹的携带能力,因此麻疹不是一直流行,而是在每次流行后都灭绝了。然后通过移民重新引入,并在发生流行病时通过该国城市之间的国家级迁移重新引入。
背景是冰岛,1900 - 1964 年(预防接种)。我们假设麻疹可以通过泊松过程从海外(Y 变量)以 lambda 率输入,或者从冰岛的其他城市(X)以一定的延迟(d)输入。X 是观察的,每月采样一次,如果当月有流行病,则为 1,否则为 0。
每个城市 i 都有 X_i 和 Y_i。我们假设 X_i 的值是伯努利分布的,流行病的概率 p_i 是该特定城市的移民的函数,重要性为 alpha_i,如果其他城市有流行病,也是从其他城市迁移的函数( X_j, j =/= i ),具有系数 beta_ij 以及噪声 epsilon 的背景水平,它表示麻疹病例可能来自何处的不确定性。我们还强加了不应期增量,以允许城市中的易感个体重生。
我不确定的事情:
- epsilon 可能不是必需的和/或一件好事
- 我想施加约束 alpha_i + sum_j beta_ij, i =/= j, 小于 1
- 我希望增量以指数形式分布更多,但显然是离散的,因为我们只有月度数据
- 刚刚发现 d 需要是 DiscreteUniform
- 当我将 X_j 传递给确定 p_i 时,我可能会对其进行平滑处理以允许时间抖动,可能只是使用带有汉宁窗的卷积
我认为这涵盖了正在发生的事情。如果有任何不清楚的地方,请告诉我!同样,欢迎任何意见。
再次感谢,
昆汀