Mathematica Package (BimodalAnalysis.m) 高崎経済大学 宮田庸一
パッケージを用いる 現行のディレクトリを調べる 上記のフォルダにBimodalAnalysis.mをコピーする Directory[] C:\Program Files\Wolfram Research\Mathematica\5.1 上記のフォルダにBimodalAnalysis.mをコピーする パッケージBimodalAnalysis.mのインストール <<BimodalAnalysis.m
CSV FileのImport data=Import["C:\\Import\\ssh2nen200704.csv","CSV"]; datax1=data[[All,1]]; ind1=data[[All,{2,3}]]; 正答率 100%であれば1 0%であれば1 0.888889 0.861111 0.416667 0.972222 0.75 0.611111 0.722222 0.833333 0.555556
EM algorithmの実行 非等分散の正規混合モデル res1=mclustv[datax1,ind1,2,1,0] 上限の打ち切りの値 コンポーネントの数 下限の打ち切りの値 等分散の正規混合モデル res2=mcluste[datax1,ind1,2,1,0]
ヒストグラム hist[datax1,st] hist[datax1] ヒストグラムの幅の指定 st:スタージェスの方法 frd:Freedman-Diaconis(1981) 何も指定しなければ, Mathematicaのデフォールトの幅が割り当てられる histにはg1vという,グラフを表す変数が入っている
グラフを重ねて表示する 確率分布に推定量(MLE)を代入した関数をplugin関数を用いて、利用することができる。 plugin[x,res1] res1にはEM algorithmで求めたMLEに関する情報が入っている g2v=Plot[plugin[x,res1],{x,Min[datax1],Max[datax1]},PlotRange->{0,2.6}];
グラフを重ねて表示する ヒストグラムとプラグイン推定量を重ねて表示する Show[g1v,g2v,DisplayFunction->$DisplayFunction,PlotRange->{0,3.5},Frame->True];
分位点 打ち切りがない場合の分位点を与える kugiri={.1,.3,.7,.9};← 10%点, 30%点, 70%点, 90%点, 非等分散の場合 seisekiv[datax1,res1,kugiri] {0.395588,0.529473,0.722604,0.857765} 等分散の場合 seisekie[datax1,res2,kugiri] {0.396228,0.529891,0.721331,0.857566}