Ne
が同等としてよいのか?
このあたりも質問してみたけどよーわからんかった.
glm()
が使えん問題なので.
optim()
とか使えば簡単でしょと思いつつとりくんでみたんだけど,
ぢりぢりとしかススまず.
ああ,
すでに研究科のジンギスカンぱーティー (ぢんぱ)
が始まってるのに
……
(下の写真は A 棟 8F のかとーオフィスから
研究科前の芝生を撮影したもの;
100 人ばかりが七輪などをかこんでいる)
optim()
から評価するたびに,
parameter mapping という操作が必要になる.
いままではそれを
R
の中でやってから,
# p -> mp (mapped paramters) matrix.map <- rbind( c(1:length(map.parameters))[map.parameters == 1], parameters ) mp <- map.parameters for (r in data.frame(matrix.map)) mp[r[1]] <- as.numeric(r[2])C で書いた拡張モジュールにわたしていた.
growth6
のみの推定;
growth6
& growth7
同時推定だと 230-240 秒ぐらい).
さーて,
parameter mapping in C 版だと
……
16-17 秒というところか.
なかなかいいぞ.
意外と速くなった.
いままで 6 時間ぐらいかかってた計算が
4 時間ぐらいで片づくようになったわけで.
R
の optim()
ではいろんな計算法が指定可能なんだけど,
頑健な (しかし遅い) Nelder-Mead 法はこういう
1 parameter 推定にはむいていない.
そこで BFGS 法を使った.
これは勾配関数を指定する必要あり.
rbinom(100, 4, prob.flower(DBH))
で生成したパターンであるのに,
思ってたよりばらつきがでかいように見える.
見た目で overdispersion かどうか判定するのは危険だな.
Lex
の電源をうっかりひきぬいてしまった.
そしてこいつの起動ボタンを背面につけかえてたのを忘れて,
一時間ほどぢたばたする.
Makefile
書いたり推定計算や作図の
R
プログラムを変更していくだけなんだが.
とりあえずまだ計算をやってない
アオダモ,サワシバ,ミズナラ
の三樹種だけについて運転開始.
時刻は 1325.
wiki まわりの整備だの,
昨日の開花確率関数の整備だの.
rxvt
もダメで
rxvt-ml
を使うべし,
か
……
とうぶん MacOS X は使いたくないかんぢだ.
Vine Linux はまもなく
3.0
がでる.
よりまっとうな
Perl
だの
Ghostscript
が使えるようになる.
コンパイラーも新しくなるだろう.
vpd:factor=0.40
だけに関する再計算が終了している.
さいわいにも全ての樹種に関して,
この中に最良モデルは含まれていなかった.
vpd:factor=0.20
だろうが
vpd:factor=0.40
だろうが
どちらも比例関係に近いような
(vpd の範囲は [0, 1.5] ぐらいなんで).
ちょっと再考すべきなのかなぁ.
optim()
で線形モデルのパラメーターの最尤推定値を計算する
optim()
が発狂して収束しなくなりそう.
うーむ.
やっぱダメか.
expand.grid()
関数を使えばよいだけのハナシ,
だな.
残り時間が少なくなったおかげで,
検討すべきモデルが限定されてるしまい,
このあたりはかえってやりやすい.
暗中模索時代にはこういう改造はできないわけで.
optim()
ヤメて自作の Nelder-Mead 法関数でも使うか?
しかしたいして速くならんだろうな.
数倍速くならないと,
気象フィルターの
パラメーター探索範囲がひろがらないんだよね.