2017-05-18 69 views
1

我能弄清楚如何使用這個如何繪製覆蓋最佳擬合分佈的直方圖?

histogram(data,'Normalization','pdf') 

,但我怎麼繪製數據與覆蓋在它最適合的分佈直方圖繪製數據的直方圖?我還需要將軸標籤包含在單位中。

+3

您是否試過[histfit](https://uk.mathworks.com/help/stats/histfit.html)? – Pol

+0

如果您有可以工作的工具箱。 – Gelliant

回答

1

它取決於你有什麼分佈的課程。這裏我適合一個正常分佈。通常最好適合你的數據的cdf,而不是pdf。適合參數是相同的。所以你可以在之後再繪製pdf。

data = randn(1,1E3); 
fig=figure(1);clf;hold on 
H = histogram(data,'Normalization','pdf'); %you have this as well 

%pdf and cdf of normal distribution 
npdf = @(x,p) 1/(sqrt(2*p(2)^2*pi)) * exp(-(x-p(1)).^2/(2*p(2)^2)); 
ncdf = @(x,p) 0.5*(1+erf((x-p(1))/(p(2)*sqrt(2)))); 

%generate and show cdf of the data 
data = sort(data); 
x = linspace(0,1,1E3); 
figure();plot(data,x); %cdf 

%fit cdf 
ssqe = @(x,y,p) sum((y-ncdf(x,p)).^2); %sum of squared error 
p = [1 1]; %starting values 
p = fminsearch(@(p) ssqe(data,x,p), p); %fit\ 

%plot pdf of the fit 
figure(fig) 
plot(data,npdf(data,p),'--r')