如何解决同时估计2个模型
因此,我正在尝试复制Bauer等人(2006年)在SAS上完成的模型。更准确地说,它是一个堆栈式调解模型:
其中Z,Sm和Sy是规格变量。也就是说,当Sm = 1且Sy = 0时,Z = M,等式变为Z = d + aX + eZ,其中S = 1时Z = m,反之亦然。使用单个方程式的较低级别的1-1-1(即1表示级别1)调解方程式。如果有人感兴趣,可以查看本文的补充材料,其中描述了如何在SAS中编码模型。现在,这里是我的代码尝试执行与R中相同的操作:
## install.packages("MuMIn")
require(mgcv)
library(lme4)
library(tidyverse)
library(dplyr)
library(MuMIn)
data <- read.csv("C:\\Users\\LocalUser\\OneDrive - McGill University\\Potential Project\\sim.csv")
data$xy <- data$x
# Add a Sy variable with values alternating between 0 and 1
data$Sy <- rep(c(1,0),each = 1)
# Add a Sy variable with values alternating between 0 and 1
data$Sm <- rep(c(0,1),each = 1)
# Add a Z variable to the dataframe data
for (row in 1:nrow(data)) {
Sm = data[row,"Sm"]
Sy = data[row,"Sy"]
if(Sm == 1 || Sy == 0){
data$Z[row] <- data$m[row]
} else if (Sm != 1 || Sy != 0){
data$Z[row] <- data$y[row]
}
}
# A subset of the original data frame up to id = 2
rearrange <- subset(data,data$id <= 2)
#Ignore
################################################################################
#M <- data.frame("x" = data$x,"Z" = data$m,"m" = 0,"id" = data$id)
#Y <- data.frame("x" = data$x,"m" = data$m,"Z" = data$y,"id" = data$id)
################################################################################
如果您知道如何以更有效的方式复制Bauer模型,那就太好了。目前,我的想法是将这两种模型结合起来,但目前还不确定。
model <- lmer(Z ~ x + ( x | id),data = data,REML = TRUE,subset = Z == m )
model1 <- lmer(Z ~ xy + m + ( xy + m | id),subset = Z == y)
补充材料met_bauer0009_supp1 p中也有一些详细信息。 2-3我不确定如何实现(即使用Kenward-Roger方法计算自由度从模型中删除一般截距)
也就是说,如果您知道如何同时估计两个模型,那就太好了。我也愿意接受建议!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。