Python 给定序列的均值和方差,如何生成具有确定性随机游动和漂移的时间序列数据?
我得到了均值和方差。我需要从给定的变量中产生一个确定性随机游动。以下是时间序列数据的预期属性:Python 给定序列的均值和方差,如何生成具有确定性随机游动和漂移的时间序列数据?,python,time-series,random-walk,Python,Time Series,Random Walk,我得到了均值和方差。我需要从给定的变量中产生一个确定性随机游动。以下是时间序列数据的预期属性: 平均数:27.57020098 中位数:27.815 标准偏差:5.106888439 差异:26.08030952 最高:43.92 最低:0 范围:43.92 我试过以下方法 steps = np.random.normal(loc=0, scale=5.034, size=1000) #std =5.304 steps[0]=0 P = 27.50 + np.cumsum
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()
产生,
让我们考虑可能值的个数N。您的函数返回一个自然数,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)
随机导入
seed=‘伪随机’可以是任何东西
随机种子(a=种子,版本=2)#每次使用相同的种子
float_list=[]#list包含一个小样本值
平均数=27.57020098
dev=5.106888439
对于范围(20)内的x:
值=随机高斯(平均值,偏差)
如果值>43.92:值=43.92#限制最大值
如果值<0:value=0#限制最小值
float_list.append(“{.3f}.”格式(值))
打印(浮动列表)
我不知道np是否允许这种每次使用相同种子的方式 你试过什么?这不应该是一项复杂的任务,发布您的代码以及您在哪里挣扎,我们将提供帮助:)您如何能够进行确定性随机行走?确定性和随机性是对立的,不是吗o@figbeam确定性随机性是一种功能,如果您知道输入是什么,您可以推断输出将是什么,但对用户来说似乎是随机的。例如,通过返回函数被调用时的时间戳的毫秒值,可以将数字从1随机化到1000。如果你知道算法和输入,你会立即知道输出,但是如果你是一个不知道算法的临时用户,那么结果对你来说是随机的。非常感谢你的回复。是的,我知道这些是相反的,但是,我必须用给定的参数生成假时间序列数据。我也尝试过几何布朗运动和布朗运动,但无法得到确定的结果。@Lajos Arpad:Ahhh…,我明白了。在我的领域,我们称之为“伪随机”。我编写了代码,但无法获得确定性值。这些值必须在给定范围内(在问题中,介于0和43.92之间)。但是,这不是随机游动,因为这些值不依赖于以前的值。啊,是的;这就是为什么我称之为“原则的说明”。谷歌为如何编码一个随机游走,然后饲料的程序随机值根据上述原则。哦!知道了。这就像剪切值一样。