我有 2 CDF 并且必须找到最大逐点距离。我创建了直方图并绘制了两者。这些值由一个随机函数生成,该函数将两个随机数 1-6 相加 100 次,类似于两个骰子。但是,我无法找到绘图上两条线之间的最大距离。

因此,在第一次运行时,我有一个包含 100 个观察值的列表 dicesum=: {1: 5, 2: 8, 3: 7, ...., 100:4}

1 到 100 是旋转次数,右侧是总和。使用此代码,我生成了直方图:

keys,values = zip(*dicesum.items())
plt.hist(values, bins=30)
plt.gca().set(title='Frequency Histogram', ylabel='Frequency');
plt.show()

直方图:
python - 计算两个 CDF 的最大逐点距离-LMLPHP

现在我使用以下代码绘制 CDF:
x = np.sort(values)
y = np.arange(1, len(x)+1/float(len(x)))
plt.plot(x, y, color='b')
plt.xlabel('Sum')
plt.ylabel('CDF')
plt.show()

CDF plot

现在,在同一图中绘制 2 个观测值以查看它们的差异:

python - 计算两个 CDF 的最大逐点距离-LMLPHP

现在我想获得它们的最大距离,因此在哪一点上它们彼此相距最远。

最佳答案

为了测量您的标准中描述的两个此类 CDF 图之间的距离,您可以使用 Kolmogorov–Smirnov 测试来确定两个分布之间的相等性。或者您可以使用两个 CDF 的最大逐点距离。我认为这可能会有所帮助。

关于python - 计算两个 CDF 的最大逐点距离,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59339359/

10-12 17:34