2009-04-16

Excelのソルバー

最尤推定量をパソコンで計算する方法はいくつもあります。ここではエクセルのソルバーを使う方法を紹介します。講義では扱わないので、読んでみて良く分からなかったら質問に来てください。

まずデータを入力します。今回は上の行を説明のために用いたので、データはA4~C23セルに入力しました。
y=ax+bのaとb、及び標準偏差σを入力するセルを用意します。aはD3、bはE3、σはF3に入力します。最適な値は後で求めますが、何か数字がないと計算が進められないので、とりあえず適当な数を入れておきます。
そして各データ毎に平均パラメータの値ax+bを計算するので、ます1番目のデータの行に=D$3*B4+E$3を入力します。この式を下にコピーしてもセルの番号が変わらないように、D3, E3の3の前に$をつけておきます。


下にコピーして20のデータ全てに対して平均パラメータの値を計算して、次に正規分布の密度関数の式を書きます。定義式をそのまま書いても良いのですが、長いですし、正規分布は有名なのでエクセルにも正規分布の関数が用意されています。
そのためには表の上の方の、式が表示される部分の左のfxをクリックして関数を入力します。

関数の分類として統計、関数名としてNORMDISTを選びます。


Xにはデータを入れるのでC4、平均はax+bなのでG4、標準偏差は回帰においては関心は無いのですが何らかの値を求めなければならないのでF$3、関数形式には密度関数が欲しいので0を入力します。1にすると分布関数になります。


密度関数の式を全てのデータに対してコピーして、次にその対数をI列に入力します。


対数の式を全てのデータに対してコピーして、その合計が対数尤度です。

この対数尤度を最大にするa,b,σの値を探します。探すためにはエクセルのソルバーという機能を使いますが、通常は無効にされていますので、一度だけ次の操作をします。

ツールのアドインをクリックします。


ソルバーアドインにチェックをつけてOKを押してください。


対数尤度のセルをクリックして、ツールのソルバーを選びます。


目的セルは対数尤度が入っているI24、変化させるのはa,b,σのD3:F3、制約条件としては、標準偏差が正なので、F3>0にしたいのですが、制約条件には>は使えなくて≧しか使えないので、0の代わりに充分小さい数0.0001あたりを使ってF3≧0.0001として、最後に目標値が最大値であることを確かめて、実行を押します。

0 件のコメント: