我得到了均值和方差。我需要根据给定的变量产生确定性的随机游动。这些是时间序列数据的预期属性:
我尝试了以下方法,
steps = np.random.normal(loc=0, scale=5.034, size=1000) #std =5.304
steps[0]=0
P = 27.50 + np.cumsum(steps) #mean =27.5
plt.plot(P)
plt.title("Simulated Random Walk")
plt.show()
哪个生产
答案 0 :(得分:0)
让我们考虑可能值的数量为n。您的函数返回一个自然数,0 <= i i = t mod n 现在,获取第i个可能的值。您需要将最小偏移量(1000)添加到结果中并获取第i个数字。 编辑: 如果您知道最小数量为1000,而第i个元素与第(i +1)个元素之间的间隔正好是k(正态分布),则使用的公式将为 结果= 1000 + i * k
答案 1 :(得分:0)
使用标准库,您可以每次为随机函数添加相同的值,从而使序列具有确定性。我提供了一个说明原理的示例。
import random
seed = 'pseudo-random' # Can be anything
random.seed(a=seed, version=2) # Use the same seed every time
float_list = [] # List to contain a small sample of values
mean = 27.57020098
dev = 5.106888439
for x in range(20):
value = random.gauss(mean, dev)
if value > 43.92: value = 43.92 # Limit max value
if value < 0: value = 0 # Limit min value
float_list.append('{:.3f}'.format(value))
print(float_list)
我不知道np是否允许这种每次使用相同种子的方式。