我有一个混合效应模型,我想在我的随机效应协方差矩阵中删除一些相关性以减少我的自由度。要做到这一点,我认为我应该使用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