【问题标题】:Stochastic calculus library in pythonpython中的随机微积分库
【发布时间】:2010-12-07 18:16:26
【问题描述】:

我正在寻找一个 python 库,它可以让我计算随机微积分的东西,比如我定义扩散的随机过程的(条件)期望。我查看了 simpy (simpy.sourceforge.net),但它似乎无法满足我的需求。

这是为了快速原型设计和实验。 在 java 中,我成功地使用了(现在不活动的)http://martingale.berlios.de/Martingale.html 库。

这个问题本身并不难,但是有很多不平凡的样板工作要做(有效的内存使用、变量减少技术等等)。

理想情况下,我可以写出这样的东西(只是说明性的):

def my_diffusion(t, dt, past_values, world, **kwargs): W1, W2 = world.correlated_brownians_pair(correlation=kwargs['rho']) X = 过去值[-1] sigma_1 = kwargs['sigma1'] sigma_2 = kwargs['sigma2'] dX = kwargs['mu'] * X * dt + sigma_1 * W1 * X * math.sqrt(dt) + sigma_2 * W2 * X * X * math.sqrt(dt) 返回 X + dX X = RandomProcess(diffusion=my_diffusion, x0 = 1.0) 打印 X.expectancy(T=252, dt = 1./252., N_simul= 50000, world=World(random_generator='sobol'), sigma1 = 0.3, sigma2 = 0.01, rho=-0.1)

除了在 numpy 中重新实现它之外,还有其他人知道吗?

【问题讨论】:

  • 注意:这是非常有趣的材料,但不幸的是它似乎不包括依赖路径/时间的进程:pymc.googlecode.com/svn/doc/index.html)
  • 以做这样的事情为生,我可以向您保证,如果您使用准随机数(例如 Sobol 序列),您可以处理琐碎的代码(即没有方差减少技术)。跨度>
  • 我也是以此为生(也在巴黎)!除了减少估计方差之外,在模拟底层证券时能够重用相同的图纸可能非常有用。 sobol 序列也有其缺点。但当然,问题是关于实验,而不是生产代码。
  • 我知道 R 中有一些库对你有用

标签: python random simulation stochastic-process


【解决方案1】:

您可以使用 StochPy(Python 中的随机建模)

https://pypi.python.org/pypi/StochPy

【讨论】:

    【解决方案2】:

    我在 Python 中看到的最接近这一点的是 PyMC - 各种马尔可夫链蒙特卡罗算法的实现。

    【讨论】:

      【解决方案3】:

      我正在研究一个随机过程(包括扩散过程和一些调节)python 库。查看this link 到 google-project 主页。干杯!

      【讨论】:

      • 我认为这更适合作为评论。
      【解决方案4】:

      你看过sage吗?

      【讨论】:

      • 我在Sage中没有找到随机模拟包。
      【解决方案5】:

      我知道有人使用Sundials 来解决随机 ODE/PDE 问题,但我对该库的了解还不够,无法确定它是否适合您的情况。它有 python 绑定here

      【讨论】:

      • 这是一个 PDE 求解器,而不是 MC 工具。我希望我可以将所有问题转换为低维 PDE……现在,我只想研究一些模型的外观和感觉(例如轨迹是什么样的)
      猜你喜欢
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 2016-05-18
      • 1970-01-01
      相关资源
      最近更新 更多