Matlab 如何绘制数据点的互补累积密度函数(CCDF)?

Matlab 如何绘制数据点的互补累积密度函数(CCDF)?,matlab,statistics,Matlab,Statistics,假设我有如下数据点: a=2.3; b=5.3; n=2000; % number of data blocks data=a+(b-a)*rand(1,1000); % data points x=[1:.1:7]; % x-axis 如何为这2000个数据块绘制该数据的互补累积密度函数(CCDF)?任何帮助 按照与类似问题相同的方法,您可以绘制数据的CCDF,如下所示: plot(sort(data), linspace(1-1/length(data), 0, length(data)

假设我有如下数据点:

a=2.3; 
b=5.3;
n=2000; % number of data blocks
data=a+(b-a)*rand(1,1000); % data points
x=[1:.1:7]; % x-axis
如何为这2000个数据块绘制该数据的互补累积密度函数(CCDF)?任何帮助

  • 按照与类似问题相同的方法,您可以绘制
    数据的CCDF,如下所示:

    plot(sort(data), linspace(1-1/length(data), 0, length(data)))
    
    通过简单地计算大于该值的值的比例(即
    linspace
    部分:对于第一个点,除了一个,…,所有值都较大,最后一个点的值都不较大),从而得出每个数据点的CCDF值(0到1之间)

  • 如果您需要CCDF在一组固定的
    x
    点,请使用的方法解决该问题:

    x = [1:.1:7];
    y = mean(bsxfun(@gt, data.', x));
    plot(x, y)
    
    现在
    y
    是大于
    x
    中每个点的值的比例。在这种情况下,必须明确确定比例,这可以通过
    bsxfun
    有效地实现

  • 按照与类似问题相同的方法,您可以绘制
    数据的CCDF,如下所示:

    plot(sort(data), linspace(1-1/length(data), 0, length(data)))
    
    通过简单地计算大于该值的值的比例(即
    linspace
    部分:对于第一个点,除了一个,…,所有值都较大,最后一个点的值都不较大),从而得出每个数据点的CCDF值(0到1之间)

  • 如果您需要CCDF在一组固定的
    x
    点,请使用的方法解决该问题:

    x = [1:.1:7];
    y = mean(bsxfun(@gt, data.', x));
    plot(x, y)
    
    现在
    y
    是大于
    x
    中每个点的值的比例。在这种情况下,必须明确确定比例,这可以通过
    bsxfun
    有效地实现


  • :您的代码运行良好,但我们是否可以使用此关系绘制CCDF:CCDF=1-CDF。您的代码运行良好,但我们是否可以使用此关系绘制CCDF:CCDF=1-CDF。