ctModelConvertOMX: Convert an old OpenMx-style ctsem model to the modern ctsem...

View source: R/ctStanModel.R

ctModelConvertOMXR Documentation

Convert an old OpenMx-style ctsem model to the modern ctsem model format.

Description

Convert an old OpenMx-style ctsem model to the modern ctsem model format.

Usage

ctModelConvertOMX(ctmodelobj, type = "ct", tipredDefault = TRUE)

ctStanModel(ctmodelobj, type = "ct", tipredDefault = TRUE)

Arguments

ctmodelobj

ctsem model object created by ctModel with type='omx'.

type

Either 'ct' for continuous time, or 'dt' for discrete time.

tipredDefault

Logical. TRUE sets any parameters with unspecified time independent predictor effects to have effects estimated, FALSE fixes the effect to zero unless individually specified.

Details

ctModelConvertOMX() is primarily a compatibility bridge for older workflows that first build a matrix-list model with ctModel(type='omx'). New Stan-based models can usually be created directly with ctModel(type='ct') or ctModel(type='dt'), which already return the modern format.

Value

List object of class ctStanModel in the modern ctsem model format, with a pars data frame used by ctFit. Random effects are specified for any intercept type parameters (T0MEANS, MANIFESTMEANS, and or CINT), and time independent predictor effects are specified for all parameters. Adjust these after initial specification by directly editing the pars subobject, so model$pars, or by editing the pars-backed matrix view, so model$matrices.

Examples

model <- ctModel(type='omx', Tpoints=50,
n.latent=2, n.manifest=1, 
manifestNames='sunspots', 
latentNames=c('ss_level', 'ss_velocity'),
LAMBDA=matrix(c( 1, 'ma1' ), nrow=1, ncol=2),
DRIFT=matrix(c(0, 1,   'a21', 'a22'), nrow=2, ncol=2, byrow=TRUE),
MANIFESTMEANS=matrix(c('m1'), nrow=1, ncol=1),
# MANIFESTVAR=matrix(0, nrow=1, ncol=1),
CINT=matrix(c(0, 0), nrow=2, ncol=1),
DIFFUSION=matrix(c(
  0, 0,
  0, "diffusion"), ncol=2, nrow=2, byrow=TRUE))

modernmodel=ctModelConvertOMX(model)



ctsem documentation built on June 30, 2026, 5:07 p.m.