Skip to contents

Each omic layer is X_i = signal * outer(u_shared, v_true) + signal_spec * outer(u_spec_i, v_spec_i) + noise. Both u and v vectors are unit-norm, so signal is the true singular value of the shared component. The BBP detectability threshold at this scale is (n*p)^(1/4).

Usage

synthetic_control(
  n = 40L,
  p = 5000L,
  K = 2L,
  signal = 25,
  signal_spec = 8,
  noise_sd = 1,
  seed = 42L
)

Arguments

n

integer number of samples (columns in the omic matrix convention)

p

integer number of features / genes per omic layer

K

integer number of omic layers (>= 1)

signal

numeric singular value of the shared component (must be > 0)

signal_spec

numeric singular value of each omic-layer-specific component

noise_sd

numeric standard deviation of the additive i.i.d. Gaussian noise

seed

integer RNG seed for reproducibility

Value

StateTransitionData with SubspaceGroundTruth