Miyazawa’s Pukiwiki
R Note/統計/確率分布/ベータ混合分布モデル
はすでに存在します。
開始行:
*ベータ混合分布モデル [#e48dc134]
#contents
**ベータ分布とは/単独のベータ分布推定 [#dc72364f]
-[[MATLAB Note/統計/確率分布/ベータ分布(Beta distributio...
**複数のベータ分布(ベータ混合分布)の推定 [#pcdc9025]
***目的 [#w83228f3]
-正規分布ではない混合分布のクラスタ数推定を行いたい場合。
--クラスタ数を指定するならGMMでもある程度ロバストだが、BI...
***どのようなとき使えそうか(MATLABによる予備的検討) [#m...
-単独のベータ分布ではフィッティングできないとき
--単独ベータ分布でも両端に山が来るような形状をとれるが、...
--例えば &ref(beta_bi.txt); ((これは [[Houseman, Christen...
#geshi(matlab){{
data = csvread('beta_bi.txt');
linescale = [0:0.01:1.2];
[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(beta_bi.png,,40%);
--このデータは2つのベータ分布の混合(混合ベータ分布)で...
-ガウス混合分布モデルの当てはまりが悪い(もしくはクラスタ...
--上のデータをMATLABのGMMにかけて、AICを求めて最適な混合...
#geshi(matlab){{
data = csvread('beta_bi.txt');
options = statset('Display','final'); % STATS構造体の表示...
linescale = [0:0.01:1.2];
for k = 1:4
obj = gmdistribution.fit(data,k,'Options',options); % カ...
MU = obj.mu % 平均
SIGMA = obj.Sigma % 共分散
P = obj.PComponents % 混合比
AIC= obj.AIC; % AIC
% 推定したGMMパラメータから混合正規分布を作る
obj_plot = gmdistribution(MU, SIGMA, P);
pdfdata = pdf(obj_plot, linescale'); % 確率密度関数生成
% プロット
subplot(2,2,k);
[histdata, position] = hist(data);
histdata = histdata / (max(histdata) / max(pdfdata)); % ...
bar(position, histdata); xlim([0,1.2]); % データのヒスト...
hold on
plot(linescale, pdfdata, 'r','LineWidth',2);
xlim([0,1.2]);
title(strcat('cluster:', int2str(k), ' AIC:', int2str(AI...
hold off
end
}}
#ref(beta_bi_GMM.png,,60%);
--AICが最小になるのはクラスタ数が3のときで、正しくクラス...
***ベータ混合分布モデルのRスクリプト((CRANに登録されてい...
-[[Yuan Ji 先生:http://odin.mdacc.tmc.edu/~ylji/]] が ''[...
--そのままでは実行できないのでファイルパスやテストデータ...
---'''[[動くように変更&日本語注釈:http://shower.human.wa...
--[[Ji Y, Wu C, Liu P, Wang J, Coombes KR. Applications o...
---評価はICL-BIC (Biernacki et al., 1998)
AICやBICはベータ混合分布モデルのクラスタ数の推定には適切...
One key issue in the finite mixture model approach is to...
-実行してみる
--単峰性入力をクラスタ数1,クラスタ数2で推定。
#ref(BetaMM1.png,,50%);
--ニ峰性入力をクラスタ数1,クラスタ数2で推定。
#ref(BetaMM2.png,,50%);
---icl.bicの値が小さいほうがより適切なモデルということ。...
-'''[[2012/08/14 ラボスピーチで紹介:http://shower.human.w...
#ref(BMM.png,,70%);
-2012/09/04 入力データそれぞれのクラスタ番号を求める・混...
**Rの混合モデル関連リンク [#a9981854]
-[[CRAN Task View: Cluster Analysis & Finite Mixture Mode...
-[[苦労する遊び人の覚え書き/ガウス混合分布(GMM):http...
-'''[[ノンパラメトリックベイズ(無限混合分布)モデル:http...
終了行:
*ベータ混合分布モデル [#e48dc134]
#contents
**ベータ分布とは/単独のベータ分布推定 [#dc72364f]
-[[MATLAB Note/統計/確率分布/ベータ分布(Beta distributio...
**複数のベータ分布(ベータ混合分布)の推定 [#pcdc9025]
***目的 [#w83228f3]
-正規分布ではない混合分布のクラスタ数推定を行いたい場合。
--クラスタ数を指定するならGMMでもある程度ロバストだが、BI...
***どのようなとき使えそうか(MATLABによる予備的検討) [#m...
-単独のベータ分布ではフィッティングできないとき
--単独ベータ分布でも両端に山が来るような形状をとれるが、...
--例えば &ref(beta_bi.txt); ((これは [[Houseman, Christen...
#geshi(matlab){{
data = csvread('beta_bi.txt');
linescale = [0:0.01:1.2];
[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(beta_bi.png,,40%);
--このデータは2つのベータ分布の混合(混合ベータ分布)で...
-ガウス混合分布モデルの当てはまりが悪い(もしくはクラスタ...
--上のデータをMATLABのGMMにかけて、AICを求めて最適な混合...
#geshi(matlab){{
data = csvread('beta_bi.txt');
options = statset('Display','final'); % STATS構造体の表示...
linescale = [0:0.01:1.2];
for k = 1:4
obj = gmdistribution.fit(data,k,'Options',options); % カ...
MU = obj.mu % 平均
SIGMA = obj.Sigma % 共分散
P = obj.PComponents % 混合比
AIC= obj.AIC; % AIC
% 推定したGMMパラメータから混合正規分布を作る
obj_plot = gmdistribution(MU, SIGMA, P);
pdfdata = pdf(obj_plot, linescale'); % 確率密度関数生成
% プロット
subplot(2,2,k);
[histdata, position] = hist(data);
histdata = histdata / (max(histdata) / max(pdfdata)); % ...
bar(position, histdata); xlim([0,1.2]); % データのヒスト...
hold on
plot(linescale, pdfdata, 'r','LineWidth',2);
xlim([0,1.2]);
title(strcat('cluster:', int2str(k), ' AIC:', int2str(AI...
hold off
end
}}
#ref(beta_bi_GMM.png,,60%);
--AICが最小になるのはクラスタ数が3のときで、正しくクラス...
***ベータ混合分布モデルのRスクリプト((CRANに登録されてい...
-[[Yuan Ji 先生:http://odin.mdacc.tmc.edu/~ylji/]] が ''[...
--そのままでは実行できないのでファイルパスやテストデータ...
---'''[[動くように変更&日本語注釈:http://shower.human.wa...
--[[Ji Y, Wu C, Liu P, Wang J, Coombes KR. Applications o...
---評価はICL-BIC (Biernacki et al., 1998)
AICやBICはベータ混合分布モデルのクラスタ数の推定には適切...
One key issue in the finite mixture model approach is to...
-実行してみる
--単峰性入力をクラスタ数1,クラスタ数2で推定。
#ref(BetaMM1.png,,50%);
--ニ峰性入力をクラスタ数1,クラスタ数2で推定。
#ref(BetaMM2.png,,50%);
---icl.bicの値が小さいほうがより適切なモデルということ。...
-'''[[2012/08/14 ラボスピーチで紹介:http://shower.human.w...
#ref(BMM.png,,70%);
-2012/09/04 入力データそれぞれのクラスタ番号を求める・混...
**Rの混合モデル関連リンク [#a9981854]
-[[CRAN Task View: Cluster Analysis & Finite Mixture Mode...
-[[苦労する遊び人の覚え書き/ガウス混合分布(GMM):http...
-'''[[ノンパラメトリックベイズ(無限混合分布)モデル:http...
ページ名:
既存のページ名で編集する