使用MATLAB绘制平滑累积分布函数

时间:2011-10-05 23:55:10

标签: matlab statistics

如何才能使以下cumulative distribution function(CDF)曲线更平滑?

这是我的代码,使用cdfplot

clear all; 
close all;
y = [0.75862069 0.666666667 0.882352941 0.875 0.736842105 0.566666667 0.703703704 0.6 0 0.730769231 0.714285714 0.625 0.675 0.693877551 0.731707317 0.558823529 0.679245283 0.740740741 0.785714286 0.789473684 0.615384615 0.6 0.739130435 0.576923077 0 0.75];
cdfplot(y)

情节如下:

enter image description here

4 个答案:

答案 0 :(得分:2)

data = [1 2 2 3 4];
dsum = sum(data);
normalized_data = data/dsum;

cdf = data;

for i = 1:length(data)
    cdf(i) = sum(normalized_data(1:i));
end

plot(cdf);

这是你在找什么?

答案 1 :(得分:2)

data = [2 1 4 2 3];
sdata = sort(data);
plot(sdata,(0.5:length(sdata))./length(sdata),'-');

答案 2 :(得分:1)

您可以使用ecdf

功能
[f,x] = ecdf(y);
plot(x,f);

答案 3 :(得分:0)

有一种方法。但我认为这是一种作弊行为。自己负责使用它。 您可以尝试cdfplot([x,x+a*randn(length(x),1)]).您可以使用参数a,但我建议您使用大约0.5的值。欢呼声。