Up

逆ガンマ分布の描画

Visual C++/CLRプログラム例

 

 逆ガンマ分布(Inverse-gamma distribution)の描画プログラムを作成した。プログラムDrawInvGmma.exe.NET Framework 3.5 対応であるが、このプログラムをクリックして実行すると、まず図1のフォームが表示される。

図1

 

パラメタの値を「Alpha =」と「Beta =」の下のテキストボックス、描画範囲を「min_x =」と「max_x =」の下のテキストボックスに設定して、「Draw」ボタンをクリックすると図2のように描画される。

図2

 

図2の描画画面においてパラメタおよび描画範囲の再設定後、「Draw」ボタンをクリックすると、設定した値で再描画が行われる。

描画画面は、「Save」ボタンのクリックでファイルに保存することができる。

逆ガンマ分布は次式

で与えられる。ただし、である。

 このとき、平均値、分散、モードは次式で与えられる。

関数の描画は、以下のコードで行っている。

         array<Point> ^ pnt = gcnew array<Point>(1000);

         for (int i = 0; i < 1000; i++)

                 pnt[i] = Point( xpos((i + 1) / 1000.0),

                                        ypos(inv_gamma(minX + (i + 1) * (maxX - minX) / 1000.0) / maxV) );

         g->DrawLines( pn, pnt );

まず、CLI配列pntに関数のグラフを1000個の値で分割した点を設定して、DrawLines関数によって描画している。

 

 プログラムのソースコードなどを圧縮ファイルとしてまとめた。この圧縮ファイルDrawInvGmma.zipは、ファイル名をマウスの右ボタンでクリックしてダウンロードすることができる。ダウンロードした圧縮ファイルは、名前をマウスの右ボタンでクリックすると表示されるメニュから「解凍」あるいは「展開」などを選んで解凍することができる。解凍したファイルはVisual C++2008で開くことができる。

 

Visual C++/CLRプログラミングの解説書として<岡本安晴「大学生のための心理学VC++プログラミング入門」勁草書房>を用意した。

 

参考文献

Gelman, A., Carlin, J. B., Stern, H. S. and Rubin, D. B. (1995). Bayesian Data Analysis. Chapman & Hall.

 

Up