gpt4 book ai didi

python - 向量化方程

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:35 25 4
gpt4 key购买 nike

我正在寻求完全矢量化我拥有的一个模型,该模型用于均值回归波动过程,也就是 Ornstein–Uhlenbeck 过程。

我已经按照这里的代码进行操作:http://nakamuraseminars.org/nsblog/2014/06/21/monte-carlo-in-python-an-example/它有一个相似但不同的等式。

import pandas as pd
import numpy as np
def OU_estimation(M=100000, N=25, T=25, sigma=.1, mu=1, lambda_est=1, S0=1):
dt = T/N # simulation time step
S = np.zeros((M,N+1))
S[:,0] = S0
for n in range(N):
#Partially vectorized
eps = np.random.normal(0, 1, (M))
S[:,n+1] = S[:,n] + lambda_est*(mu - S[:,n])*dt + sigma*eps
df = pd.DataFrame(S)
return df

由于代码目前是部分向量化的,它会迭代所采取的步数,已经非常快了。我正在寻找它是否可以完全矢量化为更多的学习体验

最佳答案

如果你只计算最后一列,你可以用向量化的方式来做:

def OU_lastcol(M=100000, N=25, T=25, sigma=.1, mu=1, lambda_est=1, S0=1):
dt = T/N
c = (1-lambda_est*dt)
cv = c**np.arange(N)[::-1]
R = np.random.normal(lambda_est*mu*dt, sigma, (M,N))
SN = np.dot(R, cv) + S0*c**N
return SN

这并不比使用默认参数的循环代码执行得快多少,因此您可以说在这种情况下使用循环对性能几乎没有损害。但是对于 NM 大得多的情况,循环开销开始显示..

关于python - 向量化方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24973961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com