Changes in Version 0.6.1
  - Fixed resimulate(): person-specific means are now computed as stationary means (I - B_between)^{-1} * alpha_i rather than using the raw lmer intercept, which was incorrect when between-person predictors are uncentered
  - Added resimulate() arguments: nTime for simulating custom-length time series per person, keep_missing to toggle whether the original variable-level missingness pattern is applied, and variance ("model" or "empirical") to choose between fully model-implied innovation covariance or model partial correlation structure scaled by empirical residual SDs
  - Added full_detrend argument to mlVAR() for removing systematic occasion effects (e.g., time-of-day trends) before estimation

Changes in Version 0.6
  - Added mlGGM() function for multi-level Gaussian Graphical Model estimation using single-step nodewise regression, simultaneously estimating within-cluster and between-cluster partial correlation networks from cross-sectional multilevel data
  - Added predict() S3 method for mlVAR objects: returns fitted values, residuals, and observed data aligned to original input data (with NAs for unpredictable rows). Supports scale_back argument to return values on original data scale, include_ids to include id/day/beep columns, and newdata for out-of-sample predictions. Works with both lmer and lm estimators.
  - Added resimulate() S3 method for mlVAR objects: generates simulated data from a fitted model using person-specific parameters for posterior predictive checks
  - Rewrote residuals() S3 method for mlVAR objects as a wrapper around predict(), now supporting scale_back and include_ids arguments
  - Added .groups = "drop" to all grouped summarise/summarize calls to suppress dplyr 1.0.0+ lifecycle warnings
  - Fixed bug in Stepwise(): selected wrong model at each iteration step
  - Fixed bug in importMplus: temporal fixed effects were only extracted for the first outcome variable
  - Fixed bug in Mplus correlation samples: all samples were computed from the 3rd sample instead of each respective sample
  - Fixed bug in mlVARsample: subjects with improper or non-stationary models were not correctly excluded from simulation
  - Added iteration cap (1000) to mlVARsim repeat loop to prevent infinite loops when stable parameters cannot be generated
  - Minor: avoided redundant eigendecomposition in forcePositive()

Changes in Version 0.5.5
  - Fixed R CMD check NOTE: no visible binding for global variable 'id' in movingWindow
  - Replaced deprecated dplyr functions: summarize_each/funs() with across(), summarise_each_() with across(), filter_() with filter()
  - Removed library() calls from parSim.R
  - Removed stringsAsFactors argument from cbind() calls in NodeWise.R (had no effect)
  - Replaced plyr::ddply and plyr::join with dplyr equivalents; removed plyr dependency
  - Fixed unreachable code after stop() in mlVAR (changed to warning)
  - Fixed duplicate return statement in randomEffects
  - Cleaned up NAMESPACE: removed duplicate export and unused plyr imports
  - Minimum dplyr version bumped to >= 1.0.0

Changes in Version 0.5.4
  - mlVAR with lmer estimation now returns 'step1_residuals' in the output

Changes in Version 0.5.3
  - Random effect SDs of Gamma_theta stored in $results$Gamma_Theta$SD are now based on analytric standard deviations

Changes in Version 0.5.2
  - Removed deprecated function mlVARsim0

Changes in Version 0.5.1
  - Fixed remaining deprecated dplyr functions

Changes in Version 0.5
  - The 'mlVARsample' function has been added to mlVAR
  - Added Myrthe Veenman to contributor list
  - Fixed a bug where contemporaneous standard deviations were reported as variances instead of standard deviations
  - Fixed a bug with the beepvar argument
  - Replaced deprecated dplyr functions
  - Added a warning for when a beep is used multiple times
  - The 'nonsig' argument in the plot method now defaults to 'show' when SD=TRUE
  - Fixed a bug in the summary method when fixed effects estimation was used

Changes in version 0.4.3
  o mlVAR now issues a warning when < 20 observations per subject are used
  o Fixed a bug with 'lmerResults2'
  o Now suppressing warnings and messages from lmer
  o Added a progress bar for computing random effects

Changes in version 0.4.2
  o Contemporaneous multi-level models are now returned in the output

Changes in version 0.4.1
  o mlVAR now uses correlations of residuals as estimate for the contemporaneous correlation matrix (not partial) if estimated inverse covariance matrix is not properly invetable
  o Added mlVARsample function to run a simulation study 
given a mlVAR object.
  o Fixed a bug with estimator = "mPlus"
  o mlVAR now gives a warning when between-subject networks could not be computed, rather than breaking with an uninformative error.

Changes in version 0.4
  o Added AR argument to mlVAR to fit AR models only
  o estimator = "Mplus" is now supported! Requires Mplus 8 to be installed.
    o Several arguments have been added to mlVAR to handle Mplus estimation

Changes in version 0.3.3
  o The plot method for mlVAR sim objects now uses nonsig = "show"
  o plot method now uses nonsig = "show" by default!
  o Summary method now shows p-values for contemporaneous effects
  o Several small bugfixes

Changes in version 0.3.1
  o The 'partial' argument in 'plot.mlVAR' now defaults to TRUE
  o Added 'contemporaneous' argument to mlVAR
  o Added 'lm' estimator for fitting unique VAR models per subject
  o Added 'rule' argument to plot.mlVAR to set the rule of choosing significance in nodewise GGM estimation

Changes in version 0.3
  o Complete rework of package! 
    o mlVAR, mlVARsim, and relevant methods have been completely rewritten
    o Now support contemporaneous effects and between-subjects effects
    o Old functions are now labeled mlVAR0, mlVARsim0, etcetera
  
