トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索   ヘルプ   最終更新のRSS

MATLAB Note/統計/確率分布 の変更点

Top / MATLAB Note / 統計 / 確率分布

#freeze
#access
#analog

#contents

*確率分布(確率密度関数) [#x3078125]
-確率分布の特性と分類に関して、[[さまざまな確率分布:http://www.biwako.shiga-u.ac.jp/sensei/mnaka/ut/statdist.html]](滋賀大中川先生) に総合的な解説があります。
-以下、Statistics Toolbox の関数を使用します。
--参考:[[Statistics Toolbox でサポートされている確率分布:http://www.mathworks.com/access/helpdesk_ja_JP/help/toolbox/stats/bqt29ct.html]]
--Rでも同じことができるはずです。[[R Note/統計/確率分布:http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki_public/116.html]] を参照して下さい。

**連続変数(Continuous variable) [#of48139c]
-連続的に変化する値の出現頻度を扱う分布。
--【引用】 '''(略)棒が倒れる方向 X は、0 から 360°の間の任意の値を取ることができます。このような分布を連続型分布といいます。(略)ここで注意してもらいたいのは、離散型分布の確率関数とは異なり、確率密度関数 f(x) は、X が 値 x を取るときの確率を表しているわけではないことです。(略)なぜなら、倒れたときの角度がある特定の値に完全に一致する確率は限りなく 0 に近いからです。'''(([[確率と統計 3.3.2 連続型分布:http://www.sist.ac.jp/~suganuma/kougi/other_lecture/SE/math/prob/prob.htm#3.3.2]](静岡理工科大 菅沼先生) より引用))
--【引用】'''連続変数の分布では面積が重要。例えばX=aからX=bまでのx軸と確率密度曲線に囲まれた領域の面積 S は、Xの値が a から b の間に入る確率を意味する'''(([[確率と統計 3.3.2 連続型分布:http://www.sist.ac.jp/~suganuma/kougi/other_lecture/SE/math/prob/prob.htm#3.3.2]](静岡理工科大 菅沼先生) を参考にしました。))

***正規分布(Normal distribution)、ガウス分布(Gaussian distribution) [#sef9d4d9]
-[[正規分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E5%88%86%E5%B8%83]]
--''平均μ、標準偏差σから求まる''
--左右対称、多くのデータが正規分布に従う
--データの平均値の集合は、元のデータの分布の種類によらず正規分布になる([[中心極限定理:http://ja.wikipedia.org/wiki/%E4%B8%AD%E5%BF%83%E6%A5%B5%E9%99%90%E5%AE%9A%E7%90%86]]による)
--[[HMM音響モデル:http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki_public/92.html]] の各状態における各音響特徴は、混合正規分布に従うことを仮定している。
--適当な区間の外側を0にすることで[[窓関数:http://ja.wikipedia.org/wiki/%E7%AA%93%E9%96%A2%E6%95%B0#.E3.82.AC.E3.82.A6.E3.82.B9.E7.AA.93]]としても用いられる(?)

-μ = 0, σ = 1 の正規分布(標準正規分布)を作ってみます。
--まずは以下を実行します。
#geshi(matlab){{
%パラメータの宣言
mu = 0;
sigma = 1;
}}
--この分布に従う乱数を10000個(10000×1の配列で)作るには、関数 [[normrnd:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/normrnd.html]] を使います。
#geshi(matlab){{
data = normrnd(mu, sigma, [10000 1]);                       % 乱数生成
bar(data); xlim([0,10000]); title('normrnd');               % プロット
}}
#ref(plot_norm_1.png,,50%);
--ヒストグラムで書いてみます。
#geshi(matlab){{
[histdata, position] = hist(data);                          % ヒストグラム
bar(position, histdata); xlim([-5,5]); title('normrnd');    % プロット
}}
#ref(plot_norm_2.png,,50%);
--ヒストグラムの頂点を結んだ線が確率密度曲線(の近似)になります。より厳密な正規分布の確率密度曲線は、関数 [[normpdf:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/normpdf.html]] でプロットできます。ここでは x座標 -5 ~ 5 までの区間(0.01刻み)で関数生成&プロットしてみます。
#geshi(matlab){{
linescale = [-5:0.01:5];                                    % x座標のスケール
pdfdata = normpdf(linescale, mu, sigma);                    % 確率密度関数生成
plot(linescale, pdfdata); xlim([-5,5]); title('normpdf');   % プロット
}}
#ref(plot_norm_3.png,,50%);
--ヒストグラムの各バーを、x座標の小さいものから順に足しあわせてプロットしていけば累積密度曲線(の近似)になります。より厳密な正規分布の累積密度曲線は、関数 [[normcdf:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/normcdf.html]] でプロットできます。
#geshi(matlab){{
histsum = cumsum(histdata);                                 % ヒストグラムの累積和
cdfdata = normcdf(linescale, mu, sigma);                    % 累積密度関数生成
subplot(2,1,1); bar(position, histsum); xlim([-5,5]); title('normcdf');
subplot(2,1,2); plot(linescale, cdfdata); xlim([-5,5]);     % プロット
}}
#ref(plot_norm_4.png,,50%);

-得られたデータセットが正規分布に従うと仮定して、データからμとσの値を推定することもできます。
--データのフィッティングには関数 [[normfit:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/normfit.html]] を使います。
--上で作ったμ = 0, σ = 1 の乱数正規分布のデータを使ってパラメータの推定を行います(参考:[[Statistics Toolbox/正規分布による近似:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/f4218.html#bqt4w4n]])。
#geshi(matlab){{
[muhat,sigmahat,muci,sigmaci] = normfit(data)   % パラメータ推定
pdfdata = normpdf(linescale, mu, sigma);        % 推定したパラメータから確率密度関数生成
[histdata, position] = hist(data);              % 乱数正規分布のヒストグラム
histdata = histdata / (max(histdata) / max(pdfdata)); % ヒストグラムのスケール調整
figure, bar(position, histdata); xlim([-5,5]);  % プロット
hold on
plot(linescale, pdfdata,'r','LineWidth',2); xlim([-5,5]); title('normfit');
hold off
}}
#ref(plot_norm_5.png,,50%);
---ここでは暫定的に、ヒストグラムの頂点と確率密度関数の頂点が一致するようにスケール調整をしていますが、本当ならヒストグラムの面積が1になるように調整するべきです。[[Statistics Toolbox/正規分布による近似:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/f4218.html#bqt4w4n]]を参考にして下さい。
---以下が出力されます。muhatが推定した平均(μ)、sigmahatが推定した標準偏差(σ)です。muci、sigmaciは、それぞれ95%信頼区間です。これらは最尤推定の関数 [[mle:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/mle.html]] によって計算されます。((最尤推定によるベータ分布のパラメータ推定に関して、以下のウェブサイトがたいへん詳しいです:[[ベータ分布の最尤推定(Rで実装):http://wg-stein.blogspot.jp/2009/07/r.html]] [[BIC (ベイズ情報量基準) その3 また脱線でベータ分布の最尤推定:http://ameblo.jp/p630/entry-10951399245.html]]))
 muhat =
     0.0017
 sigmahat =
     0.9915
 muci =
    -0.0178
     0.0211
 sigmaci =
     0.9779
     1.0054

--なお、データが正規分布であることを仮定できるなら、[[ガウス混合分布モデル:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/brklrj3.html#brklr93-1]]の混合数1でも同様のフィッティングができます。
#geshi(matlab){{
options = statset('Display','final');
obj = gmdistribution.fit(data,1,'Options',options);  % 混合数1のGMM
pdfdata = normpdf(linescale, obj.mu, obj.Sigma);     % GMMパラメータから確率密度関数生成
figure, bar(position, histdata); xlim([-5,5]);       % プロット
hold on
plot(linescale, pdfdata,'r','LineWidth',2); xlim([-5,5]); title('normfit');
hold off
}}
#ref(plot_norm_GMM.png,,50%);

-ちなみに、正規分布の確率密度関数の二次導関数をメキシカン・ハット関数といい((参考:[[短時間フーリエ変換と連続ウェーブレット変換:http://laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1/basic/chap11/index.htm]](信州大井澤先生)))、[[ウェーブレット変換:http://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A7%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E5%A4%89%E6%8F%9B]] や[[自己組織化マップ:http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki_public/104.html]] の近傍強化関数((内積型自己組織化マップでは、正規化によって抑制型学習を行うので、強化関数は普通の正規分布です。))などに使われています。
#geshi(matlab){{
plot( -1 * diff(diff(pdfdata)) ); title('Mexican hat function');
}}
#ref(plot_norm_mexican.png,,50%);

-[[ガウス混合分布モデル:http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki_public/102.html#d3ca1328]]
--複数の正規分布の混合とみなせるデータセットから、元の各正規分布のパラメータを推定する。

***ガンマ分布(Gamma distribution) [#ma31357f]
-[[ガンマ分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E3%82%AC%E3%83%B3%E3%83%9E%E5%88%86%E5%B8%83]]
--''形状母数 k、尺度母数 θ から求まる''
--左に歪んだL字分布。
--【引用】 '''電子部品の寿命分布や通信工学におけるトラフィックの待ち時間分布に応用される。'''(([[ガンマ分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E3%82%AC%E3%83%B3%E3%83%9E%E5%88%86%E5%B8%83]] より引用))((ポアソン分布、ワイブル分布、ベータ分布、ガンマ分布の特性と工学的な応用については、[[ポワソン配置とワイブル分布(雑然か整然か):http://www.geocities.jp/ikuro_kotaro/koramu/waiburu.htm]] や [[ポアソン過程・指数分布・ガンマ分布・ワイブル分布・ベータ分布:http://d.hatena.ne.jp/ryamada22/20051005/1128481664]] に詳細な説明あり。))
--蝸牛基底膜の聴覚細胞の応答関数に用いられる([[ガンマチャープフィルタ:http://www.wakayama-u.ac.jp/~irino/]]、和歌山大入野先生)

-k = 3, θ = 2.0 のガンマ分布を作ってみます。
--まずは以下を実行します。
#geshi(matlab){{
%パラメータの宣言
k = 3;
theta = 2;
}}
--この分布に従う乱数を10000個(10000×1の配列で)作るには、関数 [[gamrnd:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/gamrnd.html]] を使います。
#geshi(matlab){{
data = gamrnd(k, theta, [10000 1]);                         % 乱数生成
bar(data); xlim([0,10000]); title('gamrnd');                % プロット
}}
#ref(plot_gam_1.png,,50%);
--ヒストグラムで書いてみます。
#geshi(matlab){{
[histdata, position] = hist(data);                          % ヒストグラム
bar(position, histdata); xlim([0,30]); title('gamrnd');     % プロット
}}
#ref(plot_gam_2.png,,50%);
--より厳密なガンマ分布の確率密度曲線は、関数 [[gampdf:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/gampdf.html]] でプロットできます。
#geshi(matlab){{
linescale = [0:0.01:30];                                    % x座標のスケール
pdfdata = gampdf(linescale, k, theta);                      % 確率密度関数生成
plot(linescale, pdfdata); xlim([0,30]); title('gampdf');    % プロット
}}
#ref(plot_gam_3.png,,50%);
--累積密度曲線は、関数 [[gamcdf:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/gamcdf.html]] でプロットできます(図は省略)。
#geshi(matlab){{
histsum = cumsum(histdata);                                 % ヒストグラムの累積和
cdfdata = gamcdf(linescale, k, theta);                      % 累積密度関数生成
subplot(2,1,1); bar(position, histsum); xlim([0,30]); title('gamcdf');
subplot(2,1,2); plot(linescale, cdfdata); xlim([0,30]);     % プロット
}}

***ワイブル分布(Weibull distribution) [#o45e79af]
-[[ワイブル分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E3%83%AF%E3%82%A4%E3%83%96%E3%83%AB%E5%88%86%E5%B8%83]]
--''ワイブル係数(形状パラメータ) m、尺度パラメータ η から求まる''
--【引用】 '''m=1は指数分布、m=2はレイリー分布になる'''(([[ワイブル分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E3%83%AF%E3%82%A4%E3%83%96%E3%83%AB%E5%88%86%E5%B8%83]] より引用))
--左に歪んだL字分布。
--【引用】 '''物体の強度、時間に対する劣化現象や寿命を統計的に記述するために広く利用される'''(([[ワイブル分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E3%83%AF%E3%82%A4%E3%83%96%E3%83%AB%E5%88%86%E5%B8%83]] による))((ポアソン分布、ワイブル分布、ベータ分布、ガンマ分布の特性と工学的な応用については、[[ポワソン配置とワイブル分布(雑然か整然か):http://www.geocities.jp/ikuro_kotaro/koramu/waiburu.htm]] や [[ポアソン過程・指数分布・ガンマ分布・ワイブル分布・ベータ分布:http://d.hatena.ne.jp/ryamada22/20051005/1128481664]] に詳細な説明あり。))

***ロジスティック分布(Logistic distribution) [#ad8f7d73]
-[[ロジスティック分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E3%83%AD%E3%82%B8%E3%82%B9%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E5%88%86%E5%B8%83]]
--''第一変数μ 、 第二変数 s から求まる''
--左右対称の分布。
--【引用】 '''正規分布と同様に対称なS字(シグモイド)型の分布関数、釣鐘型の確率密度関数を持ち一見して両者は類似しているが、ロジスティック分布の方が裾が長く密度関数は平均から離れても下がりにくい'''(([[ロジスティック分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E3%83%AD%E3%82%B8%E3%82%B9%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E5%88%86%E5%B8%83]] による))
--【引用】 '''ロジスティック分布の累積分布関数に見る曲線は[[ロジスティック曲線:http://ja.wikipedia.org/wiki/%E3%83%AD%E3%82%B8%E3%82%B9%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E5%BC%8F]]と呼ばれ、分布そのものよりこちらの曲線の方が様々な場面で現れています'''(([[ロジスティック分布(Logistic distribution):http://www.ntrand.com/jp/logistic-distribution/]] より引用))
---データが直線で回帰できないときは、ロジスティック関数(曲線)で回帰モデルを作る([[ロジスティック回帰:http://www.agri.tohoku.ac.jp/iden/toukei5.html]])
---ロジスティック関数の逆関数を [[ロジット関数:http://ja.wikipedia.org/wiki/%E3%83%AD%E3%82%B8%E3%83%83%E3%83%88]] といい、こちらも良く用いられる。
---ロジスティック関数のさまざまな応用例は [[ロジスティック分布(Logistic distribution):http://www.ntrand.com/jp/logistic-distribution/]] を参照

***ベータ分布(Beta distribution) [#ff6a4cd6]
-[[Beta distribution - Wikipedia:http://en.wikipedia.org/wiki/Beta_distribution]]
--''第一変数 p、第二変数 q から求まる'' ([[英語版Wikipedia:http://en.wikipedia.org/wiki/Beta_distribution]] ではαとβ、以下は pとqで統一します)
--パラメータ次第で左右対称、左に歪んだL字分布、右に歪んだJ字分布を表現できる。
--【引用】 '''独立に一様分布 U(0,1) に従う p+q-1 個の確率変数を大きさの順に並べ替えたとき,小さい方から p 番め(大きい方からは q 番目)の確率変数 X の分布がベータ分布 B(p,q) となる'''(([[ベータ分布の性質:http://www.kwansei.ac.jp/hs/z90010/sugakuc/toukei/beta/beta.htm]] より引用))
--【引用】 '''工学的な実用例はあまりない'''(([[ベータ分布の性質:http://www.kwansei.ac.jp/hs/z90010/sugakuc/toukei/beta/beta.htm]] より引用))とされますが、様々な形状の分布を表現できるため統計モデル([[一般化線形モデル:http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki_public/113.html#q03d38ba]])の確率分布として注目されています。((例えば、[[Smithson M, Verkuilen J, "A better lemon squeezer? Maximum-likelihood regression with beta-distributed dependent variables," Psychol Methods, 11(1), 54-71, 2006.:http://psychology3.anu.edu.au/people/smithson/details/betareg/Smithson_Verkuilen06.pdf]] などで議論されています。(理研のIさんが教えて下さいました。ありがとうございました。)))

-p = 2.5, q = 1.5 のベータ分布を作ってみます。
--まずは以下を実行します。
#geshi(matlab){{
%パラメータの宣言
p = 2.5;
q = 1.5;
}}
--この分布に従う乱数を10000個(10000×1の配列で)作るには、関数 [[betarnd:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/betarnd.html]] を使います(図は省略)。
#geshi(matlab){{
data = betarnd(p, q, [10000 1]);                            % 乱数生成
bar(data); xlim([0,10000]); title('betarnd');               % プロット
}}
--ヒストグラムで書いてみます。
#geshi(matlab){{
[histdata, position] = hist(data);                          % ヒストグラム
bar(position, histdata); xlim([0,1.2]); title('betarnd');   % プロット
}}
#ref(plot_beta_2.png,,50%);
---x座標の値の範囲は0~1
--より厳密なベータ分布の確率密度曲線は、関数 [[betapdf:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/betapdf.html]] でプロットできます。
#geshi(matlab){{
linescale = [0:0.01:1.2];                                   % x座標のスケール
pdfdata = betapdf(linescale, p, q);                         % 確率密度関数生成
plot(linescale, pdfdata); xlim([0,1.2]); title('betapdf');  % プロット
}}
#ref(plot_beta_3.png,,50%);

---ベータ分布の確率密度曲線の平均と分散は、関数 [[betastat:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/betastat.html]] で求めることができます。
#geshi(matlab){{
[M, V] = betastat(p, q)
}}
---p = 2.5, q = 1.5 のときの平均は0.6250、分散は0.0469です。これは、以下の式でも求めることができます(参考:[[ベータ分布の性質:http://www.kwansei.ac.jp/hs/z90010/sugakuc/toukei/beta/beta.htm]](関西学院高丹羽先生))。
#geshi(matlab){{
M = p / (p + q)
V = (p * q) / ((p + q) ^ 2 * (p + q + 1))
}}
--累積密度曲線は、関数 [[betacdf:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/betacdf.html]] でプロットできます(図は省略)。
#geshi(matlab){{
histsum = cumsum(histdata);                                 % ヒストグラムの累積和
cdfdata = betacdf(linescale, p, q);                         % 累積密度関数生成
subplot(2,1,1); bar(position, histsum); xlim([0,1.2]); title('gamcdf');
subplot(2,1,2); plot(linescale, cdfdata); xlim([0,1.2]);    % プロット
}}

-得られたデータセットがベータ分布に従うと仮定して、データからpとqの値を推定することもできます。
--データのフィッティングには関数 [[betafit:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/betafit.html]] を使います。
--上で作ったp = 2.5, q = 1.5 の乱数ベータ分布をテストデータとして与えて、このパラメータを推定できるかどうか試してみます。
#geshi(matlab){{
[phat, pci] = betafit(data)                     % パラメータ推定
pdfdata = betapdf(linescale, phat(1), phat(2)); % 確率密度関数生成
[histdata, position] = hist(data);              % 乱数ベータ分布のヒストグラム
histdata = histdata / (max(histdata) / max(pdfdata)); % ヒストグラムのスケール調整
figure, bar(position, histdata); xlim([0,1.2]);  % プロット
hold on
plot(linescale, pdfdata, 'r','LineWidth',2); xlim([0,1.2]); title('betafit');
hold off
}}
#ref(plot_beta_4.png,,50%);
---ここでは暫定的に、ヒストグラムの頂点と確率密度関数の頂点が一致するようにスケール調整をしていますが、本当ならヒストグラムの面積が1になるように調整するべきです。[[Statistics Toolbox/正規分布による近似:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/f4218.html#bqt4w4n]]を参考にして下さい。
---以下が出力されます。phat(1)が推定したpパラメータ、phat(2)が推定したqパラメータです。pci(:,1)、pci(:,2)は、それぞれpとqの95%信頼区間です。これらは最尤推定の関数 [[mle:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/mle.html]] によって計算されます。
 phat =
     2.5035    1.4856
 pci =
     2.4353    1.4479
     2.5717    1.5233
---p = 2.5035、q = 1.4856 になりました。おおむね正しく推定できています。

-'''[[ベータ混合分布モデル:http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki/index.php?%E3%83%99%E3%83%BC%E3%82%BF%E6%B7%B7%E5%90%88%E5%88%86%E5%B8%83%E3%83%A2%E3%83%87%E3%83%AB]]'''((参考:[[Ji Y, Wu C, Liu P, Wang J, Coombes KR, "Applications of beta-mixture models in bioinformatics," Bioinformatics, Vol.21, No.9, pp.2118-2122, 2005.:http://bioinformatics.oxfordjournals.org/content/21/9/2118.full.pdf]] [[著者ウェブサイト:http://odin.mdacc.tmc.edu/~ylji/]] からRスクリプトのダウンロードが出来る。))
--複数のベータ分布の混合とみなせるデータセットから、元の各ベータ分布のパラメータを推定する。
---ガウス混合分布モデルでも、ある程度の分布の歪みには頑健に対応できるとのこと。

***ディリクレ分布(Dirichlet distribution) [#af2d9825]
-[[ディリクレ分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%83%AA%E3%82%AF%E3%83%AC%E5%88%86%E5%B8%83]]
--【引用】'''ベータ分布を多変量に拡張して一般化した形をしており、そのため多変量ベータ分布とも呼ばれる'''(([[ディリクレ分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%83%AA%E3%82%AF%E3%83%AC%E5%88%86%E5%B8%83]] より引用))
--ディリクレ分布とベータ分布の関係に関する議論
---[[ベータ分布とディリクレ分布:http://d.hatena.ne.jp/ryamada22/20061029/1162108293]](ryamadaの遺伝学・遺伝統計学メモ)
---[[「統計学関連なんでもあり」BBS:http://aoki2.si.gunma-u.ac.jp/lecture/mb-arc/arc039/00994.html]]
-'''[[Infinite Mixture Model:http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki/index.php?%E3%83%99%E3%83%BC%E3%82%BF%E6%B7%B7%E5%90%88%E5%88%86%E5%B8%83%E3%83%A2%E3%83%87%E3%83%AB#tee9f89b]]'''(ディリクレ分布(など)に基づく混合分布モデル)

**離散変数(Categorical variable) [#e8ffc479]
-離散的に変化する値(二値のみ、整数のみ等)の出現頻度を扱う分布。
--【引用】 '''サイコロを投げるような場合における確率関数(略)。確率変数は離散的な値だけを取ることができます。このような場合を離散型分布といいます'''(([[確率と統計 3.3.1 離散型分布:http://www.sist.ac.jp/~suganuma/kougi/other_lecture/SE/math/prob/prob.htm#3.3.1]](静岡理工科大 菅沼先生) より引用))

***二項分布(Binomial distribution)[#ucdd8b68]
-[[二項分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E4%BA%8C%E9%A0%85%E5%88%86%E5%B8%83]]
--''成功確率 p 、試行回数 n から求まる''
--左右対称の分布
--【引用】 '''結果が成功か失敗のいずれかである n 回の独立な試行を行ったときの成功数で表される離散確率分布である'''(各試行における成功確率 p は一定である)(([[二項分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E4%BA%8C%E9%A0%85%E5%88%86%E5%B8%83]]より引用))
--【引用】 '''ある集団において,特性 A を持つものの割合が p であり,持たないものの割合が q であるとする( p+q=1 )。このとき,集団から無作為に n 人を抽出したとき,特性 A を持つものが x 人である確率を考える'''(([[二項分布:http://aoki2.si.gunma-u.ac.jp/lecture/Bunpu/nikou.html]](群馬大青木先生)より引用))

-n = 20, p = 0.4 の二項分布を作ってみます。
--まずは以下を実行します。
#geshi(matlab){{
%パラメータの宣言
n = 20;
p = 0.4;
}}
--この分布に従う乱数を10000個(10000×1の配列で)作るには、関数 [[binornd:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/binornd.html]] を使います。
#geshi(matlab){{
data = binornd(n, p, [10000 1]);                            % 乱数生成
bar(data); xlim([0,10000]); title('binornd');               % プロット
}}
#ref(plot_bino_1.png,,50%);
---ここで出力される値が意味するのは「『成功率0.4の試行を20回行ったとき、(20回中)何回成功するか』の実験を10000回実施した」ということです。

--ヒストグラムで書いてみます。
#geshi(matlab){{
[histdata, position] = hist(data);                          % ヒストグラム
bar(position, histdata); xlim([0,20]); title('binornd');    % プロット
}}
#ref(plot_bino_2.png,,50%);

--ヒストグラムの頂点を結んだ線が確率密度曲線(の近似)になります。より厳密な二項分布の確率密度曲線は、関数 [[binopdf:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/binopdf.html]] でプロットできます。ここでは x座標 0 ~ 20 までの区間について「0.1刻み」と「1刻み」の二通りで関数生成&プロットしてみます。
#geshi(matlab){{
linescale1 = [0:0.1:20];                          % x座標のスケール(0.1刻み)
pdfdata1 = binopdf(linescale1, n, p);             % 確率密度関数生成
linescale2 = [0:1:20];                            % x座標のスケール(1刻み)
pdfdata2 = binopdf(linescale2, n, p);             % 確率密度関数生成
subplot(2,1,1); plot(linescale1, pdfdata1); xlim([0,20]); title('binopdf');
subplot(2,1,2); plot(linescale2, pdfdata2); xlim([0,20]);   % プロット
}}
#ref(plot_bino_3.png,,50%);
---このように、離散分布の関数は、x座標に連続値(小数点を含む値)を指定しても、x座標の値が整数のとき以外は0を出力します。
--ヒストグラムの各バーを、x座標の小さいものから順に足しあわせてプロットしていけば累積密度曲線(の近似)になります。より厳密な二項分布の累積密度曲線は、関数 [[binocdf:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/binocdf.html]] でプロットできます。
#geshi(matlab){{
histsum = cumsum(histdata);                       % ヒストグラムの累積和
cdfdata1 = binocdf(linescale1, n, p);             % 累積密度関数生成(0.1刻み)
cdfdata2 = binocdf(linescale2, n, p);             % 累積密度関数生成(1刻み)
subplot(3,1,1); bar(position, histsum); xlim([0,20]); title('binocdf');
subplot(3,1,2); plot(linescale1, cdfdata1); xlim([0,20]);
subplot(3,1,3); plot(linescale2, cdfdata2); xlim([0,20]);   % プロット
}}
#ref(plot_bino_4.png,,50%);

***ポアソン分布 [#r43880d0]
-【引用】 '''1 回ごとの事象の生起確率 p が一定であるとき,実験を繰り返し行うことを ベルヌーイ試行 というが,独立に実験を n 回繰り返したとき,x 回事象が生じる確率は二項分布である。ポアソン分布は、二項分布の中でも特に出現確率の低い事象を扱うとき、よくあてはまる。'''(([[離散分布と連続分布:http://aoki2.si.gunma-u.ac.jp/lecture/Bunpu/]] の [[ポアソン分布:http://aoki2.si.gunma-u.ac.jp/lecture/Bunpu/poisson.html]](群馬大青木先生)より引用))
-【引用】 '''製品中の不良品の個数,一定時間内に電話がかかってくる回数などがあげられる。'''(([[ポアソン分布:http://aoki2.si.gunma-u.ac.jp/lecture/Bunpu/poisson.html]] より引用))
--値に上限と下限をもつような、「閉じた尺度」のデータはポアソン分布に近づく。
---0%~100%、0点~100点など。こういったデータは分布の中心が端に近づくにつれて分布の裾野がつまり(天井効果、フロア効果)、L字型やJ字型のポアソン分布を作りやすい。
---片方にのみ開いた尺度(負値を持たないデータ、年収など)も、裾野が引っ張られてポアソン分布を作る。

***ベルヌーイ分布 [#sa97ea1c]


**分布形状の測定 [#b36814ba]
-以下、Statistics Toolbox / [[形状の測度:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/bq_w_hm.html#brjjc6w-1]] に基づきます。

***尖度 [[kurtosis:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/kurtosis.html]] と 歪度 [[skewness:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/skewness.html]] [#v50f0af0]
-尖度:分布の頂点がどれだけ尖っているか。
--【引用】 '''正規分布と比べて、尖度が大きければ鋭いピークと長く太い裾を持った分布を持ち,尖度が小さければより丸みがかったピークと短く細い尾を持った分布であるという事が判断できる。(略)正規分布の尖度を0とする定義と3とする定義があることに注意'''(([[尖度 - Wikipedia:http://ja.wikipedia.org/wiki/%E5%B0%96%E5%BA%A6]] より引用))
--MATLABの [[kurtosis:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/kurtosis.html]]  関数では、正規分布は尖度3になり、尖っているほど値が大きくなる
-歪度:分布の左右がどれだけ非対称か。
--【引用】 '''確率分布の分布特性を示すためには期待値および分散が通常用いられるが、分布型の違いを示す指標の1つに3次モーメント(3乗の期待値)と4次モーメント(4乗の期待値)がある。(略)平均と分散の影響を除くように標準化された3次モーメントと標準化された4次モーメントを考える。(略)標準正規確率変数の分布に歪みはなく、0を中心に左右対称であるから歪度は0である。歪度の符号により正の歪み、負の歪みを持つ分布といわれる。(略)Z の4次モーメント E (Z4) - 3 は尖度 β2 と呼ばれる'''(([[歪度 - Wikipedia:http://ja.wikipedia.org/wiki/%E6%AD%AA%E5%BA%A6]] より引用))
--正規分布(左右対称の分布)では歪度0、L字型分布は歪度+、J字型分布は歪度-

-上で作った [[正規分布:http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki_public/115.html#sef9d4d9]] と [[ガンマ分布:http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki_public/115.html#ma31357f]] の尖度、歪度を比べてみます。
#geshi(matlab){{
mu = 0; sigma = 1;
dataNorm = normrnd(mu, sigma, [10000 1]);    % 正規分布に従う10000個の乱数
k = 3; theta = 2;
dataGam  = gamrnd(k, theta, [10000 1]);      % ガンマ分布に従う10000個の乱数

k = kurtosis([dataNorm dataGam])       % 尖度(1列目:正規分布、2列目:ガンマ分布)
y = skewness([dataNorm dataGam])       % 歪度(1列目:正規分布、2列目:ガンマ分布)
}}
--引数のベクトルは確率密度曲線ではなく、それぞれの分布に従う乱数(ヒストグラムを書く前の生データ)であることに注意して下さい。
--結果
     (正規)   (ガンマ)
 k =
     2.9537    5.4342
 
 y =
    -0.0096    1.1623

---正規分布の尖度は3、歪度は0に近くなっています。
---ガンマ分布の尖度は正規分布より大きく、歪度は正の値になっている(L字に近い)ことがわかります(これは k=3, θ=2.0 のガンマ分布の場合なので、他のパラメータを指定すれば尖度、歪度は変わります)。

-なお、歪度の大きい分布の形状を正規分布に近づけるための変換手法が提案されています。[[量的分析法 勉強会/確率分布/標本分布が正規分布ではないが、ANOVAを使いたい場合:http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki_public/114.html#x381a770]] を参照して下さい。

***中心モーメント [[moment:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/moment.html]] [#we53daca]

***百分位数値(パーセンタイル)[[prctile:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/prctile.html]] と 分位数(クォンタイル) [[quantile:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/quantile.html]] [#s090ced7]

***標準化z得点 [[zscore:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/zscore.html]] [#ub00c976]

**分布形状の検定 [#q71841db]
-あるデータ群が正規分布に従っているかどうかを検定したいときは、[[1標本コルモゴルフ-スミルノフ検定:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/kstest.html]] を使います。
-2つのデータ群の分布が一致しているかどうかを検定したいときは、[[2標本コルモゴルフ-スミルノフ検定:http://www.mathworks.co.jp/help/ja_JP/toolbox/stats/kstest2.html]] を使います。
-その他
--[[Matlabによる初歩の検定(理研 最上先生):http://homepage3.nifty.com/mogami/articles/matstat.html]] でも、kstwo.m を公開なさっています。
--[[Rによるコルモゴロフ・スミルノフ検定の実例:http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki_public/114.html#ied38004]]
--'''[[QQプロット(正規性検定):http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki/index.php?R%20Note%2F%E7%B5%B1%E8%A8%88%2F%E5%9B%9E%E5%B8%B0%E5%88%86%E6%9E%90#ndc606dd]]'''