R/get_multivariable_test_data.R

Defines functions get_multivariable_test_data

#' Generate Multivariable Data
#'
#' @param mean List of means
#' @param st_dev List of sds
#' @param corrs List of correlations
#' @param n Number of observations per list.
#'
#' @return Matrix of size sum(n) rows by number of states.
#' @export
get_multivariable_test_data <- function(means = list(
  c(0, 1, 5),
  c(1, 0, 8)
),
st_devs = list(
  c(1.3, 1.2, 1.3),
  c(1.3, 1.2, 1.3)
),
corrs = list(
  c(0.9, 0.6, 0.7),
  c(0.1, 0.2, 0.3)
),
n = c(5000, 10000))
{
  do.call(
    "rbind",
    lapply(
      1:length(means),
      function(i) {
        corr_mtx <- sym_mtx(corrs[[i]], FALSE)
        cov_mtx <- diag(st_devs[[i]]) %*% corr_mtx %*% diag(st_devs[[i]])
        MASS::mvrnorm(n[i], means[[i]], cov_mtx)
      }
    )
  )
}
ricky-kotecha/rkHMM documentation built on May 4, 2020, 12:08 a.m.