多元线性混合模型

问题描述 投票:0回答:2

我想制作一个多元线性混合模型,其中变量

slope_reactivity
peak_reactivity
slope_recovery
作为因变量,以及
normalized_CTseverity
gender
age_years
binary_diagnosis
和因变量。
study
是随机效应。

我得到了这段代码:

model_cortisol <- lmer(slope_reactivity + slope_recovery + 
   peak_reactivity ~ normalized_CTseverity + age_years + 
   gender + binary_diagnosis + (1 | study), 
   data = df_sum_cort)

然而,这只给了我

normalized_CTseverity
等对
slope_reactivity
slope_recovery
peak_reactivity
作为一个整体的效果。我还希望自变量对因变量的影响彼此分开。

我该怎么做?我是否可以更改模型代码中的某些内容,或者可以进行某种事后测试吗?我不想做单独的模型,因为

slope_reactivity
slope_recovery
peak_reactivity
紧密相连。

r model lme4 multivariate-testing
2个回答
2
投票

您并不符合您认为的模型。公式左侧的内容都会被视为标准表达式,因此您的响应变量实际上是所有四个值的sum(可能不是您想要的)。

为了适应

lme4
中的多变量响应,您必须将数据转换为长格式,每个测量值一行(以及一个索引原始观察值的变量)。
tidyr::pivot_longer
是最简单的方法,例如

df_sum_cort$obs <- factor(seq(nrow(df_sum_cort)))
long_df <- dplyr::pivot_longer(df_sum_cort,
   c(slope_reactivity, slope_recovery, peak_reactivity),
   names_to = "var")

这将创建变量

var
value
。然后:

model_cortisol <- lmer(value ~ 0 + var +
  var:(normalized_CTseverity + age_years + 
        gender + binary_diagnosis) +
   (0 + var | obs) + (1|study),
   data = df_long,
   control = lmerControl(check.nobs.vs.nlev = "ignore",
                         check.nobs.vs.rankZ = "ignore"))

这将估计每个响应变量的单独影响(总体截距被

0+
抑制)以及响应之间的相关性。随机效应分量会有点奇怪,因为它们与残差方差混淆,但固定效应应该是可以解释的。

另请参阅https://rpubs.com/bbolker/3336


0
投票

你打电话

summary(model_cortisol)
了吗?这应该会给你截距值。

查看 this 关于 R 统计的书。看起来你介意在那里找到答案,具体取决于你到底想从输出中得到什么。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.