線形混合効果モデルは、伝統的に次のように定式化されます。Ri = Xi × β + Zi × bi + εi ここで、β は推定された固定効果を表し、Z は変量効果を表します。したがって、X は古典的な計画行列です。R を使用して、nlme パッケージから lme を使用してモデルを適合させた後、これら 2 つの行列を抽出できるようにしたいと考えています。たとえば、nlme パッケージにもあるデータセット「Rails」には、ランダムに選択された 6 つの鉄道レールでの超音波移動時間の 3 つの個別の測定値が含まれています。次のように、レールごとにインターセプト固定効果とランダム効果を備えた単純なモデルを適合させることができます。
library(nlme)
lmemodel<-lme(travel ~ 1, random = ~ 1 | Rail, data=Rail)
X 設計マトリックスは、単一の 18x1 マトリックス (6 レール * 3 測定値) であり、次の方法で簡単に抽出できます。
model.matrix(lmemodel, data=Rail)
(Intercept)
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
11 1
12 1
13 1
14 1
15 1
16 1
17 1
18 1
attr(,"assign")
[1] 0
私がやりたいのは、変量効果の設計行列 Z を抽出することです。lme4 パッケージを使用して同じモデルに適合する場合、これは次の方法で実行できます。
library(lme4)
lmermodel<-lmer(travel ~ 1 + (1|Rail),data=Rail)
t(lmermodel@Zt) ##takes the transpose of lmermodel@Zt
lmermodel@X ## extracts the X matrix
ただし、このマトリックスを lme 適合モデルから抽出する方法については途方に暮れています。