{
  "_id": "6adb750358000136b5c82b56",
  "Package": "umg",
  "Type": "Package",
  "Title": "Unified Model Graphs for Statistical Models in Psychology",
  "Version": "0.6.1",
  "Authors@R": "person(given = \"Hsiu-Ting\", family = \"Yu\",\nemail = \"hsiutingyu@gmail.com\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-3668-8033\"))",
  "Description": "Constructs, validates, lays out, and renders Unified Model\nGraphs (UMG), a formal graphical grammar for statistical models\nin psychology. Vertices are typed by observability, support,\nand inferential role; edges distinguish stochastic, symmetric,\ndeterministic, and mixing dependence; plates encode replication\nand hierarchy. Diagrams can be themed and rendered with base\n'grid' graphics, with 'ggplot2', as 'TikZ' code, or as\n'Graphviz' DOT, and can be constructed either from one-line\nmotif builders for many model families or automatically from\n'lavaan', 'lme4', 'mirt', 'blavaan', 'brms', 'OpenMx', and\n'qgraph' model objects. A diagram can be inspected as a data\nframe, summarised, and exported back to 'lavaan' model syntax,\nmaking the model-diagram correspondence operational in both\ndirections. Each diagram also exposes identification\ndiagnostics (scaling checks, a graphical counting rule, and a\nd-separation reader) and generates the exploratory display\nscaffolds implied by the model-data duality. The notation\nbuilds on established results for graphical and structural\nequation models: plate notation follows Buntine (1994)\n<doi:10.1613/jair.62>; the counting rule and scaling checks\nfollow Bollen (1989) <doi:10.1002/9781118619179>; and the\nindependence reader implements the d-separation criterion of\nGeiger, Verma and Pearl (1990) <doi:10.1002/net.3230200504>\nthrough the equivalent ancestral graph criterion of Lauritzen,\nDawid, Larsen and Leimer (1990) <doi:10.1002/net.3230200503>.",
  "License": "MIT + file LICENSE",
  "URL": "https://hsiutingyu.github.io/umg/,\nhttps://github.com/hsiutingyu/umg",
  "BugReports": "https://github.com/hsiutingyu/umg/issues",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Language": "en-US",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-23 14:09:03 UTC",
    "User": "root"
  },
  "Author": "Hsiu-Ting Yu [aut, cre]\n(<https://orcid.org/0000-0002-3668-8033>)",
  "Maintainer": "Hsiu-Ting Yu <hsiutingyu@gmail.com>",
  "Config/roxygen2/version": "8.1.0",
  "Repository": "https://hsiutingyu.r-universe.dev",
  "Date/Publication": "2026-10-14 10:20:06 UTC",
  "RemoteUrl": "https://github.com/hsiutingyu/umg",
  "RemoteRef": "HEAD",
  "RemoteSha": "15f0570b20227b7fdec0aecfb684e384d2a34527",
  "RemoteSubdir": "umg",
  "_user": "hsiutingyu",
  "_type": "src",
  "_file": "umg_0.6.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/eaf10fc2679b370e922ac45b541929f9a1c40e46955c356d7ec7fd119a5bf347",
  "_filesize": 1854934,
  "_sha256": "eaf10fc2679b370e922ac45b541929f9a1c40e46955c356d7ec7fd119a5bf347",
  "_expires": "2027-01-31T14:53:54.000Z",
  "_created": "2026-10-23T14:09:03.000Z",
  "_published": "2026-10-23T14:53:55.963Z",
  "_upstream": "https://github.com/hsiutingyu/umg",
  "_status": "success",
  "_maintainer": {
    "name": "Hsiu-Ting Yu",
    "email": "hsiutingyu@gmail.com",
    "login": "hsiutingyu",
    "description": "Quantoid",
    "uuid": 10403471,
    "orcid": "0000-0002-3668-8033"
  },
  "_jobs": [
    {
      "job": 120460152321,
      "time": 179,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12507182921"
    },
    {
      "job": 120460152370,
      "time": 164,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12506753900"
    },
    {
      "job": 120460152692,
      "time": 205,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12509913240"
    },
    {
      "job": 120460152361,
      "time": 171,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12509204509"
    },
    {
      "job": 120456348555,
      "time": 462,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12508075249"
    },
    {
      "job": 120460152396,
      "time": 146,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12506269678"
    },
    {
      "job": 120460152389,
      "time": 131,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12506729641"
    },
    {
      "job": 120460152811,
      "time": 131,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12506988715"
    },
    {
      "job": 120460152331,
      "time": 97,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12507441515"
    }
  ],
  "_buildurl": "https://github.com/r-universe/hsiutingyu/actions/runs/39966089060",
  "_commit": {
    "id": "15f0570b20227b7fdec0aecfb684e384d2a34527",
    "author": "Hsiu-Ting Yu <hsiutingyu@gmail.com>",
    "committer": "Hsiu-Ting Yu <hsiutingyu@gmail.com>",
    "message": "umg 0.6.1 submitted to CRAN\n",
    "time": 1791973206
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "grid",
      "role": "Imports"
    },
    {
      "package": "grDevices",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "lavaan",
      "role": "Suggests"
    },
    {
      "package": "lme4",
      "role": "Suggests"
    },
    {
      "package": "mirt",
      "role": "Suggests"
    },
    {
      "package": "blavaan",
      "role": "Suggests"
    },
    {
      "package": "brms",
      "role": "Suggests"
    },
    {
      "package": "OpenMx",
      "role": "Suggests"
    },
    {
      "package": "qgraph",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "DiagrammeR",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "hsiutingyu",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-34",
      "n": 1
    },
    {
      "week": "2026-35",
      "n": 1
    },
    {
      "week": "2026-37",
      "n": 1
    },
    {
      "week": "2026-38",
      "n": 1
    },
    {
      "week": "2026-39",
      "n": 2
    },
    {
      "week": "2026-40",
      "n": 1
    },
    {
      "week": "2026-42",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "v0.6.0",
      "date": "2026-08-22"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "hsiutingyu",
      "count": 8,
      "uuid": 10403471
    }
  ],
  "_userbio": {
    "uuid": 10403471,
    "type": "user",
    "name": "Hsiu-Ting Yu",
    "followers": 0,
    "description": "Quantoid"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/umg"
  },
  "_devurl": "https://github.com/hsiutingyu/umg",
  "_pkgdown": "https://hsiutingyu.github.io/umg/",
  "_searchresults": 10,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/umg.html",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/hsiutingyu/umg",
  "_realowner": "hsiutingyu",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.6.1",
      "date": "2026-10-22"
    }
  ],
  "_exports": [
    "umg_bifactor",
    "umg_caterpillar",
    "umg_check_scaling",
    "umg_count_parameters",
    "umg_dcm",
    "umg_dsep",
    "umg_eda_scaffold",
    "umg_edge",
    "umg_esem",
    "umg_factor",
    "umg_formative",
    "umg_from_blavaan",
    "umg_from_brms",
    "umg_from_lavaan",
    "umg_from_lmer",
    "umg_from_mirt",
    "umg_from_OpenMx",
    "umg_from_qgraph",
    "umg_ggplot",
    "umg_growth",
    "umg_identify",
    "umg_implied_ci",
    "umg_irt",
    "umg_labelswitching",
    "umg_layout",
    "umg_lca",
    "umg_mediation",
    "umg_mimic",
    "umg_mixture",
    "umg_model",
    "umg_network",
    "umg_node",
    "umg_plate",
    "umg_render_dot",
    "umg_riclpm",
    "umg_save",
    "umg_secondorder",
    "umg_sem",
    "umg_theme",
    "umg_to_dot",
    "umg_to_lavaan",
    "umg_to_tikz",
    "umg_validate"
  ],
  "_help": [
    {
      "page": "as.data.frame.umg",
      "title": "Coerce a UMG to a data frame",
      "topics": [
        "as.data.frame.umg"
      ]
    },
    {
      "page": "plot.umg",
      "title": "Plot a UMG with grid graphics",
      "topics": [
        "plot.umg"
      ]
    },
    {
      "page": "print.umg",
      "title": "Print a Unified Model Graph",
      "topics": [
        "print.umg"
      ]
    },
    {
      "page": "print.umg_identification",
      "title": "Print a UMG identification summary",
      "topics": [
        "print.umg_identification"
      ]
    },
    {
      "page": "summary.umg",
      "title": "Summarise a UMG",
      "topics": [
        "print.summary.umg",
        "summary.umg"
      ]
    },
    {
      "page": "umg_bifactor",
      "title": "Bifactor measurement motif",
      "topics": [
        "umg_bifactor"
      ]
    },
    {
      "page": "umg_caterpillar",
      "title": "Caterpillar (shrinkage) plot of cluster-level estimates",
      "topics": [
        "umg_caterpillar"
      ]
    },
    {
      "page": "umg_check_scaling",
      "title": "Check latent-variable scaling marks",
      "topics": [
        "umg_check_scaling"
      ]
    },
    {
      "page": "umg_count_parameters",
      "title": "Graphical parameter count (t-rule)",
      "topics": [
        "umg_count_parameters"
      ]
    },
    {
      "page": "umg_dcm",
      "title": "Diagnostic classification model (DCM) motif",
      "topics": [
        "umg_dcm"
      ]
    },
    {
      "page": "umg_dsep",
      "title": "Test d-separation in a UMG",
      "topics": [
        "umg_dsep"
      ]
    },
    {
      "page": "umg_eda_scaffold",
      "title": "Generate exploratory display scaffolds from a UMG",
      "topics": [
        "umg_eda_scaffold"
      ]
    },
    {
      "page": "umg_edge",
      "title": "Create a UMG edge",
      "topics": [
        "umg_edge"
      ]
    },
    {
      "page": "umg_esem",
      "title": "Exploratory structural equation model motif",
      "topics": [
        "umg_esem"
      ]
    },
    {
      "page": "umg_factor",
      "title": "Reflective factor (measurement) motif",
      "topics": [
        "umg_factor"
      ]
    },
    {
      "page": "umg_formative",
      "title": "Formative (composite) measurement motif",
      "topics": [
        "umg_formative"
      ]
    },
    {
      "page": "umg_from_blavaan",
      "title": "Build a UMG from a blavaan model",
      "topics": [
        "umg_from_blavaan"
      ]
    },
    {
      "page": "umg_from_brms",
      "title": "Build a UMG from a brms model",
      "topics": [
        "umg_from_brms"
      ]
    },
    {
      "page": "umg_from_lavaan",
      "title": "Build a UMG from a lavaan model",
      "topics": [
        "umg_from_lavaan"
      ]
    },
    {
      "page": "umg_from_lmer",
      "title": "Build a UMG from an lme4 formula",
      "topics": [
        "umg_from_lmer"
      ]
    },
    {
      "page": "umg_from_mirt",
      "title": "Build a UMG from a fitted mirt model",
      "topics": [
        "umg_from_mirt"
      ]
    },
    {
      "page": "umg_from_OpenMx",
      "title": "Build a UMG from an OpenMx RAM model",
      "topics": [
        "umg_from_OpenMx"
      ]
    },
    {
      "page": "umg_from_qgraph",
      "title": "Build a UMG from a qgraph object or weighted adjacency matrix",
      "topics": [
        "umg_from_qgraph"
      ]
    },
    {
      "page": "umg_ggplot",
      "title": "Render a UMG with ggplot2",
      "topics": [
        "autoplot.umg",
        "umg_ggplot"
      ]
    },
    {
      "page": "umg_growth",
      "title": "Latent growth-curve motif",
      "topics": [
        "umg_growth"
      ]
    },
    {
      "page": "umg_identify",
      "title": "Identification summary for a UMG",
      "topics": [
        "umg_identify"
      ]
    },
    {
      "page": "umg_implied_ci",
      "title": "Enumerate basis-set implied conditional independencies",
      "topics": [
        "umg_implied_ci"
      ]
    },
    {
      "page": "umg_irt",
      "title": "Item response theory motif (crossed persons x items)",
      "topics": [
        "umg_irt"
      ]
    },
    {
      "page": "umg_labelswitching",
      "title": "Flag label-switching symmetry in mixtures",
      "topics": [
        "umg_labelswitching"
      ]
    },
    {
      "page": "umg_layout",
      "title": "Compute a layered layout for a UMG",
      "topics": [
        "umg_layout"
      ]
    },
    {
      "page": "umg_lca",
      "title": "Latent class motif",
      "topics": [
        "umg_lca"
      ]
    },
    {
      "page": "umg_mediation",
      "title": "Mediation motif",
      "topics": [
        "umg_mediation"
      ]
    },
    {
      "page": "umg_mimic",
      "title": "MIMIC (multiple-indicator multiple-cause) motif",
      "topics": [
        "umg_mimic"
      ]
    },
    {
      "page": "umg_mixture",
      "title": "Add a finite-mixture wrapper to an existing UMG",
      "topics": [
        "umg_mixture"
      ]
    },
    {
      "page": "umg_model",
      "title": "Assemble and validate a Unified Model Graph",
      "topics": [
        "umg_model"
      ]
    },
    {
      "page": "umg_network",
      "title": "Undirected network (Gaussian graphical model) motif",
      "topics": [
        "umg_network"
      ]
    },
    {
      "page": "umg_node",
      "title": "Create a UMG vertex",
      "topics": [
        "umg_node"
      ]
    },
    {
      "page": "umg_plate",
      "title": "Create a UMG plate",
      "topics": [
        "umg_plate"
      ]
    },
    {
      "page": "umg_render_dot",
      "title": "Render a UMG through DiagrammeR (Graphviz)",
      "topics": [
        "umg_render_dot"
      ]
    },
    {
      "page": "umg_riclpm",
      "title": "Random-intercept cross-lagged panel model (RI-CLPM) motif",
      "topics": [
        "umg_riclpm"
      ]
    },
    {
      "page": "umg_save",
      "title": "Save a UMG diagram to a file",
      "topics": [
        "umg_save"
      ]
    },
    {
      "page": "umg_secondorder",
      "title": "Second-order factor motif",
      "topics": [
        "umg_secondorder"
      ]
    },
    {
      "page": "umg_sem",
      "title": "General structural equation model builder",
      "topics": [
        "umg_sem"
      ]
    },
    {
      "page": "umg_theme",
      "title": "Construct a UMG rendering theme",
      "topics": [
        "umg_theme"
      ]
    },
    {
      "page": "umg_to_dot",
      "title": "Export a UMG as Graphviz DOT code",
      "topics": [
        "umg_to_dot"
      ]
    },
    {
      "page": "umg_to_lavaan",
      "title": "Generate lavaan model syntax from a UMG",
      "topics": [
        "umg_to_lavaan"
      ]
    },
    {
      "page": "umg_to_tikz",
      "title": "Export a UMG as TikZ code",
      "topics": [
        "umg_to_tikz"
      ]
    },
    {
      "page": "umg_validate",
      "title": "Validate well-formedness of a UMG",
      "topics": [
        "umg_validate"
      ]
    }
  ],
  "_readme": "https://github.com/hsiutingyu/umg/raw/HEAD/umg/README.md",
  "_rundeps": [],
  "_vignettes": [
    {
      "source": "umg-gallery.Rmd",
      "filename": "umg-gallery.html",
      "title": "A Gallery of Model Families in the UMG Grammar",
      "author": "Hsiu-Ting Yu",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Measurement models",
        "Reflective factor (CFA)",
        "Bifactor",
        "Second-order factor",
        "Exploratory SEM (full cross-loadings)",
        "Formative measurement and MIMIC",
        "Item response models",
        "Hierarchy, growth, and longitudinal models",
        "Mixtures",
        "Networks",
        "General SEM assembler",
        "Causal license: the badge"
      ],
      "created": "2026-08-29 07:13:38",
      "modified": "2026-08-29 07:13:38",
      "commits": 1
    },
    {
      "source": "umg-identification.Rmd",
      "filename": "umg-identification.html",
      "title": "Reading Identification off the Diagram",
      "author": "Hsiu-Ting Yu",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Scaling marks for latent variables",
        "The counting rule",
        "Label switching",
        "Conditional independence and d-separation",
        "A single summary"
      ],
      "created": "2026-08-29 07:13:38",
      "modified": "2026-08-29 07:13:38",
      "commits": 1
    },
    {
      "source": "umg-intro.Rmd",
      "filename": "umg-intro.html",
      "title": "Unified Model Graphs: An Introduction",
      "author": "Hsiu-Ting Yu",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The grammar in one paragraph",
        "Building a one-factor model by hand",
        "From a lavaan model",
        "From an lme4 formula",
        "TikZ export",
        "Model-data duality",
        "Inspecting a diagram as data",
        "Round-tripping to lavaan"
      ],
      "created": "2026-08-29 07:13:38",
      "modified": "2026-08-29 07:13:38",
      "commits": 1
    }
  ],
  "_score": 5.021189299069938,
  "_indexed": true,
  "_nocasepkg": "umg",
  "_universes": [
    "hsiutingyu"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.6.1",
      "date": "2026-10-23T14:11:53.000Z",
      "distro": "resolute",
      "commit": "15f0570b20227b7fdec0aecfb684e384d2a34527",
      "fileid": "https://r2.ropensci.org/c3427b4dfba1ee3689471c8fa0bd04abf329e6c7ac0b1680d4b3199eba01c7f0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hsiutingyu/actions/runs/39966089060"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.6.1",
      "date": "2026-10-23T14:11:43.000Z",
      "distro": "resolute",
      "commit": "15f0570b20227b7fdec0aecfb684e384d2a34527",
      "fileid": "https://r2.ropensci.org/ee86678a007dfa352baa16c76e02136153bc1029d9d3a53e525470e5b9260d38",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hsiutingyu/actions/runs/39966089060"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.6.1",
      "date": "2026-10-23T14:52:36.000Z",
      "commit": "15f0570b20227b7fdec0aecfb684e384d2a34527",
      "fileid": "https://r2.ropensci.org/38f5597be02958cbc766bea88427dcdb6ae85794b148508fb83c3a21d3f7c0ee",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hsiutingyu/actions/runs/39966089060"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.6.1",
      "date": "2026-10-23T14:49:22.000Z",
      "commit": "15f0570b20227b7fdec0aecfb684e384d2a34527",
      "fileid": "https://r2.ropensci.org/759f842f35e63154dbe9c2b1ef3efb709e2c8a0a07b76a6848bcafa0d91e2d3e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hsiutingyu/actions/runs/39966089060"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.6.1",
      "date": "2026-10-23T14:11:49.000Z",
      "commit": "15f0570b20227b7fdec0aecfb684e384d2a34527",
      "fileid": "https://r2.ropensci.org/161e0608894d9475929f9ef7427fdde036b08959f5a3ad434a3837d7a2851a2a",
      "status": "success",
      "buildurl": "https://github.com/r-universe/hsiutingyu/actions/runs/39966089060"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.6.1",
      "date": "2026-10-23T14:10:57.000Z",
      "commit": "15f0570b20227b7fdec0aecfb684e384d2a34527",
      "fileid": "https://r2.ropensci.org/159d547df80dba0d0bc486ec38b2d0369ce11bb3badd28689a054ccb791f7ee2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hsiutingyu/actions/runs/39966089060"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.6.1",
      "date": "2026-10-23T14:10:41.000Z",
      "commit": "15f0570b20227b7fdec0aecfb684e384d2a34527",
      "fileid": "https://r2.ropensci.org/e4f825a1532357827bced3630609c6ac0b610f44f9cac75dbbd9ee038c8a387a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hsiutingyu/actions/runs/39966089060"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.6.1",
      "date": "2026-10-23T14:10:30.000Z",
      "commit": "15f0570b20227b7fdec0aecfb684e384d2a34527",
      "fileid": "https://r2.ropensci.org/73bc72d20d416c981d0f70f5efd077494abf36b7f600b0cf5d7ef1f8b970ce4e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hsiutingyu/actions/runs/39966089060"
    }
  ]
}