我从numpy.histogram得到了一组直方图:
probas, years = zip(*[np.histogram(r, bins= bin_values) for r in results])
results是形状的数组(9, 10000)
。bin值是从2029
和2066
开始的年份。 probas
数组具有形状(9,37)
和years
数组(9,38)
。因此years[:,:-1]
的形状为(9,37)
。
我可以使用以下方法获取累积直方图数据:
probas = np.cumsum(probas, axis=1)
然后我可以将其标准化为[0,1]:
probas = np.asarray(probas)
probas = probas/np.max(probas, axis = 0)
然后我尝试使用scipy内插该累积分布:
inverse_pdfs = [scipy.interpolate.interp1d(probas[i], years[i,:-1]) for i in range(probas.shape[0])]
当我使用以下命令将数据集的第三条直方图绘制为plt.plot()
并从inverse_pdfs
绘制时:
i = 2
plt.plot(years[i,:-1], probas[i], color="orange")
probability_range = np.arange(0.,1.01,0.01)
plt.plot([inverse_pdfs[i](p) for p in probability_range], probability_range, color="blue")
我获得:
如您所见,在2042年之后的大多数年中,这场比赛的表现都不错,但在此之前非常糟糕。
任何有关如何改善匹配度或问题出处的建议都将受到欢迎。
有关信息,用于在第三个直方图上训练插值器的数据是:
years[2,:-1]: [2029. 2030. 2031. 2032. 2033. 2034. 2035. 2036. 2037. 2038. 2039. 2040.
2041. 2042. 2043. 2044. 2045. 2046. 2047. 2048. 2049. 2050. 2051. 2052.
2053. 2054. 2055. 2056. 2057. 2058. 2059. 2060. 2061. 2062. 2063. 2064.
2065.]
probas[2]:[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0.0916 0.2968 0.4888 0.6666 0.8335 0.9683 1.
1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
1. 1. 1. 1. 1. 1. 1. ]