如何根据 Python 中的先前数字生成伪随机数

How to generate a pseudo random number based on previous number in Python

我正在尝试 运行 像这样使用 numpy 进行 monte carlo 模拟:

from numpy import random

btcpremiummean = -2.61
btcpremiumsd = 1.63
trialsize = 1000000

for x in range(trialsize):
    btcpremium = random.normal(btcpremiummean, btcpremiumsd)
    ...

我从回溯测试中得出了均值和标准差,并使用它们生成随机数字。

然而,尽管数据符合此正态分布,但现实生活中的 btcpremium 并不是真正随机的;相反,它通常等于或接近之前的 btcpremium。

我想不出如何更改我的代码,使 btcpremium 值符合当前使用的正态分布,同时受到以前数据的影响。

提前致谢。

您的问题是当您需要捕获 "close to the previous" 行为时,您正在生成独立的观察结果。您似乎在描述一个 autoregressive model,尤其是一个 AR(1) 过程。如果您的下一个值与 to/dependent k 个先验值相关,则它将是一个 AR(k) 过程。