mx_data <- df_wide %>%
select(starts_with("externalizing_"), starts_with("internalizing_")) %>%
as.data.frame()
ext_vars <- c("externalizing_Baseline", "externalizing_Year_1",
"externalizing_Year_2", "externalizing_Year_3")
int_vars <- c("internalizing_Baseline", "internalizing_Year_1",
"internalizing_Year_2", "internalizing_Year_3")
manifest_vars <- c(ext_vars, int_vars)
latent_vars <- c("i_ext", "s_ext", "i_int", "s_int")
model <- mxModel(
"MLGCM",
type = "RAM",
manifestVars = manifest_vars,
latentVars = latent_vars,
mxData(observed = mx_data, type = "raw"),
mxPath(from = "i_ext", to = ext_vars,
free = FALSE, values = c(1, 1, 1, 1)),
mxPath(from = "s_ext", to = ext_vars,
free = FALSE, values = c(0, 1, 2, 3)),
mxPath(from = "i_int", to = int_vars,
free = FALSE, values = c(1, 1, 1, 1)),
mxPath(from = "s_int", to = int_vars,
free = FALSE, values = c(0, 1, 2, 3)),
mxPath(from = "one", to = c("i_ext", "s_ext", "i_int", "s_int"),
free = TRUE, values = c(45, -0.5, 48, -0.3),
labels = c("mean_i_ext", "mean_s_ext", "mean_i_int", "mean_s_int")),
mxPath(from = "one", to = manifest_vars,
free = FALSE, values = 0),
mxPath(from = "i_ext", arrows = 2, free = TRUE, values = 80,
labels = "var_i_ext"),
mxPath(from = "s_ext", arrows = 2, free = TRUE, values = 3,
labels = "var_s_ext"),
mxPath(from = "i_ext", to = "s_ext", arrows = 2, free = TRUE, values = -5,
labels = "cov_is_ext"),
mxPath(from = "i_int", arrows = 2, free = TRUE, values = 80,
labels = "var_i_int"),
mxPath(from = "s_int", arrows = 2, free = TRUE, values = 4,
labels = "var_s_int"),
mxPath(from = "i_int", to = "s_int", arrows = 2, free = TRUE, values = -5,
labels = "cov_is_int"),
mxPath(from = "i_ext", to = "i_int", arrows = 2, free = TRUE, values = 50,
labels = "cov_i_ext_i_int"),
mxPath(from = "s_ext", to = "s_int", arrows = 2, free = TRUE, values = 3,
labels = "cov_s_ext_s_int"),
mxPath(from = "i_ext", to = "s_int", arrows = 2, free = TRUE, values = -2,
labels = "cov_i_ext_s_int"),
mxPath(from = "i_int", to = "s_ext", arrows = 2, free = TRUE, values = -2,
labels = "cov_i_int_s_ext"),
mxPath(from = ext_vars, arrows = 2,
free = TRUE, values = c(15, 15, 15, 15),
labels = c("resvar_ext1", "resvar_ext2", "resvar_ext3", "resvar_ext4")),
mxPath(from = int_vars, arrows = 2,
free = TRUE, values = c(15, 15, 15, 15),
labels = c("resvar_int1", "resvar_int2", "resvar_int3", "resvar_int4"))
)
fit <- mxRun(model)
summary(fit)