R/correlation_covariance.R

Defines functions cov_to_cor cor_to_cov

Documented in cor_to_cov cov_to_cor

# functions modified from hapsim package

#' correlation to covariance matrix
#' @param .cor_mat correlation matrix
#' @param .sd vector of standard deviations 
#' @export
cor_to_cov <- function(.cor_mat, .sd) {
  dc <- diag(.cor_mat)
  ds <- diag(.sd)
  Mo <- ds %*% .cor_mat %*% ds
  Mo <- Mo - 0.5 * (Mo - t(Mo))
  Mo <- Mo - diag(diag(Mo) - .sd * .sd)
  return(Mo)
}

#' covariance to correlation
#' @param .cov_mat covariance matrix
#' @return list of unit correlation matrix and vector of standard deviations
#' @export
cov_to_cor <- function(.cov_mat) {
  dc <- diag(.cov_mat)
  So <- sqrt(dc)
  ds <- diag(1/So)
  Mo <- ds %*% .cov_mat %*% ds
  Mo <- Mo - 0.5 * (Mo - t(Mo))
  return(list(mat = Mo, sd = So))
}

Try the PKPDmisc package in your browser

Any scripts or data that you put into this service are public.

PKPDmisc documentation built on April 14, 2020, 5:49 p.m.