【发布时间】:2015-08-18 06:34:32
【问题描述】:
众所周知,quantile函数是逆累积分布函数。
那么对于一个已经存在的distribute(一个向量),如何精确匹配cumulative distribution function和quantile函数的结果呢?
这是一个在 MATLAB 中给出的例子。
a = [150 154 151 153 124]
[x_count, x_val] = hist(a, unique(a));
% compute the probability cumulative distribution
p = cumsum(n)/sum(n);
x_out = quantile(a, p)
在累积分布函数中,累积概率与x值的对应关系应该是:
x = 124 150 151 153 154
p = 0.2000 0.4000 0.6000 0.8000 1.0000
但是用p和quantile计算x_out,结果和x不一样:
x_out =
137.0000 150.5000 152.0000 153.5000 154.0000
参考
【问题讨论】:
-
请解释你是如何得到你想要的输出的(即为什么你认为你的 Matlab 代码是错误的)。
-
@Dan,我希望这两个函数具有精确映射的 x-y 对。
-
@ouxiaogu 但你为什么要这样?您尚未明确定义 your 算法来查找分位数。 Matlab 已经定义了他们的,甚至使用您的确切用例作为文档中的示例。请参阅my answer 了解更多信息。
-
从数学的角度来看它是未定义的,因为你正在反转的函数中有一个步骤。
标签: r matlab statistics