Miyazawa’s Pukiwiki
MATLAB Note/統計/確率分布
はすでに存在します。
開始行:
#access
#analog
#contents
*確率分布(確率密度関数) [#x3078125]
-確率分布の特性と分類に関して、[[さまざまな確率分布:http:...
-以下、Statistics Toolbox の関数を使用します。
--参考:[[Statistics Toolbox でサポートされている確率分布...
--Rでも同じことができるはずです。[[R Note/統計/確率分布:h...
**連続変数(Continuous variable) [#of48139c]
-連続的に変化する値の出現頻度を扱う分布。
--【引用】 '''(略)棒が倒れる方向 X は、0 から 360°の間...
--【引用】'''連続変数の分布では面積が重要。例えばX=aからX...
***正規分布(Normal distribution)、ガウス分布(Gaussian ...
-[[正規分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E6%...
--''平均μ、標準偏差σから求まる''
--左右対称、多くのデータが正規分布に従う
--データの平均値の集合は、元のデータの分布の種類によらず...
--[[HMM音響モデル:http://shower.human.waseda.ac.jp/~m-kou...
--適当な区間の外側を0にすることで[[窓関数:http://ja.wikip...
-μ = 0, σ = 1 の正規分布(標準正規分布)を作ってみます。
--まずは以下を実行します。
#geshi(matlab){{
%パラメータの宣言
mu = 0;
sigma = 1;
}}
--この分布に従う乱数を10000個(10000×1の配列で)作るには、...
#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%);
--ヒストグラムの頂点を結んだ線が確率密度曲線(の近似)に...
#geshi(matlab){{
linescale = [-5:0.01:5]; ...
pdfdata = normpdf(linescale, mu, sigma); ...
plot(linescale, pdfdata); xlim([-5,5]); title('normpdf');...
}}
#ref(plot_norm_3.png,,50%);
--ヒストグラムの各バーを、x座標の小さいものから順に足しあ...
#geshi(matlab){{
histsum = cumsum(histdata); ...
cdfdata = normcdf(linescale, mu, sigma); ...
subplot(2,1,1); bar(position, histsum); xlim([-5,5]); tit...
subplot(2,1,2); plot(linescale, cdfdata); xlim([-5,5]); ...
}}
#ref(plot_norm_4.png,,50%);
-得られたデータセットが正規分布に従うと仮定して、データか...
--データのフィッティングには関数 [[normfit:http://www.mat...
--上で作ったμ = 0, σ = 1 の乱数正規分布のデータを使ってパ...
#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]);...
hold off
}}
#ref(plot_norm_5.png,,50%);
---ここでは暫定的に、ヒストグラムの頂点と確率密度関数の頂...
---以下が出力されます。muhatが推定した平均(μ)、sigmahat...
muhat =
0.0017
sigmahat =
0.9915
muci =
-0.0178
0.0211
sigmaci =
0.9779
1.0054
--なお、データが正規分布であることを仮定できるなら、[[ガ...
#geshi(matlab){{
options = statset('Display','final');
obj = gmdistribution.fit(data,1,'Options',options); % 混...
pdfdata = normpdf(linescale, obj.mu, obj.Sigma); % GM...
figure, bar(position, histdata); xlim([-5,5]); % プ...
hold on
plot(linescale, pdfdata,'r','LineWidth',2); xlim([-5,5]);...
hold off
}}
#ref(plot_norm_GMM.png,,50%);
-ちなみに、正規分布の確率密度関数の二次導関数をメキシカン...
#geshi(matlab){{
plot( -1 * diff(diff(pdfdata)) ); title('Mexican hat func...
}}
#ref(plot_norm_mexican.png,,50%);
-[[ガウス混合分布モデル:http://shower.human.waseda.ac.jp/...
--複数の正規分布の混合とみなせるデータセットから、元の各...
***ガンマ分布(Gamma distribution) [#ma31357f]
-[[ガンマ分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E...
--''形状母数 k、尺度母数 θ から求まる''
--左に歪んだL字分布。
--【引用】 '''電子部品の寿命分布や通信工学におけるトラフ...
--蝸牛基底膜の聴覚細胞の応答関数に用いられる([[ガンマチ...
-k = 3, θ = 2.0 のガンマ分布を作ってみます。
--まずは以下を実行します。
#geshi(matlab){{
%パラメータの宣言
k = 3;
theta = 2;
}}
--この分布に従う乱数を10000個(10000×1の配列で)作るには、...
#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:htt...
#geshi(matlab){{
linescale = [0:0.01:30]; ...
pdfdata = gampdf(linescale, k, theta); ...
plot(linescale, pdfdata); xlim([0,30]); title('gampdf'); ...
}}
#ref(plot_gam_3.png,,50%);
--累積密度曲線は、関数 [[gamcdf:http://www.mathworks.co.j...
#geshi(matlab){{
histsum = cumsum(histdata); ...
cdfdata = gamcdf(linescale, k, theta); ...
subplot(2,1,1); bar(position, histsum); xlim([0,30]); tit...
subplot(2,1,2); plot(linescale, cdfdata); xlim([0,30]); ...
}}
***ワイブル分布(Weibull distribution) [#o45e79af]
-[[ワイブル分布 - Wikipedia:http://ja.wikipedia.org/wiki/...
--''ワイブル係数(形状パラメータ) m、尺度パラメータ η か...
--【引用】 '''m=1は指数分布、m=2はレイリー分布になる'''((...
--左に歪んだL字分布。
--【引用】 '''物体の強度、時間に対する劣化現象や寿命を統...
***ロジスティック分布(Logistic distribution) [#ad8f7d73]
-[[ロジスティック分布 - Wikipedia:http://ja.wikipedia.org...
--''第一変数μ 、 第二変数 s から求まる''
--左右対称の分布。
--【引用】 '''正規分布と同様に対称なS字(シグモイド)型の...
--【引用】 '''ロジスティック分布の累積分布関数に見る曲線...
---データが直線で回帰できないときは、ロジスティック関数(...
---ロジスティック関数の逆関数を [[ロジット関数:http://ja....
---ロジスティック関数のさまざまな応用例は [[ロジスティッ...
***ベータ分布(Beta distribution) [#ff6a4cd6]
-[[Beta distribution - Wikipedia:http://en.wikipedia.org/...
--''第一変数 p、第二変数 q から求まる'' ([[英語版Wikiped...
--パラメータ次第で左右対称、左に歪んだL字分布、右に歪んだ...
--【引用】 '''独立に一様分布 U(0,1) に従う p+q-1 個の確率...
--【引用】 '''工学的な実用例はあまりない'''(([[ベータ分布...
-p = 2.5, q = 1.5 のベータ分布を作ってみます。
--まずは以下を実行します。
#geshi(matlab){{
%パラメータの宣言
p = 2.5;
q = 1.5;
}}
--この分布に従う乱数を10000個(10000×1の配列で)作るには、...
#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:ht...
#geshi(matlab){{
linescale = [0:0.01:1.2]; ...
pdfdata = betapdf(linescale, p, q); ...
plot(linescale, pdfdata); xlim([0,1.2]); title('betapdf')...
}}
#ref(plot_beta_3.png,,50%);
---ベータ分布の確率密度曲線の平均と分散は、関数 [[betasta...
#geshi(matlab){{
[M, V] = betastat(p, q)
}}
---p = 2.5, q = 1.5 のときの平均は0.6250、分散は0.0469で...
#geshi(matlab){{
M = p / (p + q)
V = (p * q) / ((p + q) ^ 2 * (p + q + 1))
}}
--累積密度曲線は、関数 [[betacdf:http://www.mathworks.co....
#geshi(matlab){{
histsum = cumsum(histdata); ...
cdfdata = betacdf(linescale, p, q); ...
subplot(2,1,1); bar(position, histsum); xlim([0,1.2]); ti...
subplot(2,1,2); plot(linescale, cdfdata); xlim([0,1.2]); ...
}}
-得られたデータセットがベータ分布に従うと仮定して、データ...
--データのフィッティングには関数 [[betafit:http://www.mat...
--上で作った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]...
hold off
}}
#ref(plot_beta_4.png,,50%);
---ここでは暫定的に、ヒストグラムの頂点と確率密度関数の頂...
---以下が出力されます。phat(1)が推定したpパラメータ、phat...
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....
--複数のベータ分布の混合とみなせるデータセットから、元の...
---ガウス混合分布モデルでも、ある程度の分布の歪みには頑健...
***ディリクレ分布(Dirichlet distribution) [#af2d9825]
-[[ディリクレ分布 - Wikipedia:http://ja.wikipedia.org/wik...
--【引用】'''ベータ分布を多変量に拡張して一般化した形をし...
--ディリクレ分布とベータ分布の関係に関する議論
---[[ベータ分布とディリクレ分布:http://d.hatena.ne.jp/rya...
---[[「統計学関連なんでもあり」BBS:http://aoki2.si.gunma-...
-'''[[Infinite Mixture Model:http://shower.human.waseda.a...
**離散変数(Categorical variable) [#e8ffc479]
-離散的に変化する値(二値のみ、整数のみ等)の出現頻度を扱...
--【引用】 '''サイコロを投げるような場合における確率関数...
***二項分布(Binomial distribution)[#ucdd8b68]
-[[二項分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E4%...
--''成功確率 p 、試行回数 n から求まる''
--左右対称の分布
--【引用】 '''結果が成功か失敗のいずれかである n 回の独立...
--【引用】 '''ある集団において,特性 A を持つものの割合が...
-n = 20, p = 0.4 の二項分布を作ってみます。
--まずは以下を実行します。
#geshi(matlab){{
%パラメータの宣言
n = 20;
p = 0.4;
}}
--この分布に従う乱数を10000個(10000×1の配列で)作るには、...
#geshi(matlab){{
data = binornd(n, p, [10000 1]); ...
bar(data); xlim([0,10000]); title('binornd'); ...
}}
#ref(plot_bino_1.png,,50%);
---ここで出力される値が意味するのは「『成功率0.4の試行を2...
--ヒストグラムで書いてみます。
#geshi(matlab){{
[histdata, position] = hist(data); ...
bar(position, histdata); xlim([0,20]); title('binornd'); ...
}}
#ref(plot_bino_2.png,,50%);
--ヒストグラムの頂点を結んだ線が確率密度曲線(の近似)に...
#geshi(matlab){{
linescale1 = [0:0.1:20]; % x座標...
pdfdata1 = binopdf(linescale1, n, p); % 確率...
linescale2 = [0:1:20]; % x座標...
pdfdata2 = binopdf(linescale2, n, p); % 確率...
subplot(2,1,1); plot(linescale1, pdfdata1); xlim([0,20]);...
subplot(2,1,2); plot(linescale2, pdfdata2); xlim([0,20]);...
}}
#ref(plot_bino_3.png,,50%);
---このように、離散分布の関数は、x座標に連続値(小数点を...
--ヒストグラムの各バーを、x座標の小さいものから順に足しあ...
#geshi(matlab){{
histsum = cumsum(histdata); % ヒス...
cdfdata1 = binocdf(linescale1, n, p); % 累積...
cdfdata2 = binocdf(linescale2, n, p); % 累積...
subplot(3,1,1); bar(position, histsum); xlim([0,20]); tit...
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 が一定であるとき...
-【引用】 '''製品中の不良品の個数,一定時間内に電話がかか...
--値に上限と下限をもつような、「閉じた尺度」のデータはポ...
---0%~100%、0点~100点など。こういったデータは分布の中心...
---片方にのみ開いた尺度(負値を持たないデータ、年収など)...
***ベルヌーイ分布 [#sa97ea1c]
**分布形状の測定 [#b36814ba]
-以下、Statistics Toolbox / [[形状の測度:http://www.mathw...
***尖度 [[kurtosis:http://www.mathworks.co.jp/help/ja_JP/...
-尖度:分布の頂点がどれだけ尖っているか。
--【引用】 '''正規分布と比べて、尖度が大きければ鋭いピー...
--MATLABの [[kurtosis:http://www.mathworks.co.jp/help/ja_...
-歪度:分布の左右がどれだけ非対称か。
--【引用】 '''確率分布の分布特性を示すためには期待値およ...
--正規分布(左右対称の分布)では歪度0、L字型分布は歪度+...
-上で作った [[正規分布:http://shower.human.waseda.ac.jp/~...
#geshi(matlab){{
mu = 0; sigma = 1;
dataNorm = normrnd(mu, sigma, [10000 1]); % 正規分布に...
k = 3; theta = 2;
dataGam = gamrnd(k, theta, [10000 1]); % ガンマ分布...
k = kurtosis([dataNorm dataGam]) % 尖度(1列目:正...
y = skewness([dataNorm dataGam]) % 歪度(1列目:正...
}}
--引数のベクトルは確率密度曲線ではなく、それぞれの分布に...
--結果
(正規) (ガンマ)
k =
2.9537 5.4342
y =
-0.0096 1.1623
---正規分布の尖度は3、歪度は0に近くなっています。
---ガンマ分布の尖度は正規分布より大きく、歪度は正の値にな...
-なお、歪度の大きい分布の形状を正規分布に近づけるための変...
***中心モーメント [[moment:http://www.mathworks.co.jp/hel...
***百分位数値(パーセンタイル)[[prctile:http://www.mathw...
***標準化z得点 [[zscore:http://www.mathworks.co.jp/help/j...
**分布形状の検定 [#q71841db]
-あるデータ群が正規分布に従っているかどうかを検定したいと...
-2つのデータ群の分布が一致しているかどうかを検定したいと...
-その他
--[[Matlabによる初歩の検定(理研 最上先生):http://homepa...
--[[Rによるコルモゴロフ・スミルノフ検定の実例:http://show...
--'''[[QQプロット(正規性検定):http://shower.human.wased...
終了行:
#access
#analog
#contents
*確率分布(確率密度関数) [#x3078125]
-確率分布の特性と分類に関して、[[さまざまな確率分布:http:...
-以下、Statistics Toolbox の関数を使用します。
--参考:[[Statistics Toolbox でサポートされている確率分布...
--Rでも同じことができるはずです。[[R Note/統計/確率分布:h...
**連続変数(Continuous variable) [#of48139c]
-連続的に変化する値の出現頻度を扱う分布。
--【引用】 '''(略)棒が倒れる方向 X は、0 から 360°の間...
--【引用】'''連続変数の分布では面積が重要。例えばX=aからX...
***正規分布(Normal distribution)、ガウス分布(Gaussian ...
-[[正規分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E6%...
--''平均μ、標準偏差σから求まる''
--左右対称、多くのデータが正規分布に従う
--データの平均値の集合は、元のデータの分布の種類によらず...
--[[HMM音響モデル:http://shower.human.waseda.ac.jp/~m-kou...
--適当な区間の外側を0にすることで[[窓関数:http://ja.wikip...
-μ = 0, σ = 1 の正規分布(標準正規分布)を作ってみます。
--まずは以下を実行します。
#geshi(matlab){{
%パラメータの宣言
mu = 0;
sigma = 1;
}}
--この分布に従う乱数を10000個(10000×1の配列で)作るには、...
#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%);
--ヒストグラムの頂点を結んだ線が確率密度曲線(の近似)に...
#geshi(matlab){{
linescale = [-5:0.01:5]; ...
pdfdata = normpdf(linescale, mu, sigma); ...
plot(linescale, pdfdata); xlim([-5,5]); title('normpdf');...
}}
#ref(plot_norm_3.png,,50%);
--ヒストグラムの各バーを、x座標の小さいものから順に足しあ...
#geshi(matlab){{
histsum = cumsum(histdata); ...
cdfdata = normcdf(linescale, mu, sigma); ...
subplot(2,1,1); bar(position, histsum); xlim([-5,5]); tit...
subplot(2,1,2); plot(linescale, cdfdata); xlim([-5,5]); ...
}}
#ref(plot_norm_4.png,,50%);
-得られたデータセットが正規分布に従うと仮定して、データか...
--データのフィッティングには関数 [[normfit:http://www.mat...
--上で作ったμ = 0, σ = 1 の乱数正規分布のデータを使ってパ...
#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]);...
hold off
}}
#ref(plot_norm_5.png,,50%);
---ここでは暫定的に、ヒストグラムの頂点と確率密度関数の頂...
---以下が出力されます。muhatが推定した平均(μ)、sigmahat...
muhat =
0.0017
sigmahat =
0.9915
muci =
-0.0178
0.0211
sigmaci =
0.9779
1.0054
--なお、データが正規分布であることを仮定できるなら、[[ガ...
#geshi(matlab){{
options = statset('Display','final');
obj = gmdistribution.fit(data,1,'Options',options); % 混...
pdfdata = normpdf(linescale, obj.mu, obj.Sigma); % GM...
figure, bar(position, histdata); xlim([-5,5]); % プ...
hold on
plot(linescale, pdfdata,'r','LineWidth',2); xlim([-5,5]);...
hold off
}}
#ref(plot_norm_GMM.png,,50%);
-ちなみに、正規分布の確率密度関数の二次導関数をメキシカン...
#geshi(matlab){{
plot( -1 * diff(diff(pdfdata)) ); title('Mexican hat func...
}}
#ref(plot_norm_mexican.png,,50%);
-[[ガウス混合分布モデル:http://shower.human.waseda.ac.jp/...
--複数の正規分布の混合とみなせるデータセットから、元の各...
***ガンマ分布(Gamma distribution) [#ma31357f]
-[[ガンマ分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E...
--''形状母数 k、尺度母数 θ から求まる''
--左に歪んだL字分布。
--【引用】 '''電子部品の寿命分布や通信工学におけるトラフ...
--蝸牛基底膜の聴覚細胞の応答関数に用いられる([[ガンマチ...
-k = 3, θ = 2.0 のガンマ分布を作ってみます。
--まずは以下を実行します。
#geshi(matlab){{
%パラメータの宣言
k = 3;
theta = 2;
}}
--この分布に従う乱数を10000個(10000×1の配列で)作るには、...
#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:htt...
#geshi(matlab){{
linescale = [0:0.01:30]; ...
pdfdata = gampdf(linescale, k, theta); ...
plot(linescale, pdfdata); xlim([0,30]); title('gampdf'); ...
}}
#ref(plot_gam_3.png,,50%);
--累積密度曲線は、関数 [[gamcdf:http://www.mathworks.co.j...
#geshi(matlab){{
histsum = cumsum(histdata); ...
cdfdata = gamcdf(linescale, k, theta); ...
subplot(2,1,1); bar(position, histsum); xlim([0,30]); tit...
subplot(2,1,2); plot(linescale, cdfdata); xlim([0,30]); ...
}}
***ワイブル分布(Weibull distribution) [#o45e79af]
-[[ワイブル分布 - Wikipedia:http://ja.wikipedia.org/wiki/...
--''ワイブル係数(形状パラメータ) m、尺度パラメータ η か...
--【引用】 '''m=1は指数分布、m=2はレイリー分布になる'''((...
--左に歪んだL字分布。
--【引用】 '''物体の強度、時間に対する劣化現象や寿命を統...
***ロジスティック分布(Logistic distribution) [#ad8f7d73]
-[[ロジスティック分布 - Wikipedia:http://ja.wikipedia.org...
--''第一変数μ 、 第二変数 s から求まる''
--左右対称の分布。
--【引用】 '''正規分布と同様に対称なS字(シグモイド)型の...
--【引用】 '''ロジスティック分布の累積分布関数に見る曲線...
---データが直線で回帰できないときは、ロジスティック関数(...
---ロジスティック関数の逆関数を [[ロジット関数:http://ja....
---ロジスティック関数のさまざまな応用例は [[ロジスティッ...
***ベータ分布(Beta distribution) [#ff6a4cd6]
-[[Beta distribution - Wikipedia:http://en.wikipedia.org/...
--''第一変数 p、第二変数 q から求まる'' ([[英語版Wikiped...
--パラメータ次第で左右対称、左に歪んだL字分布、右に歪んだ...
--【引用】 '''独立に一様分布 U(0,1) に従う p+q-1 個の確率...
--【引用】 '''工学的な実用例はあまりない'''(([[ベータ分布...
-p = 2.5, q = 1.5 のベータ分布を作ってみます。
--まずは以下を実行します。
#geshi(matlab){{
%パラメータの宣言
p = 2.5;
q = 1.5;
}}
--この分布に従う乱数を10000個(10000×1の配列で)作るには、...
#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:ht...
#geshi(matlab){{
linescale = [0:0.01:1.2]; ...
pdfdata = betapdf(linescale, p, q); ...
plot(linescale, pdfdata); xlim([0,1.2]); title('betapdf')...
}}
#ref(plot_beta_3.png,,50%);
---ベータ分布の確率密度曲線の平均と分散は、関数 [[betasta...
#geshi(matlab){{
[M, V] = betastat(p, q)
}}
---p = 2.5, q = 1.5 のときの平均は0.6250、分散は0.0469で...
#geshi(matlab){{
M = p / (p + q)
V = (p * q) / ((p + q) ^ 2 * (p + q + 1))
}}
--累積密度曲線は、関数 [[betacdf:http://www.mathworks.co....
#geshi(matlab){{
histsum = cumsum(histdata); ...
cdfdata = betacdf(linescale, p, q); ...
subplot(2,1,1); bar(position, histsum); xlim([0,1.2]); ti...
subplot(2,1,2); plot(linescale, cdfdata); xlim([0,1.2]); ...
}}
-得られたデータセットがベータ分布に従うと仮定して、データ...
--データのフィッティングには関数 [[betafit:http://www.mat...
--上で作った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]...
hold off
}}
#ref(plot_beta_4.png,,50%);
---ここでは暫定的に、ヒストグラムの頂点と確率密度関数の頂...
---以下が出力されます。phat(1)が推定したpパラメータ、phat...
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....
--複数のベータ分布の混合とみなせるデータセットから、元の...
---ガウス混合分布モデルでも、ある程度の分布の歪みには頑健...
***ディリクレ分布(Dirichlet distribution) [#af2d9825]
-[[ディリクレ分布 - Wikipedia:http://ja.wikipedia.org/wik...
--【引用】'''ベータ分布を多変量に拡張して一般化した形をし...
--ディリクレ分布とベータ分布の関係に関する議論
---[[ベータ分布とディリクレ分布:http://d.hatena.ne.jp/rya...
---[[「統計学関連なんでもあり」BBS:http://aoki2.si.gunma-...
-'''[[Infinite Mixture Model:http://shower.human.waseda.a...
**離散変数(Categorical variable) [#e8ffc479]
-離散的に変化する値(二値のみ、整数のみ等)の出現頻度を扱...
--【引用】 '''サイコロを投げるような場合における確率関数...
***二項分布(Binomial distribution)[#ucdd8b68]
-[[二項分布 - Wikipedia:http://ja.wikipedia.org/wiki/%E4%...
--''成功確率 p 、試行回数 n から求まる''
--左右対称の分布
--【引用】 '''結果が成功か失敗のいずれかである n 回の独立...
--【引用】 '''ある集団において,特性 A を持つものの割合が...
-n = 20, p = 0.4 の二項分布を作ってみます。
--まずは以下を実行します。
#geshi(matlab){{
%パラメータの宣言
n = 20;
p = 0.4;
}}
--この分布に従う乱数を10000個(10000×1の配列で)作るには、...
#geshi(matlab){{
data = binornd(n, p, [10000 1]); ...
bar(data); xlim([0,10000]); title('binornd'); ...
}}
#ref(plot_bino_1.png,,50%);
---ここで出力される値が意味するのは「『成功率0.4の試行を2...
--ヒストグラムで書いてみます。
#geshi(matlab){{
[histdata, position] = hist(data); ...
bar(position, histdata); xlim([0,20]); title('binornd'); ...
}}
#ref(plot_bino_2.png,,50%);
--ヒストグラムの頂点を結んだ線が確率密度曲線(の近似)に...
#geshi(matlab){{
linescale1 = [0:0.1:20]; % x座標...
pdfdata1 = binopdf(linescale1, n, p); % 確率...
linescale2 = [0:1:20]; % x座標...
pdfdata2 = binopdf(linescale2, n, p); % 確率...
subplot(2,1,1); plot(linescale1, pdfdata1); xlim([0,20]);...
subplot(2,1,2); plot(linescale2, pdfdata2); xlim([0,20]);...
}}
#ref(plot_bino_3.png,,50%);
---このように、離散分布の関数は、x座標に連続値(小数点を...
--ヒストグラムの各バーを、x座標の小さいものから順に足しあ...
#geshi(matlab){{
histsum = cumsum(histdata); % ヒス...
cdfdata1 = binocdf(linescale1, n, p); % 累積...
cdfdata2 = binocdf(linescale2, n, p); % 累積...
subplot(3,1,1); bar(position, histsum); xlim([0,20]); tit...
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 が一定であるとき...
-【引用】 '''製品中の不良品の個数,一定時間内に電話がかか...
--値に上限と下限をもつような、「閉じた尺度」のデータはポ...
---0%~100%、0点~100点など。こういったデータは分布の中心...
---片方にのみ開いた尺度(負値を持たないデータ、年収など)...
***ベルヌーイ分布 [#sa97ea1c]
**分布形状の測定 [#b36814ba]
-以下、Statistics Toolbox / [[形状の測度:http://www.mathw...
***尖度 [[kurtosis:http://www.mathworks.co.jp/help/ja_JP/...
-尖度:分布の頂点がどれだけ尖っているか。
--【引用】 '''正規分布と比べて、尖度が大きければ鋭いピー...
--MATLABの [[kurtosis:http://www.mathworks.co.jp/help/ja_...
-歪度:分布の左右がどれだけ非対称か。
--【引用】 '''確率分布の分布特性を示すためには期待値およ...
--正規分布(左右対称の分布)では歪度0、L字型分布は歪度+...
-上で作った [[正規分布:http://shower.human.waseda.ac.jp/~...
#geshi(matlab){{
mu = 0; sigma = 1;
dataNorm = normrnd(mu, sigma, [10000 1]); % 正規分布に...
k = 3; theta = 2;
dataGam = gamrnd(k, theta, [10000 1]); % ガンマ分布...
k = kurtosis([dataNorm dataGam]) % 尖度(1列目:正...
y = skewness([dataNorm dataGam]) % 歪度(1列目:正...
}}
--引数のベクトルは確率密度曲線ではなく、それぞれの分布に...
--結果
(正規) (ガンマ)
k =
2.9537 5.4342
y =
-0.0096 1.1623
---正規分布の尖度は3、歪度は0に近くなっています。
---ガンマ分布の尖度は正規分布より大きく、歪度は正の値にな...
-なお、歪度の大きい分布の形状を正規分布に近づけるための変...
***中心モーメント [[moment:http://www.mathworks.co.jp/hel...
***百分位数値(パーセンタイル)[[prctile:http://www.mathw...
***標準化z得点 [[zscore:http://www.mathworks.co.jp/help/j...
**分布形状の検定 [#q71841db]
-あるデータ群が正規分布に従っているかどうかを検定したいと...
-2つのデータ群の分布が一致しているかどうかを検定したいと...
-その他
--[[Matlabによる初歩の検定(理研 最上先生):http://homepa...
--[[Rによるコルモゴロフ・スミルノフ検定の実例:http://show...
--'''[[QQプロット(正規性検定):http://shower.human.wased...
ページ名:
既存のページ名で編集する