## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.width = 6,
  fig.height = 5
)
library(umx)
library(OpenMx)
umx_set_auto_plot(FALSE)

## ----load_data----------------------------------------------------------------
data(HSwls, package = "umx")
items = c("x1", "x2", "x3")
str(HSwls[, items])

## ----fit_dwls, message = FALSE, warning = FALSE-------------------------------
mDWLS = umxRAM("Visual_1f_DWLS", data = HSwls, type = "DWLS",
	umxPath("visual", to = items),
	umxPath(var = items),
	umxPath(var = "visual", fixedAt = 1),
	# identification for binary: latent residual means fixed at 0
	umxPath("one", to = items, fixedAt = 0)
)
umxSummary(mDWLS, std = TRUE, refModels = FALSE)

## ----nested_compare, message = FALSE, warning = FALSE-------------------------
# Free loading label is typically visual_to_x1 (umx path naming)
labs = names(omxGetParameters(mDWLS))
dropLab = labs[grepl("visual_to_x1|x1$", labs)][1]
mNested = umxModify(mDWLS, update = dropLab, name = "drop_x1", tryHard = "no")
umxCompare(mDWLS, mNested)

## ----fit_wls_optional, eval = FALSE-------------------------------------------
# mWLS = umxRAM("Visual_1f_WLS", data = HSwls, type = "WLS",
# 	umxPath("visual", to = items),
# 	umxPath(var = items),
# 	umxPath(var = "visual", fixedAt = 1),
# 	umxPath("one", to = items, fixedAt = 0)
# )
# umxSummary(mWLS, std = TRUE, refModels = FALSE)

