【问题标题】:Calculate inverse CDF from a sample of data从数据样本计算逆 CDF
【发布时间】:2017-07-08 06:18:45
【问题描述】:

如果我得到一个随机样本数据:

X=np.random.random(100)*100

并且我需要使用 CDF = 34% 或其他值来获取值 X_i。我现在能想到的唯一方法是使用逆 CDF。我认为百分位数是等价的,但有人告诉我它接近但不准确。

【问题讨论】:

  • CDF 表示累积分布函数。因此,它是基础分布函数的积分。你知道你的随机值的分布吗? np.random.random 具有均匀分布,在这种情况下,CDF 和百分位数在统计上匹配。然而,对于某个样本集,特别是如果它是一个小样本集,CDF(某种意义上的预期值)和实际百分位数可能会有很大差异。您想要分布中的 true CDF,还是应该从样本中估计它?

标签: python numpy statistics cdf


【解决方案1】:

这应该为您提供X 的索引,其中 cdf 为 0.34:

X=np.random.random(100)*100
cdf_frac_to_find = 0.34
cdf = np.cumsum(X)/np.sum(X) #take the cumulative sum of x and normalize so that it's max value is 1
X_index = np.argmin(np.abs(cdf-cdf_pct_to_find))
X_index
#out: 32 -- note that this will likely change because you're generating random numbers for X.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多