gpt4 book ai didi

python - 经验分位数比较效应大小

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:22 25 4
gpt4 key购买 nike

我正在尝试用经验数据重新创建以下积分:

enter image description here

其中 F、G 是 cdf,它们的反函数是分位数函数。

这是我的代码:

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))

有了这个,我希望 u = np.random.uniform(0,1,50)eqces(u,u) = 0 但这通常是事实并非如此。谁能告诉我我是否做错了什么或建议替代方案?

编辑

通过一些分析结果,这段代码似乎效果更好:

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

最佳答案

我的猜测是 ECDFmquantiles 不使用相同的绘图位置

mquantiles 具有可选关键字 alphap=0.4、betap=0.4

puvinv 在这种情况下不会往返。

但是,在大样本中,差异应该很小。

scipy.stats.ks_2samp正在做类似的事情,但直接使用numpy而不需要辅助函数。

顺便说一句:两个分布之间的距离测量有名称吗?

关于python - 经验分位数比较效应大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19418175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com