Learn R Programming

MixfMRI (version 0.1-4)

initial: Main initialization functions

Description

Main initialization functions.

Usage

initial.em.gbd(PARAM)

initial.RndEM.gbd(PARAM)

Value

These functions return an initialized PARAM for EM runs based on pre-stored configuration within the input uninitialized PARAM.

Arguments

PARAM

a list of uninitialized parameters, as usual, the returned values of set.global(), to be initialized according to data (inside PARAM).

Author

Wei-Chen Chen and Ranjan Maitra.

Details

initial.em.gbd() takes in a template of PARAM (uninitialized), and usually is available by calling set.global(), then return an initialized PARAM which is ready for EM runs.

Internally, there are six different initializations implemented for the function initial.em.gbd() including prob.extend, prob.simple, qnorm.extend, qnorm.simple, extend, and simple. These methods are mainly based on transformation of original space of data (p-values and voxel locations) into more linear space such that the Euclidean distance more makes sense (fairly) to classify data in groups.

initial.RndEM.gbd() implement RndEM initialization algorithm based on repeated calling initial.em.gbd().

Note that all configurations are included in PARAM set by set.global().

References

Chen, W.-C. and Maitra, R. (2021) “A Practical Model-based Segmentation Approach for Accurate Activation Detection in Single-Subject functional Magnetic Resonance Imaging Studies”, arXiv:2102.03639.

See Also

set.global(), fclust(), PARAM.

Examples

Run this code
library(MixfMRI, quietly = TRUE)
library(EMCluster, quietly = TRUE)
# .FC.CT$algorithm <- "em"
# .FC.CT$model.X <- "V"
# .FC.CT$ignore.X <- TRUE
.FC.CT$check.X.unit <- FALSE

### Test toy1.
set.seed(1234)
X.gbd <- toy1$X.gbd
PV.gbd <- toy1$PV.gbd
PARAM <- set.global(X.gbd, PV.gbd, K = 2)
PARAM.new <- initial.em.gbd(PARAM)
PARAM.toy1 <- em.step.gbd(PARAM.new)
id.toy1 <- .MixfMRIEnv$CLASS.gbd
print(PARAM.toy1$ETA)
RRand(toy1$CLASS.gbd, id.toy1)

# \donttest{
.rem <- function(){

  ### Test toy2.
  set.seed(1234)
  X.gbd <- toy2$X.gbd
  PV.gbd <- toy2$PV.gbd
  PARAM <- set.global(X.gbd, PV.gbd, K = 3)
  PARAM.new <- initial.em.gbd(PARAM)
  PARAM.toy2 <- em.step.gbd(PARAM.new)
  id.toy2 <- .MixfMRIEnv$CLASS.gbd
  print(PARAM.toy2$ETA)
  RRand(toy2$CLASS.gbd, id.toy2)

}
# }

Run the code above in your browser using DataLab