1

我有以下我想在 R 中编写的 SAS 代码。我知道 class 语句在 R 中是多余的(不是必需的)。

proc mixed data=in_data;
class G F K kal;
model conc=;
random G F K(F) kal(G*F*K);
ods output covparms=out.cov_out;
run;

我尝试了下面的代码,没有运气。

适合 <- lmer( conc ~ (1 | G) + (1 | F) + (1 | K/F) + (1 | kal/G:F:K) , sample_1)

具有以下输出。我希望不要得到 kal 或 K 的值。

summary(fit)

Random effects:
 Groups    Name        Variance  Std.Dev.
 G:F:K:kal (Intercept) 1.421e-04 0.011921
 F:K       (Intercept) 1.326e-05 0.003641
 F         (Intercept) 6.548e-05 0.008092
 kal       (Intercept) 9.852e-06 0.003139
 K         (Intercept) 1.272e-05 0.003567
 G         (Intercept) 2.165e-03 0.046527
 Residual              4.647e-04 0.021557
4

1 回答 1

2

您的公式转换为:

conc ~值是使用G + F固定效应(K|F)随机斜率K变化的G(Z|G/F/K)随机Z变化的斜率K嵌套在F嵌套的G。此外,当您使用\then:时,这将转换为:(Z|G) + (Z|G:F) + (Z|G:F:K). 您不使用0 +or- 1在您的定义中,因此包括拦截。

因此,您的模型转换为:conc ~ 1 + G + F + (1 + K|F) + (1 + Z|G) + (1 + Z|G:F) + (1 + Z|G:F:K). 这是你想要的吗?

可能有问题的是,在您的定义K中,随机斜率和分组变量都是随机效应的——这是为了目的吗?

查看Bates 等人的文章。(印刷中)和这个包中的lme4公式。

于 2014-12-05T00:08:34.740 回答