具有分布均值和标准差的实时时间序列

Live time series with mean and standrad deviation of the distribution

让我们假设一个循环如下:

import numpy as np

ax = []; ay = []
for n in range(N):
    avgC = np.zeros(M)
    for m in range(M):
        ...
        Cost = aFuncation
        avgC[m] = Cost

    ax.append(n); ay.append(np.mean(avgC))

我想使用 axay 绘制实时时间序列,显示 np.mean(avgC) 如何在 n 的不同迭代中演变。同时,我想根据 avgC 绘制分布的标准偏差(如下图所示)。

首先,您应该考虑术语“置信区间”在您的案例中的实际含义。要构造置信区间,您必须指定构造置信区间的数量,并且您应该提供更多背景信息,说明这些值在您的案例中是如何分布的。我现在假设您的“成本”值是正态分布的,并且您希望在每个点 n 处绘制分布的均值和标准差。请注意,这是 而不是 平均值的置信区间。如果您对此不确定,您可能应该编辑您的问题并包含有关调查统计属性的更多详细信息。

也就是说,使用这段代码,您可以绘制每个点的均值和标准差带 n:

import numpy as np
import matplotlib.pyplot as plt

N = 25
M = 10

def aFuncation(x):
    return np.random.normal(100*np.exp(-x), 10.0)

ax = np.zeros(N)
ay = np.zeros(N)
astd = np.zeros(N)

for n in range(N):
    avgC = np.zeros(M)
    for m in range(M):
        Cost = aFuncation(n)
        avgC[m] = Cost

    ax[n] = n
    ay[n] = np.mean(avgC)
    astd[n] = np.std(avgC)

plt.fill_between(ax, ay-astd, ay+astd, alpha=0.3, color='black')
plt.plot(ax,ay,color='red')

plt.show()