
Generate sample data for LiM (3 mixed variables)
Source:R/generate_lim_sample.r
generate_lim_sample.RdGenerates a small dataset with a known causal chain of continuous and
binary (0/1) discrete variables:
x1 (continuous) -> x2 (discrete) -> x3 (continuous).
Continuous variables use Laplace-distributed noise (non-Gaussian, as
required by LiNGAM-family methods); the discrete variable is drawn from a
Bernoulli distribution whose logit is a linear function of its parent.
Value
A list with three elements:
data: data frame with columnsx1,x2,x3.adjacency_matrix: 3x3 true adjacency matrix, following the lingamr convention (m[to, from], i.e.adjacency_matrix["x2", "x1"]is the coefficient of the x1 -> x2 edge).is_continuous: logical vectorc(TRUE, FALSE, TRUE)marking which columns ofdataare continuous.
Examples
dat <- generate_lim_sample(n = 500, seed = 1)
result <- lingam_lim(dat$data, is_continuous = dat$is_continuous)
result$adjacency_matrix
#> x1 x2 x3
#> x1 0 1 0.1358125
#> x2 0 0 0.0000000
#> x3 0 1 0.0000000