2009-06-11

最尤推定法

先週の練習問題の注意点

  • σ^2の値をパラメータにすると、ソルバーが負の数を代入するとエラーになります。範囲に制限をつけても良いのですが、簡単にするために、σの値をパラメータにします。するとソルバーが負の値を代入しても、2乗して正の数になるので大丈夫です。
  • Excelで -A1^2 と書くと(-A1)*(-A1)の意味になります。-A1*A1の意味にするには -(A1^2) と書いてください。
  • A1/B1*C1 と書くと、A1をB1で割ってC1を掛けることになります。B1*C1でA1を割るには A1/(B1*C1) と書いてください。
  • パラメータの値として最初に代入する値があまりにもデータと離れすぎていると、尤度が殆ど0になって対数尤度がマイナス無限大になってしまいます。先週の記事のデータの最後に平均と標準偏差を追加で書いておきました。初期値として水平な線を当てはめることを考えて、αには平均値に近い値として3000, βは水平なので0, σは標準偏差に近い値として270を最初に代入してください。
モデル1の最尤推定量を求めるとこのようになります。

レポート課題1

次の3つのモデルの中から、AICを用いて最も適切なモデルを選びなさい。
モデル1
体重の分布は男女とも正規分布N(α+βx,σ2)である。
モデル2
男の子の体重の分布は正規分布N(α1+βx,σ2), 女の子の体重は正規分布N(α2+βx,σ2)である。βとσは男女共通で、切片αだけ異なる。
モデル3
男の子の体重の分布は正規分布N(α11x,σ2), 女の子の体重は正規分布N(α22x,σ2)である。σは男女共通で、切片αと傾きβが異なる。
解答例(わざと見辛くしています。自分で計算してください。)

教科書のデータ

表6.3 20名の男性インスリン依存性糖尿病患者の
炭水化物摂取量, 年齢,
身長から計算された理想体重に対する実際の体重の比率%,
蛋白摂取量
表7.2 かぶと虫の死亡データ
ガス濃度はlog10CS2mgl-1
炭水化物年齢体重蛋白
yx1x2x3
333310014
40479215
374913518
273514412
304614015
435210115
34629514
482310117
30329815
384210514
503110817
51618519
306313019
364012720
415010915
426410716
465611718
246110013
354811818
372810214
ガス濃度かぶと虫の数死亡数
xny
1.6907596
1.72426013
1.75526218
1.78425628
1.81136352
1.83695953
1.8616261
1.88396060


出典

レポート課題2

表6.3の炭水化物Yの分布として次の8つのモデルを考えて、AICを用いて選択しなさい。
  1. 正規分布N(β01x12x23x32)
  2. 正規分布N(β01x12x22)
  3. 正規分布N(β01x13x32)
  4. 正規分布N(β02x23x32)
  5. 正規分布N(β01x12)
  6. 正規分布N(β02x22)
  7. 正規分布N(β03x32)
  8. 正規分布N(β02)

ロジスティック回帰

表7.2から、ガス濃度毎の死亡割合を計算して図にしました。

このデータに基づいて、死亡確率をガス濃度の関数として表したいと思います。但し確率は0から1の間ですので、直線や多項式を用いると、ガス濃度によっては0から1の範囲をはみ出てしまうので不適です。そこで0から1の範囲をはみ出さないモデルとして次の3つがしばしば使われます。
表の上からi番目の行は、ガス濃度がxiであるときに、かぶと虫ni匹の中のxi匹が死んだということを表しますので、各々のかぶと虫に関して死んだら1、生き残ったら0となるデータをni個観測したら、xi個が1だった、ということになります。従って二項分布B(1,pi)に従う確率変数をni個観測したと考えて、このpiをxiのどのような関数で表すか、という問題になります。二項分布の確率関数p(x)=nCxpx(1-p)n-xで、ExcelではnCx=COMBIN(n,x)ですが、1C01C1も1なので省いて構いません。
モデル1:ロジスティックモデル
死亡数の分布は二項分布B(ni, exp(α+βxi)/(1+exp(α+βxi)))である。
モデル2:プロビットモデル
死亡数の分布は二項分布B(ni, Φ((xi-μ)/σ))である。但しΦは標準正規分布の分布関数で、Excelでは Φ((x-μ)/σ))=NORMDIST(x,μ,σ,1)で書けます。
モデル3:極値モデル
死亡数の分布は二項分布B(ni, 1-exp(-exp(α+βxi))である。
まずロジスティックモデルで確率を計算しましょう。

次に対数尤度の計算です。確率関数はpx(1-p)n-xでしたから、x=1ならば尤度はp、x=0ならば尤度は1-pです。x=1がxi個、x=0がni-xi個ですので、対数尤度はxilog pi+(ni-xi)log (1-pi)をiを1から8まで全部足したものになります。

F12セルの対数尤度を最大にするようなF1、F2セルの値を、ソルバーを用いて求めてください。
モデルによって推定した死亡確率と、実際の死亡割合を比較するとこのようになります。

点は実際の死亡割合、曲線がモデルです。

プロビットモデルに関しても同様にまず確率を求めて、それから対数尤度を計算してみましょう。μは最初はデータの中ごろということで1.8、σはとりあえず1にしてソルバーを使ってください。

すると、分母のσが0になってエラーになりました。
0にならないように変数の範囲に制約をつけましょう。

制約条件(U)の追加(A)をクリックします。

制約をつけるセルはH2、制約式に >0 と書きたいのですが、≧しか使えないのでとりあえず ≧0.1 と書きます。
OKをクリックすると思いがちですが、何故か追加(A)、キャンセルの順番でクリックしないと怒られます。

制約条件が追加されているのを確認したら実行します。

すると最適化は実行されましたが、σの値が先ほど書いた制約式の端っこである0.1になっています。
制約を変えると最適値も変わるかも知れません。

制約式を変えるために、先ほどの制約式をクリックして変更(C)をクリックします。
制約条件の0.1を0.01に書き換えて、先ほど同様追加(A)とキャンセルをクリックして、制約式が変わっているのを確かめてから実行します。

すると0.01では小さすぎてエラーになりました。

仕方ないので、今度は0.02にして実行してみましょう。

すると制約式の端っこではない最適値が求まりました。

最後に極値モデルに関しても最尤推定量を求めてください。

どのモデルが一番良いでしょうか?

レポート課題3

それぞれのモデルの最尤推定量を求めて、どのモデルが一番良いか選択しなさい。

0 件のコメント: