Learn R Programming

⚠️There's a newer version (3.10.2) of this package.Take me there.

See the NEWS file for recent updates!

ctsem allows for easy specification and fitting of a range of continuous and discrete time dynamic models, including multiple indicators (dynamic factor analysis), multiple, potentially higher order processes, and time dependent (varying within subject) and time independent (not varying within subject) covariates. Classic longitudinal models like latent growth curves and latent change score models are also possible. Version 1 of ctsem provided SEM based functionality by linking to the OpenMx software, allowing mixed effects models (random means but fixed regression and variance parameters) for multiple subjects. For version 2 of the R package ctsem, we include a hierarchical specification and fitting routine that uses the Stan probabilistic programming language, via the rstan package in R. This allows for all parameters of the dynamic model to individually vary, using an estimated population mean and variance, and any time independent covariate effects, as a prior. Version 3 allows for state dependencies in the parameter specification (i.e. time varying parameters).

The curent manual is at https://cran.r-project.org/package=ctsem/vignettes/hierarchicalmanual.pdf. The original ctsem is documented in a JSS publication (Driver, Voelkle, Oud, 2017), and in R vignette form at https://cran.r-project.org/package=ctsemOMX/vignettes/ctsem.pdf, however these OpenMx based functions have been split off into a sub package, ctsemOMX.

To cite ctsem please use the citation(“ctsem”) command in R.

To install the github version and (if needed) configure your system, from a fresh R session run:

source(file = 'https://github.com/cdriveraus/ctsem/raw/master/installctsem.R')

If there are problems with the above script, you can try:

Manually install rstan, Rtools

remotes::install_github('cdriveraus/ctsem', INSTALL_opts = "--no-multiarch", dependencies = c("Depends", "Imports"))

Or just use the CRAN version, but rstan compiler setup is needed separately for some models:

install.packages('ctsem')

Troubleshooting Rstan / Rtools install for Windows:

Ensure recent version of R and Rtools is installed. If the installctsem.R code has never been run before, be sure to run that (see above).

Place this line in ~/.R/makevars.win , and if there are other lines, delete them:

CXX14FLAGS += -mtune=native -march=native -Wno-ignored-attributes -Wno-deprecated-declarations

see for details

If makevars does not exist, re-run the install code above.

In case of compile errors like g++ not found, ensure the devtools package is installed:

install.packages('devtools')

and include the following in your .Rprofile, replacing c:/Rtools with the appropriate path – sometimes Rbuildtools/4.0/ .

library(devtools)
Sys.setenv(PATH = paste("C:/Rtools/bin", Sys.getenv("PATH"), sep=";"))
Sys.setenv(PATH = paste("C:/Rtools/mingw_64/bin", Sys.getenv("PATH"), sep=";"))
Sys.setenv(BINPREF = "C:/Rtools/mingw_$(WIN)/bin/")

Copy Link

Version

Install

install.packages('ctsem')

Monthly Downloads

899

Version

3.3.11

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Charles Driver

Last Published

September 16th, 2020

Functions in ctsem (3.3.11)

Oscillating

Oscillating
ctDocs

Get documentation pdf for ctsem
ctDiscretiseData

Discretise long format continuous time (ctsem) data to specific timestep.
AnomAuth

AnomAuth
ctCheckFit

Check absolute fit of ctFit or ctStanFit object.
ctDensity

ctDensity
ctDiscretePars

ctDiscretePars
ctDeintervalise

ctDeintervalise
ctCollapse

ctCollapse Easily collapse an array margin using a specified function.
ctExample1

ctExample1
ctExample2

ctExample2
ctModelLatex

Generate and optionally compile latex equation of subject level ctsem model.
ctExample1TIpred

ctExample1TIpred
ctPlotArray

Plots three dimensional y values for quantile plots
ctExample2level

ctExample2level
ctStanContinuousPars

ctStanContinuousPars
ctPoly

Plots uncertainty bands with shading
ctExample4

ctExample4
ctExample3

ctExample3
ctIntervalise

Converts absolute times to intervals for wide format ctsem panel data
ctKalman

ctKalman
Kalman

Kalman
ctStanGenerate

Generate data from a ctstanmodel object
ctStanParMatrices

Returns population system matrices from a ctStanFit object, and vector of values for free parameters.
ctStanDiscretePars

ctStanDiscretePars
ctExtract

Extract samples from a ctStanFit object
ctFit

ctFit function placeholder
ctStanDiscreteParsPlot

ctStanDiscreteParsPlot
ctStanUpdModel

Update an already compiled and fit ctStanFit object
ctWideNames

ctWideNames sets default column names for wide ctsem datasets. Primarily intended for internal ctsem usage.
ctLOO

K fold cross validation for ctStanFit objects
ctLongToWide

ctLongToWide Restructures time series / panel data from long format to wide format for ctsem analysis
ctGenerate

ctGenerate
datastructure

datastructure
ctStanGenerateFromFit

Add a $generated object to ctstanfit object, with random data generated from posterior of ctstanfit object
ctStanParnames

ctStanParnames
inv_logit

Inverse logit
ctstantestdat

ctstantestdat
stanoptimis

Optimize / importance sample a stan or ctStan model.
summary.ctStanFit

summary.ctStanFit
stan_unconstrainsamples

Convert samples from a stanfit object to the unconstrained scale
isdiag

Diagnostics for ctsem importance sampling
ctstantestfit

ctstantestfit
log1p_exp

log1p_exp
standatact_specificsubjects

Adjust standata from ctsem to only use specific subjects
ctWideToLong

ctWideToLong Convert ctsem wide to long format
ctIndplot

ctIndplot
ctsem

ctsem
ctModelHigherOrder

Raise the order of a ctsem model object of type 'omx'.
ctModel

Define a ctsem model
ctStanKalman

Get Kalman filter estimates from a ctStanFit object
plot.ctStanModel

Prior plotting
plot.ctStanFit

plot.ctStanFit
stan_checkdivergences

Analyse divergences in a stanfit object
stanWplot

Runs stan, and plots sampling information while sampling.
ctStanModel

Convert a frequentist (omx) ctsem model specification to Bayesian (Stan).
ctStanTIpredMarginal

Plot marginal relationships between covariates and parameters for a ctStanFit object.
ctStanTIpredeffects

Get time independent predictor effect estimates
ctStanFit

ctStanFit
plot.ctsemFitMeasure

Misspecification plot using ctCheckFit output
sdpcor2cov

sdcor2cov
w32chk

Check for non win32
ctStanFitUpdate

Update a ctStanFit object
longexample

longexample
ctStanPlotPost

ctStanPlotPost
plot.ctKalmanDF

Plots Kalman filter output from ctKalman.
ctStanPostPredict

Compares model implied density and values to observed, for a ctStanFit object.
stan_postcalc

Compute functions of matrices from samples of a stanfit object
stan_reinitsf

Quickly initialise stanfit object from model and data