【发布时间】:2014-09-26 08:20:55
【问题描述】:
我正在做一些物理学研究,为此我需要使用马尔可夫链蒙特卡罗 (MCMC) 分析一些数据。我试着自己写一个,但是当 python/numpy 将一个非常非常小的数字四舍五入为零时,我不断遇到错误。特别是当我需要做类似numpy.exp(-1000) 的事情时。这个表达式本身是一个更大的数学方程的一部分,所以我不能只记录它。
我知道有可用于 python 的 MCMC 模块,我已经查看了其中的一些模块,但在理解文档以应用它们时遇到了困难。有人可以推荐一个吗?我拥有的是插入概率分布的一列数据。这个分布还有另外两个变量,我将对其进行随机游走并记录马尔可夫链中的每一步。然后,我需要根据马尔可夫链为这两个变量中的每一个制作一个直方图。如果这个问题太模糊,我很抱歉。非常感谢任何想法或建议,谢谢!
【问题讨论】:
-
您到底是如何计算出某些内容被舍入为 0 的?您是否尝试将 numpy 数字类型的精度提高到 64 位?
-
我知道它正在向下舍入为 0,因为我收到错误:RuntimeWarning: 除以零在日志中遇到。我正在尝试做类似 np.log(np.exp(-2000)) 的事情。我已经尝试过 np.float128() 方法,但我传递了一个数字数组,而 float 128 一次只能做一个。
-
你可以只处理概率的日志吗?
标签: python numpy montecarlo markov-chains