dual_reg: Dual Regression

View source: R/dual_reg.R

dual_regR Documentation

Dual Regression

Description

Dual Regression

Usage

dual_reg(
  BOLD,
  GICA,
  scale = c("global", "local", "none"),
  scale_sm_xifti = NULL,
  scale_sm_FWHM = 2,
  detrend_DCT = 0,
  center_Bcols = FALSE,
  normA = FALSE
)

Arguments

BOLD

Subject-level fMRI data matrix (V \times T). Rows will be centered.

GICA

Group-level independent components (V \times Q)

scale

"global" (default), "local", or "none". Global scaling will divide the entire data matrix by the mean image standard deviation (mean(sqrt(rowVars(BOLD)))). Local scaling will divide each data location's time series by its estimated standard deviation.

scale_sm_xifti, scale_sm_FWHM

Only applies if scale=="local" and BOLD represents CIFTI-format data. To smooth the standard deviation estimates used for local scaling, provide a "xifti" object with data locations in alignment with BOLD, as well as the smoothing FWHM (default: 2). If no "xifti" object is provided (default), do not smooth.

detrend_DCT

Detrend the data? This is an integer number of DCT bases to use for detrending. If 0 (default), do not detrend.

center_Bcols

Center BOLD across columns (each image)? This is equivalent to performing global signal regression. Default: FALSE.

normA

Scale each IC timeseries (column of A) in the dual regression estimates? Default: FALSE (not recommended). Note that the product A \times S remains the same with either option.

Value

A list containing the subject-level independent components S (V \times Q), and subject-level mixing matrix A (TxQ).

Examples

nT <- 30
nV <- 400
nQ <- 7
mU <- matrix(rnorm(nV*nQ), nrow=nV)
mS <- mU %*% diag(seq(nQ, 1)) %*% matrix(rnorm(nQ*nT), nrow=nQ)
BOLD <- mS + rnorm(nV*nT, sd=.05)
GICA <- mU
dual_reg(BOLD=BOLD, GICA=mU, scale="local")


templateICAr documentation built on Feb. 16, 2023, 8:14 p.m.