mx_data <- df_wide %>%
select(starts_with("Int_")) %>%
as.data.frame()
manifest_vars <- c("Int_Baseline", "Int_Year_2",
"Int_Year_4", "Int_Year_6")
latent_vars <- c("eta1", "eta2", "eta3", "eta4",
"delta12", "delta23", "delta34")
model <- mxModel(
"BasicLCSM",
type = "RAM",
manifestVars = manifest_vars,
latentVars = latent_vars,
mxData(observed = mx_data, type = "raw"),
mxPath(from = "eta1", to = "Int_Baseline", free = FALSE, values = 1),
mxPath(from = "eta2", to = "Int_Year_2", free = FALSE, values = 1),
mxPath(from = "eta3", to = "Int_Year_4", free = FALSE, values = 1),
mxPath(from = "eta4", to = "Int_Year_6", free = FALSE, values = 1),
mxPath(from = "eta1", to = "eta2", free = FALSE, values = 1),
mxPath(from = "eta2", to = "eta3", free = FALSE, values = 1),
mxPath(from = "eta3", to = "eta4", free = FALSE, values = 1),
mxPath(from = "delta12", to = "eta2", free = FALSE, values = 1),
mxPath(from = "delta23", to = "eta3", free = FALSE, values = 1),
mxPath(from = "delta34", to = "eta4", free = FALSE, values = 1),
mxPath(from = "one", to = c("eta1", "delta12", "delta23", "delta34"),
free = TRUE, values = c(50, -1, -1, -1),
labels = c("mean_eta1", "mean_d12", "mean_d23", "mean_d34")),
mxPath(from = "one", to = c("eta2", "eta3", "eta4"),
free = FALSE, values = 0),
mxPath(from = "one", to = manifest_vars,
free = FALSE, values = 0),
mxPath(from = "eta1", arrows = 2, free = TRUE, values = 80,
labels = "var_eta1"),
mxPath(from = "delta12", arrows = 2, free = TRUE, values = 30,
labels = "var_delta"),
mxPath(from = "delta23", arrows = 2, free = TRUE, values = 30,
labels = "var_delta"),
mxPath(from = "delta34", arrows = 2, free = TRUE, values = 30,
labels = "var_delta"),
mxPath(from = "eta1", to = "delta12", arrows = 2, free = TRUE,
values = -5, labels = "cov_eta1_d12"),
mxPath(from = "eta1", to = "delta23", arrows = 2, free = FALSE, values = 0),
mxPath(from = "eta1", to = "delta34", arrows = 2, free = FALSE, values = 0),
mxPath(from = "delta12", to = "delta23", arrows = 2, free = FALSE, values = 0),
mxPath(from = "delta12", to = "delta34", arrows = 2, free = FALSE, values = 0),
mxPath(from = "delta23", to = "delta34", arrows = 2, free = FALSE, values = 0),
mxPath(from = c("eta2", "eta3", "eta4"), arrows = 2,
free = FALSE, values = 0),
mxPath(from = manifest_vars, arrows = 2,
free = TRUE, values = 25,
labels = c("resvar", "resvar", "resvar", "resvar"))
)
model <- mxModel(model,
mxBounds(c("var_eta1", "var_delta", "resvar"), min = 0.001))
fit <- mxRun(model)
summary(fit)