先週の練習問題の注意点
- σ^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
次の3つのモデルの中から、AICを用いて最も適切なモデルを選びなさい。- モデル1
- 体重の分布は男女とも正規分布N(α+βx,σ2)である。
- モデル2
- 男の子の体重の分布は正規分布N(α1+βx,σ2), 女の子の体重は正規分布N(α2+βx,σ2)である。βとσは男女共通で、切片αだけ異なる。
- モデル3
- 男の子の体重の分布は正規分布N(α1+β1x,σ2), 女の子の体重は正規分布N(α2+β2x,σ2)である。σは男女共通で、切片αと傾きβが異なる。
教科書のデータ
表6.3 20名の男性インスリン依存性糖尿病患者の 炭水化物摂取量, 年齢, 身長から計算された理想体重に対する実際の体重の比率%, 蛋白摂取量 |
表7.2 かぶと虫の死亡データ ガス濃度はlog10CS2mgl-1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
出典 |
レポート課題2
表6.3の炭水化物Yの分布として次の8つのモデルを考えて、AICを用いて選択しなさい。- 正規分布N(β0+β1x1+β2x2+β3x3,σ2)
- 正規分布N(β0+β1x1+β2x2,σ2)
- 正規分布N(β0+β1x1+β3x3,σ2)
- 正規分布N(β0+β2x2+β3x3,σ2)
- 正規分布N(β0+β1x1,σ2)
- 正規分布N(β0+β2x2,σ2)
- 正規分布N(β0+β3x3,σ2)
- 正規分布N(β0,σ2)
ロジスティック回帰
表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)ですが、1C0も1C1も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にして実行してみましょう。
すると制約式の端っこではない最適値が求まりました。
最後に極値モデルに関しても最尤推定量を求めてください。
どのモデルが一番良いでしょうか?
0 件のコメント:
コメントを投稿