当我使用Cumulative_distribution_function进行绘图时,如何使以下数据更合适?
这是我的代码,使用cdfplot
绘制clear all;
close all;
y = [23 23 23 -7.59 23 22.82 22.40 13.54 -3.97 -4.00 8.72 23 23 10.56 12.19 23 9.47 5.01 23 23 23 23 22.85 23 13.61 -0.77 -14.15 23 12.91 23 20.88 -9.42 23 -1.37 1.83 14.35 -8.30 23 15.17 23 5.01 22.28 23 21.91 21.68 -4.76 -13.50 14.35 23]
cdfplot(y)
答案 0 :(得分:2)
你的问题没有明确的答案,它太宽泛,主要属于统计数据。在进行任何计算之前,您应该回答一些问题:
如果不回答这些问题,谈论适合数据的分配是毫无意义的。 我举一个例子来说明如何使用最大似然法在Matlab中进行拟合,仅用于说明,但我强烈反对您不使用它而不考虑上述几点。
由于我没有关于数据性质的额外背景信息,因此拟合法和kernel分布来说明1个参数分布和1个非参数分布。
cdfplot(y)
hold on
xx = -20:40;
%normal distribution
pd_norm = fitdist(y', 'normal');
F_norm = normcdf(xx, pd_norm.mu, pd_norm.sigma);
plot(xx, F_norm, 'r')
%kernel distribution
pd_kernel1 = fitdist(y', 'kernel', 'Kernel', 'normal', 'Width', 6);
F_kernel1 = cdf(pd_kernel1, xx);
plot(xx, F_kernel1, 'g')
%kernel distribution
pd_kernel2 = fitdist(y', 'kernel', 'Kernel', 'normal', 'Width', 2);
F_kernel2 = cdf(pd_kernel2, xx);
plot(xx, F_kernel2, 'black')
legend('ecdf', 'normal', 'kernel1', 'kernel2', 'Location', 'NorthWest')
答案 1 :(得分:0)
你可以尝试
h = cdfplot(y)
cftool( get(h,'XData'), get(h,'YData') )