10/15 今週末の摂取カロリー
恐ろしい量な気がする.
10/12, 10/13
スライド作成だけ.
10/14
今回はセミナーでRLmodelの尤度計算を試みている.RLは計算負荷が非常に大きいため,ネットワークデータを小さくしないと扱えないらしい(今後の研究のために,どういうことかちゃんと調べたほうがよさそう).特にRは扱えるデータ量が小さいので注意しないといけない.
現段階でのエラーは二つ.
1 Error in while (dL > 0.01) { : missing value where TRUE/FALSE needed
dr < 0.1(前段階との尤度比の差.これが小さくなるということは収束しているということ)の結果がT or Fで出ていない.
→
もしかしたら値が収束していない(発散している)?
[発散する原因で考えられること]
①発散するかどうかは「モデルの規模,パラメタの大きさ,…」で変わってくるらしく,それが論文にも記載されているくらいらしい
②推定プログラムに誤り:同じところを何度もループしているので収束しない
2 Error in solve.default(hhh) :
Lapack routine dgesv: system is exactly singular: U[2,2] = 0
ヘッセ行列のうち一列がすべて0になってしまっている.
$hessian
[,1] [,2] [,3]
[1,] -0.01809823 0 0.000000e+00
[2,] 0.00000000 0 0.000000e+00
[3,] 0.00000000 0 -7.105427e-09
→
[ヘッセ行列が計算できない理由]
変数が完全相関,変数が効用関数に影響しない式形
ICLBモデル integrated choicec and latent variable
客観的な社会的な基準だけでなく,主観的な基準を組みこもうとするもの.
批判
主観的な要因,つまり潜在変数を扱うと,既に使用しているものへの慣性がある(望ましいと判断する)のだから,予測には使えないだろう:内生性によるバイアス
選択行動の将来予測をしようとすると,潜在変数の将来値が必要だが算出が難しい
→客観的属性,社会経済属性と潜在変数の間の関係をモデル化するor長期モニタリングする
めも
セミナー終わったら,pythonのブルーをためしてみる.pipでqrcodeができない理由の解明.
Rによる離散選択モデルの推定方法メモ 兵藤哲郎
セミナー内容は週報かくついでに全部簡単に見直してまとめておくとよさそう.
hhh(ヘッセ行列)の逆行列が返らない
今回に限らずよくある.「ヘッセ行列がお亡くなりになる」でいい資料がでる.
Error in solve.default(hhh):Lapack routine dgesv: system is exactly singular: U[3,3] = 0
とか.hhhが一列0とかだったりすると逆行列が存在しなくなってしまうので,そうするとそれを用いてt値を出そうとするsolve関数のところでエラーになる.ということ.日本語のRのエラーページが少ないのでよくわからないけど多分そう.
ここで,ヘッセ行列の列成分がすべて0になるということはどういうことかについて夜中考えていたことをメモしておく.ヘッセ行列の成分は,関数を説明変数のiとjのもので微分した(二回分微分することになる)ものである.これが0になるということは,変数が効いていないということではないだろうか.つまりこの変数をモデルから覗いてやれば解決するのではないか,と思ってやってみたところ,たいてい解決した.
返らないまま,疑似ヘッセ行列 ginv(hhh)で返すことはできるし,RならNelder-Mead法じゃなくてBFGS法にすれば最適化の時に逆行列を使わずにt値を出すという計算になるので,大丈夫.あとはMCMC法というのがあるらしい.こちらは時間かかりそうだったのでまだ勉強していない.
あとでみる
http://bin.t.u-tokyo.ac.jp/model14/lecture/Sasaki.pdf
10/15
先生方からのコメント:
最短距離を動いているというのはちゃんとモデルとして成り立った結果なので,その大きさがきちんと評価できればそれは良いこと.
そもそも最短距離を通っているようなモデルだったら,シンプルにロジットでよかったのかもしれない .
RLモデルは果たしてEn-routeか?(あとできちんと調べようと思う)
例えば幹線道路ダミーや川沿いダミー,商店街ダミーなどは,ODに依存する部分が大きいので,経路選択モデルに導入するのは難しかったかもしれない.
逐次的な選択,信号が変わったら渡るといった行動が多くみられるので,信号数等は影響しているかもしれない.ルートを出してみたときに,同じODなのにばらつきがあるようならば,そういう動きなのかもしれない.
hhhのせいでt値が返らないだけのモデルがあったのだとすると,そもそもこのモデルだと,モデルはあっていて推定もあっているのだけれど,hhhの逆行列が返らなかっただけというのもあるのかもしれない(サンドイッチ法?というのがあるらしいのであとで調べる).
k番目経路探索で数が足りなくなったというのはどういうことか(これについては,ODが近すぎるとルートを出すために回り道をしてこないといけないのでやたら長いルートしか生成されないとかいうことだと思う.市街地に限定するなどせず)遠いODを取ってきたら列挙できるということだろう).
Rの計算限界を超えてしまうというのはどれくらいの規模か(3000リンクくらい.本当はこれくらいなら回るはずらしい…).
よくあるエラー集 for RL(完全に自分用めも)
hhhの逆行列が返らない(上述)
pがT or Fで返らない(Infになっているとか.そのもとの説明変数代入とかが間違っていないかチェック.)