106水準、欠損あり。106水準、欠損あり。わかりやすいようにすべての引数を書いてみる。FALSE)この実行例に沿って、主な引数の指定の仕方をメモしていく。fixed引数fixed引数で固定効果を指定する。-1fixed引数はformulaをとる。formulaの左辺には目的変数を書く。この例のように目的変数が複数ある場合にはcbind()でつなぐ。ややこしいのはformulaの右辺である。上の例では目的変数が2個ある。dplyrパッケージでいうgather()ね)。unitsという名前を付けるのである。上の例では、目的変数tarsusとbackそれぞれについて、固定効果を持つ説明変数としてsexとhatchdateを指定したい。hatchdateである。係数はtarsusとbackで異なると考えたい。ついてモデルを組むことを考えよう。hatchdateとすると、係数がtarsusとbackで共通になってしまう。して切片項を除外しているのは、そうしないとbackに対するパラメータ推定値がtarsusとの対比になってしまうからである。この理屈もしばらく腑におちなかったのだが、上で得たオブジェクトm1についてView(as.matrix(m1$X))を観察してようやく意味がわかった(Xは固定効果の計画行列だが、疎行列のdgCMatrixクラスになっているのでas.matrix()しないとわかりにくい)。計画行列は828x2行、8列になる。列の内訳は、まずsexのダミー行列、2(traitの水準数)x3(sexの水準数)=6列。hatchdateの値を格納した2列である(うち828行は左列のみ、残り828行は右列のみ値を持ち、残りは0で埋めてある)。trait:hatchdateとすると、計画行列にはすべての行で1を持つ切片列が加わり、かわりにダミー行列の右端の一列(trait=back:sex=UNK)が削除される。それはわかりにくいわ...いまこのメモを書いていてふと気になったんだけど、仮に説明変数がhatchdateだけだったらどうするんだろう。1,だと切片が消えてしまう。random引数いよいよ本丸である。random引数でランダム効果を指定する。いってすごくわかりにくいので、深呼吸するように。us(trait):fosternestrandom引数はformulaをとる。左辺はいらないのだと思う。リンク関数は省略できる。いくつかの例からみていこう。ランダム項だけ指定する場合。fosternestもし目的変数がtarsusしかなかったらこれでよい。tarsusに対するfosternestのランダム効果の分散$\sigma^2_f$を推定することになる。104$の対角行列で、対角要素はすべて$\sigma^2_f$となる。目的変数がふたつあるときは、これではいけない。この指定だと、tarsusに対するfosternestのランダム効果の分散は$\sigma^2_f$だ、backに対するランダム効果の分散も$\sigma^2_f$だ、そして「tarsusに対するfosternestのランダム効果とbackに対するfosternestのランダム効果の共分散」も$\sigma^2_f$だ、と推定することになるのである。formulaを付け加える。trait:fosternest目的変数が複数あるときは、この式が基本である。いま、$\mathbf{u}$は長さ828x2の長ーいベクトルである。ランダム項としてfosternestを指定したので、計画行列$\mathbf{Z}$は828x2行、104x2列の行列となる。$\mathbf{G}$は828x2行、828x2列の壮大な正方行列である。この$\mathbf{G}$から、ある特定の巣に関わる行と列だけを取り出すと、2x2の正方行列になる。行と列はtraitである。trait:fosternestとは、この2x2の分散共分散行列を、非対角要素は0、対角要素は同一とします、という指定である。分散関数を付け加える。idh(trait):fosternestとすると、分散共分散行列の対角要素だけが別々に推定される。tarsusに対するfosternestのランダム効果の分散$\sigma^2_{f:tarsus}$とbackに対するfosternestのランダム効果の分散$\sigma^2_{f:back}$の2つのパラメータが推定される。us(trait):fosternestとすると、非対角要素を含めた4つが別々に推定される。