假设我有一系列标量点受到未知分布的影响。
从点的顺序,我们可以得到经验的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似乎不可指定。
谢谢和问候!
答案 0 :(得分:4)
假设您有函数的输出,两个向量f
和x
,并且您希望在点x_of_interest
找到经过验证的cdf,这就是您可以做的:
max(f(x<=x_of_interest))
或许你想使用min
和>=
,但我认为上述公式是正确的。
答案 1 :(得分:1)
似乎x
是y
中带有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