線性混合效應模型傳統上按照以下方式制定。 Ri = Xi×β+ Zi×bi +εi 其中β代表估計的固定效應,Z代表隨機效應。 X因此是經典的設計矩陣。使用R,我希望能夠從nlme包中使用lme擬合模型後提取這兩個矩陣。例如,在nlme軟件包中也可以找到數據集「Rails」,其中包含對隨機選擇的6條軌道上的超聲波傳播時間的三次單獨測量。我可以用一個簡單的模型來擬合每個鐵路的攔截固定效應和隨機效應,並給出以下幾點。提取nlme中的隨機效應設計矩陣
library(nlme)
lmemodel<-lme(travel ~ 1, random = ~ 1 | Rail, data=Rail)
的X設計矩陣僅僅是一個18×1矩陣(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([email protected]) ##takes the transpose of [email protected]
[email protected] ## extracts the X matrix
不過,我很茫然,以如何提取這馬特里x從一個lme擬合的模型。
如果內部表示在未來發生變化,最好使用getME(lmermodel,「Z」)或getME(lmermodel,「X」)「,而不是直接訪問對象中的槽。 –
感謝您的提示。 – iantist