如何根据 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) 过程。
我正在尝试 运行 像这样使用 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) 过程。