glm()
ではあるんだが.
library(lme4)
の
lmer()
関数なんぞを使わねばならんことに.
いやはや.
速度差なので
... + (time | id) + ...
か
……
いやいや,
速度差だけに個体差があるので
lmer()
のばかっぽい記法で
... + (0 + time | id) + ...
だな.
lmer()
の「このデータでは個体差と測定誤差の区別できねーよ,
でなおしてこい」
警告 & 計算拒否攻撃をくらう
……
さてさて,
いつもはここで「ばかばかしいから lmer()
なんぞやーめた」
「こんなのもうゐんばぐす + 重量測定器の測定誤差についての『主観的』
事前分布でケリをつけちまえ!」
戦術にさっさと移行するのだが
……
lmer()
に対する復讐心のみに駆動されて,
ここで上記計算拒否攻撃を突破するワザの天啓を得た.
まことにばかばかしい方式で,
観測データがデータフレイム
d
に入っていたとすると,
これを
dd <- rbind(d, d)
といった塩梅で「複写によるデータ倍増」,
あたかも「一個体から 2 つずつデータを得た」
ように見せかけると,
lmer()
はバカだからだまされて推定計算やってくれるんだよね
(しかもテストデータで確認すると,
わりと正確に個体差のばらつきを推定した).
lmer()
幻惑データ重複わざ
……
まあ,
独創的な呪術ですかね.
小役人の巧妙なウラ金づくりみたいなものかな?
lmer()
遊びもここまでで,
データをよくよく見ると
なぜかというと非線形混合効果モデルが必要であり
(理由は対象の崩壊速度が一定ではなく,
時間とともに速度低下するため)
lmer()
ではなくその非線形版たる
nlmer()
が必要,
でこいつを動かすためには
R 呪われわざのひとつ
selfStart
クラスの定義,
すなわち self-starting 非線形クラスの定義を書かねばならず,
これは
4 年前にも何やら苦闘
してたのだけど,
すごーくめんどう & 難解なのでヤメ.