2017-05-18 18 views
1

私はこのベストフィット分布でヒストグラムを重ねる方法を教えてください。

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

を使用してデータのヒストグラムをプロットする方法を見つけ出すことができましたが、どのように私はそれの上に重ねベストフィット分布とデータのヒストグラムをプロットしますか?私はまた、単位で軸ラベルを含める必要があります。

+3

[histfit](https://uk.mathworks.com/help/stats/histfit.html)を試しましたか? – Pol

+0

ツールボックスがあれば動作します。 – Gelliant

答えて

1

それはあなたが持っているもの分布にofcourseの依存。ここでは正規分布に適合します。 pdfではなく、あなたのデータのcdfに適合させるのが最善の方法です。適合パラメータは、当然ながら同じです。だから、後で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') 
関連する問題