データのヒストグラム​と確率密度関数を重ね​書きするにはどうすれ​ばよいですか?

27 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2013 年 10 月 25 日
回答済み: MathWorks Support Team 2013 年 10 月 25 日
データのヒストグラムと、その確率密度関数を重ね書きする方法を教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2013 年 10 月 26 日
与えられたデータからそのヒストグラムと確率密度関数を描画する Statistics Toolbox の関数に HISTFIT があります。
HISTFIT 関数では、与えられたデータから各種統計量(標本平均など)を求め、確率密度関数を描画します。
r = normrnd(10,1,100,1);
histfit(r,10,'normal') % ヒストグラムのビン数:10, 正規分布にフィッティング
なお、Statistics Toolbox 7.0(R2008b) 以前のバージョンの HISTFIT 関数では、正規分布以外の
分布を用いて確率密度関数を描画することはできません。
その場合には、以下のように実行します。
mu = 0;
sigma = 1;
data = normrnd(mu,sigma,100,1);
numbins = 10; % ヒストグラムのビン数
hist(data,numbins) % ヒストグラムの描画
hold on
[bincounts,binpositions] = hist(data,numbins);
binwidth = binpositions(2) - binpositions(1); % ビンの間隔を取得
histarea = binwidth*sum(bincounts); % ヒストグラムの面積
x = binpositions(1):0.001:binpositions(end); % 確率密度関数の横軸データ
y = normpdf(x,mu,sigma); % 確率密度関数
plot(x,histarea*y,'r','LineWidth',2) % ヒストグラムのスケールにあわせて描画
normpdf 関数などで得られる値をプロットした確率密度関数は、その面積が 1 になります。
そのため、元のデータのヒストグラムに重ね書きする場合には、ヒストグラムの総面積を求め、
スケーリングした後、プロットする必要があります。
本件に関する内容が、Statistics Toolbox のヘルプドキュメントに記載されています。
[Statistics Toolbox]
- [Probability Distributions]
-[Distribution Functions]
- [Distribution Fitting Functions]

その他の回答 (0 件)

製品


リリース

R2009a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!