我有一個混合效應模型,我想在我的隨機效應協方差矩陣中刪除一些相關性以減少我的自由度。要做到這一點,我認爲我應該使用pdBlocked
,但不能得到正確的語法來獲得我想要的。pdBlocked的語法用於指定混合效應模型中的協方差矩陣nlme
示例代碼:
library(nlme)
m3 <- lme(distance ~ age +I(age^2) + I(age^3), data = Orthodont,
random = list(Subject = pdBlocked(list(~ age,~0 + I(age^2),~0+I(age^3)))))
這樣做具有以下協方差矩陣:
getVarCov(m3)
Random effects variance covariance matrix
(Intercept) age I(age^2) I(age^3)
(Intercept) 5.2217 -0.30418 0.00000000000000 0.00000000000000000000000000
age -0.3042 0.04974 0.00000000000000 0.00000000000000000000000000
I(age^2) 0.0000 0.00000 0.00000000003593 0.00000000000000000000000000
I(age^3) 0.0000 0.00000 0.00000000000000 0.00000000000000000000002277
Standard Deviations: 2.285 0.223 0.000005994 0.000000000004772
這是接近我想要什麼,但不完全是。我想保持I(age^3)
和intercept
,age
爲零之間的相關性,但允許與I(age^2)
相關。事情是這樣的:
getVarCov(m3)
Random effects variance covariance matrix
(Intercept) age I(age^2) I(age^3)
(Intercept) 5.2217 -0.30418 0.00000000000000 0.00000000000000000000000000
age -0.3042 0.04974 0.00000000000000 0.00000000000000000000000000
I(age^2) 0.0000 0.00000 0.00000000003593 a_value
I(age^3) 0.0000 0.00000 a_value 0.00000000000000000000002277
Standard Deviations: 2.285 0.223 0.000005994 0.000000000004772
也爲這個scenrio
getVarCov(m3)
Random effects variance covariance matrix
(Intercept) age I(age^2) I(age^3)
(Intercept) 5.2217 -0.30418 c_value b_value
age -0.3042 0.04974 d_value 0.00000000000000000000000000
I(age^2) c_value d_value 0.00000000003593 a_value
I(age^3) b_value 0.00000 a_value 0.00000000000000000000002277
Standard Deviations: 2.285 0.223 0.000005994 0.000000000004772
我只是不知道如何做一個靈活的協方差矩陣能夠挑選哪些是零。這些鏈接是非常有益的,但仍不能搞清楚究竟 http://rpsychologist.com/r-guide-longitudinal-lme-lmer
讚賞任何幫助。謝謝
有趣。當我運行非結構化模型時,我有非常低的相關性<0.1(在我想要的單元格中爲零),而其他單元格爲> 0.5。即使他們非常小,你會離開他們嗎?你同樣可以說把它們拿出來有害嗎?只是爲了我自己的緣故,你會知道我上面的第二個場景所需的語法嗎?謝謝 – user63230
你的第二種情況不僅僅是完整的(非結構化)模型,即「隨機=〜1 +年齡+ I(年齡^ 2)+ I(年齡^ 3)'? –
不,「年齡」和「我(年齡^ 3)」不相關 – user63230