如何评估Matlab中给定点的经验cdf?

时间:2013-04-18 13:52:25

标签: matlab

假设我有一系列标量点受到未知分布的影响。

从点的顺序,我们可以得到经验的cdf。

我想知道在Matlab中是否有某种方法可以在任何时候评估这种经验性cdf?例如,在用于构建经验cdf的相同点序列中评估它?

我在http://www.mathworks.com/help/stats/ecdf.html查找了ecdf函数。其用法为[f,x] = ecdf(y),其中来自数据y is evaluated at x , but x`的经验cdf似乎不可指定。

谢谢和问候!

4 个答案:

答案 0 :(得分:4)

假设您有函数的输出,两个向量fx,并且您希望在点x_of_interest找到经过验证的cdf,这就是您可以做的:

max(f(x<=x_of_interest))

或许你想使用min>=,但我认为上述公式是正确的。

答案 1 :(得分:1)

似乎xy中带有CDF的唯一点。

答案 2 :(得分:0)

我不确定这是你的意思,但我还需要将数据值向量转换为经验CDF的相应向量,具有相同的排序。

实际上,我更喜欢更对称的定义cdf(x) = Prob(X <= x),而不是通常的定义cdf(x) = Prob(X < x) + 1/2 * Prob(X == x),它更适合于有关系的情况。现在计算是单行的,但是在统计工具箱的tiedrank()函数的帮助下:

cdf = (tiedrank(data) - 1/2) / length(data) ;

例如,

data = [3     2     4     2     1] ;

产量

cdf = [0.7    0.4    0.9    0.4    0.1] ;

答案 3 :(得分:0)

一个好的方法可能是使用插值来找到最接近的&#34; x&#34;对于您要评估的每个点,以及相对的&#34; f&#34;值。您可以在此处找到如何将interp1用于此目的: determining-the-value-of-ecdf-at-a-point-using-matlab