我有一個大型的模擬數據集,其中我已經通過了數值並且沒有進行分析。我的主要目標是獲取實際的實際記錄值,並通過累積分佈比較模擬數據。將數據中發現的元素擬合爲其累積分佈時出錯
我定義的通過數據通過冒險,有一定的價值x
和與之相匹配的「真實」數據具有相同值x
bins = np.linspace(SimData.min(),SimData.max(), 24)
def CumuProb(SimData, bins, x, realValue):
h, bins_ = np.histogram(be, bins=bins)
hcum = np.cumsum(h)/float(np.cumsum(h).max())
cbins = np.zeros(len(bins)+1)
cbins[1:-1] = bins[1:]-np.diff(bins[:2])[0]/2.
cbins[-1] = bins[-1]
hcumc = np.linspace(0,1, len(cbins))
hcumc[1:-1] = hcum
p = [x, realValue]
yi = np.interp(p[1],cbins, hcumc)
return [p[1],yi]
分析值設定的每個區間去的方法開始了
此方法適用於較大的值。但是,如果我要通過這個值< < 1但是> 0,這很糟糕的失敗。
例如,在執行上使用這種方法我的項目爲:
在那裏你可以在最底層看到,他們是2分,當他們應該是10分左右全部上藍線(實際數據)。
主要的罪魁禍首是從這個追蹤發現: RuntimeWarning: invalid value encountered in divide hcum = np.cumsum(h)/float(np.cumsum(h).max())
所以這個必須做我如何最有可能定義我的倉大小,這是在bin=np.linspace(np.log(binding).min(),np.log(binding).max(),24)
定義,它是通過對數x軸的數值會在上面的分區圖中。
我該如何解決這個問題?
退房[QQ-或概率圖](HTTP://計算器。 COM /問題/ 13865596 /位數 - 分位數,情節使用-SciPy的)。雖然這不是你想要的*,但如果你想將數據與發行版進行比較,那麼這可能是你應該做的。 – kazemakase