我試圖重新與經驗數據下面的積分:實證位數比較效果大小
其中,F,G是CDFS和它們的逆都是位數功能。
這裏是我的代碼:
def eqces(u,v):
import numpy as np
import statsmodels.api as sm
from scipy.stats.mstats import mquantiles
ecdfu = sm.distributions.ECDF(u)
ecdfv = sm.distributions.ECDF(v)
p = np.concatenate([ecdfu.y, ecdfv.y])
p = np.unique(p)
p.sort()
qfu = mquantiles(u, p)
qfv = mquantiles(v, p)
uvinv = ecdfu(qfv)
vuinv = ecdfv(qfu)
result = abs(uvinv - p) + abs(vuinv - p)
return np.dot(result, np.ones(p.size))
有了這個,我會期望eqces(u,u) = 0
爲u = np.random.uniform(0,1,50)
,但是這通常並非如此。任何人都可以告訴我,如果我做錯了什麼或建議的替代品?
Edit
此代碼似乎與一些分析結果更好的工作:
def eqces(u,v):
ecdfu = sm.distributions.ECDF(u)
ecdfv = sm.distributions.ECDF(v)
p = np.concatenate([ecdfu.y, ecdfv.y])
X = np.concatenate([ecdfu.x, ecdfv.x])
return 2*np.dot(np.abs(ecdfu(X)-p)+np.abs(ecdfv(X)-p), np.ones(p.size))/p.size
你能解決你的格式嗎? – tacaswell
@tcaswell我不太清楚如何在這個問題上添加乳膠格式。你能指示我一些指導方針嗎?我試圖四處尋找,但無法找到如何去做。 – alanlujan91
SO不會做tex標記(我知道)。我更關心代碼的縮進。 – tacaswell