dynr-package {dynr} | R Documentation |
Dynamic Models with Regime-Switching
Description
Intensive longitudinal data have become increasingly prevalent in various scientific disciplines. Many such data sets are noisy, multivariate, and multi-subject in nature. The change functions may also be continuous, or continuous but interspersed with periods of discontinuities (i.e., showing regime switches). The package 'dynr' (Dynamic Modeling in R) is an R package that implements a set of computationally efficient algorithms for handling a broad class of linear and nonlinear discrete- and continuous-time models with regime-switching properties under the constraint of linear Gaussian measurement functions. The discrete-time models can generally take on the form of a state-space or difference equation model. The continuous-time models are generally expressed as a set of ordinary or stochastic differential equations. All estimation and computations are performed in C, but users are provided with the option to specify the model of interest via a set of simple and easy-to-learn model specification functions in R. Model fitting can be performed using single-subject time series data or multiple-subject longitudinal data. Ou, Hunter, & Chow (2019) <doi:10.32614%2FRJ-2019-012> provided a detailed introduction to the interface and more information on the algorithms.
Details
The DESCRIPTION file:
Package: | dynr |
Date: | 2023-11-27 |
Title: | Dynamic Models with Regime-Switching |
Authors@R: | c(person("Lu", "Ou", role="aut"), person(c("Michael", "D."), "Hunter", role=c("aut", "cre"), email="mike.dynr@gmail.com", comment=c(ORCID = "0000-0002-3651-6709")), person("Sy-Miin", "Chow", role="aut", comment=c(ORCID = "0000-0003-1938-027X")), person("Linying", "Ji", role="aut", email=""), person("Meng", "Chen", role="aut", email=""), person("Hui-Ju", "Hung", role="aut", email=""), person("Jungmin", "Lee", role="aut", email="leejapply@gmail.com"), person("Yanling", "Li", role="aut", email=""), person("Jonathan", "Park", role="aut", email=""), person("Massachusetts Institute of Technology", role="cph"), person("S. G.", "Johnson", role="cph"), person("Benoit", "Scherrer", role="cph"), person("Dieter", "Kraft", role="cph")) |
Maintainer: | Michael D. Hunter <mike.dynr@gmail.com> |
URL: | https://dynrr.github.io/, https://github.com/mhunter1/dynr |
Contact: | <dynr@googlegroups.com> |
Depends: | R (>= 3.0.0), ggplot2 |
Imports: | MASS, Matrix (>= 1.5-0), numDeriv, xtable, latex2exp, grid, reshape2, plyr, mice, magrittr, methods, fda, car, stringi, tibble, deSolve, Rdpack |
Suggests: | testthat, roxygen2 (>= 3.1), knitr, rmarkdown, RcppGSL |
VignetteBuilder: | knitr |
Description: | Intensive longitudinal data have become increasingly prevalent in various scientific disciplines. Many such data sets are noisy, multivariate, and multi-subject in nature. The change functions may also be continuous, or continuous but interspersed with periods of discontinuities (i.e., showing regime switches). The package 'dynr' (Dynamic Modeling in R) is an R package that implements a set of computationally efficient algorithms for handling a broad class of linear and nonlinear discrete- and continuous-time models with regime-switching properties under the constraint of linear Gaussian measurement functions. The discrete-time models can generally take on the form of a state-space or difference equation model. The continuous-time models are generally expressed as a set of ordinary or stochastic differential equations. All estimation and computations are performed in C, but users are provided with the option to specify the model of interest via a set of simple and easy-to-learn model specification functions in R. Model fitting can be performed using single-subject time series data or multiple-subject longitudinal data. Ou, Hunter, & Chow (2019) <doi:10.32614%2FRJ-2019-012> provided a detailed introduction to the interface and more information on the algorithms. |
SystemRequirements: | GNU make |
NeedsCompilation: | yes |
License: | GPL-3 |
LazyLoad: | yes |
LazyData: | yes |
Collate: | 'dynrData.R' 'dynrRecipe.R' 'dynrModelInternal.R' 'dynrModel.R' 'dynrCook.R' 'dynrPlot.R' 'dynrFuncAddress.R' 'dynrMi.R' 'dynrTaste.R' 'dynrVersion.R' 'dataDoc.R' 'dynrGetDerivs.R' 'dynrPredict.R' |
RdMacros: | Rdpack |
Version: | 0.1.16-105 |
Biarch: | TRUE |
RoxygenNote: | 5.0.1 |
Author: | Lu Ou [aut], Michael D. Hunter [aut, cre] (<https://orcid.org/0000-0002-3651-6709>), Sy-Miin Chow [aut] (<https://orcid.org/0000-0003-1938-027X>), Linying Ji [aut], Meng Chen [aut], Hui-Ju Hung [aut], Jungmin Lee [aut], Yanling Li [aut], Jonathan Park [aut], Massachusetts Institute of Technology [cph], S. G. Johnson [cph], Benoit Scherrer [cph], Dieter Kraft [cph] |
Archs: | x64 |
Index of help topics:
EMG Single-subject time series of facial electromyography data EMGsim Simulated single-subject time series to capture features of facial electromyography data ExpandRandomAsLVModel Extend a user-specified model to include random varibles LinearOsc Simulated time series data for a deterministic linear damped oscillator model LogisticSetPointSDE Simulated time series data for a stochastic linear damped oscillator model with logistic time-varying setpoints NonlinearDFAsim Simulated multi-subject time series based on a dynamic factor analysis model with nonlinear relations at the latent level Oscillator Simulated time series data of a damped linear oscillator Outliers Simulated time series data for detecting outliers. PFAsim Simulated time series data of a multisubject process factor analysis PPsim Simulated time series data for multiple eco-systems based on a predator-and-prey model RSPPsim Simulated time series data for multiple eco-systems based on a regime-switching predator-and-prey model TrueInit_Y14 Simulated multilevel multi-subject time series of a Van der Pol Oscillator VARsim Simulated time series data for multiple imputation in dynamic modeling. autoplot.dynrTaste The ggplot of the outliers estimates. coef.dynrModel Extract fitted parameters from a dynrCook Object confint.dynrCook Confidence Intervals for Model Parameters diag,character-method Create a diagonal matrix from a character vector dynr-package Dynamic Models with Regime-Switching dynr.config Check that dynr in configured properly dynr.cook Cook a dynr model to estimate its free parameters dynr.data Create a list of data for parameter estimation (cooking dynr) using 'dynr.cook' dynr.flowField A Function to plot the flow or velocity field for a one or two dimensional autonomous ODE system from the phaseR package written by Michael J. Grayling. dynr.ggplot The ggplot of the smoothed state estimates and the most likely regimes dynr.ldl LDL Decomposition for Matrices dynr.mi Multiple Imputation of dynrModel objects dynr.model Create a dynrModel object for parameter estimation (cooking dynr) using 'dynr.cook' dynr.plotFreq Plot of the estimated frequencies of the regimes across all individuals and time points based on their smoothed regime probabilities dynr.taste Detect outliers in state space models. dynr.taste2 Re-fit state-space model using the estimated outliers. dynr.trajectory A Function to perform numerical integration of the chosen ODE system, for a user-specified set of initial conditions. Plots the resulting solution(s) in the phase plane. This function from the phaseR package written by Michael J. Grayling. dynr.version Current Version String dynrCook-class The dynrCook Class dynrDynamics-class The dynrDynamics Class dynrInitial-class The dynrInitial Class dynrMeasurement-class The dynrMeasurement Class dynrModel-class The dynrModel Class dynrNoise-class The dynrNoise Class dynrRecipe-class The dynrRecipe Class dynrRegimes-class The dynrRegimes Class dynrTrans-class The dynrTrans Class getdx A wrapper function to call functions in the fda package to obtain smoothed estimated derivatives at a specified order internalModelPrep Do internal model preparation for dynr logLik.dynrCook Extract the log likelihood from a dynrCook Object names,dynrCook-method Extract the free parameter names of a dynrCook object names,dynrModel-method Extract the free parameter names of a dynrModel object nobs.dynrCook Extract the number of observations for a dynrCook object nobs.dynrModel Extract the number of observations for a dynrModel object oscData Another simulated multilevel multi-subject time series of a damped oscillator model plot.dynrCook Plot method for dynrCook objects plotFormula Plot the formula from a model plotGCV A function to evaluate the generalized cross-validation (GCV) values associated with derivative estimates via Bsplines at a range of specified smoothing parameter (lambda) values predict.dynrModel 'predict' method for 'dynrModel' objects prep.formulaDynamics Recipe function for specifying dynamic functions using formulas prep.initial Recipe function for preparing the initial conditions for the model. prep.loadings Recipe function to quickly create factor loadings prep.matrixDynamics Recipe function for creating Linear Dynamics using matrices prep.measurement Prepare the measurement recipe prep.noise Recipe function for specifying the measurement error and process noise covariance structures prep.regimes Recipe function for creating regime switching (Markov transition) functions prep.tfun Create a dynrTrans object to handle the transformations and inverse transformations of model paramters printex The printex Method summary.dynrCook Get the summary of a dynrCook object theta_plot A function to plot simple slopes and region of significance. vcov.dynrCook Extract the Variance-Covariance Matrix of a dynrCook object vdpData Another simulated multilevel multi-subject time series of a Van der Pol Oscillator
Because the dynr package compiles C code in response to user input, more setup is required for the dynr package than for many others. We acknowledge that this additional setup can be bothersome, but we believe the ease of use for the rest of the package and the wide variety of models it is possible to fit with it will compensate for this initial burden. Hopefully you will agree!
See the installation vignette referenced in the Examples section below for installation instructions.
The naming convention for dynr exploits the pronunciation of the package name, dynr, pronounced the same as “dinner”. That is, the names of functions and methods are specifically designed to relate to things done surrounding dinner, such as gathering ingredients (e.g., the data), preparing recipes, cooking, and serving the finished product. The general procedure for using the dynr package can be summarized in five steps as below.
Data are prepared using with the
dynr.data()
function.-
Recipes are prepared. To each part of a model there is a corresponding
prep.*()
recipe function. Examples of suchprep.*()
functions include:prep.measurement()
,prep.matrixDynamics()
,prep.formulaDynamics()
,prep.initial()
,prep.noise()
, andprep.regimes()
. The function
dynr.model()
mixes the data and recipes together into a model object of classdynrModel
.The model is cooked with
dynr.cook()
.Results from model fitting and related estimation are served using functions such as
summary()
,plot()
,dynr.ggplot()
(or its aliasautoplot()
),plotFormula()
, andprintex()
.
Note
State-space modeling, dynamic model, differential equation, regime switching, nonlinear
Author(s)
NA
Maintainer: Michael D. Hunter <mike.dynr@gmail.com>
References
Chow S, Grimm KJ, Guillaume F, Dolan CV, McArdle JJ (2013). “Regime-switching bivariate dual change score model.” Multivariate Behavioral Research, 48(4), 463-502. doi:10.1080/00273171.2013.787870.
Chow S, Zhang G (2013). “Nonlinear Regime-Switching State-Space (RSSS) Models.” Psychometrika: Application Reviews and Case Studies, 78(4), 740-768. doi:10.1007/s11336-013-9330-8.
Ou L, Hunter MD, Chow S (2019). “What's for dynr: A package for linear and nonlinear dynamic modeling in R.” The R Journal, 11(1), 1-20.
Yang M, Chow S (2010). “Using state-space model with regime switching to represent the dynamics of Facial electromyography (EMG) data.” Psychometrika: Application and Case Studies, 74(4), 744-771. doi:10.1007/s11336-010-9176-2.
Chow S, Ou L, Ciptadi A, Prince E, You D, Hunter MD, Rehg JM, Rozga A, Messinger DS (2018). “Representing sudden shifts in intensive dyadic interaction data using differential equation models with regime switching.” Psychometrika, 83, 476-510. doi:10.1007/s11336-018-9605-1.
See Also
For other annotated tutorials using the dynr package see https://quantdev.ssri.psu.edu/resources/what%E2%80%99s-dynr-package-linear-and-nonlinear-dynamic-modeling-r
Examples
# For installation instructions see the package vignette below
## Not run:
vignette(package='dynr', 'InstallationForUsers')
## End(Not run)
# This should open a pdf/html file to guide you through proper
# installation and configuration.
#For illustrations of the functions in dynr, check out some of the demo examples in:
## Not run:
demo(package='dynr')
## End(Not run)
#For example, to run the demo 'LinearSDE' type
# the following without the comment character (#) in front of it.
## Not run:
demo('LinearSDE', package='dynr')
## End(Not run)