generate_data_DAG0: Generate data from one-sample DAG0 with given DAG and model...

View source: R/1sampleDAG0.R

generate_data_DAG0R Documentation

Generate data from one-sample DAG0 with given DAG and model parameters

Description

Generate data from one-sample DAG0 with given DAG and model parameters

Usage

generate_data_DAG0(n, E, alpha, beta, delta, gamma, psi)

Arguments

n

the sample size.

E

an adjacency matrix E of a DAG such that e_{jk} = 1 if k -> j.

alpha

a matrix for the parameter alpha of one-sample DAG0.

beta

a matrix for the parameter beta of one-sample DAG0.

delta

a vector for the parameter delta of one-sample DAG0.

gamma

a vector for the parameter gamma of one-sample DAG0.

psi

a vector for the parameter psi of one-sample DAG0.

Value

a matrix containing data generated from one-sample DAG0 with given DAG and model parameters.

Examples

library(BayesDAG0)
library(igraph)

# set random seed
set.seed(1)

# generate a random DAG E
p   = 10       # the number of variables 
n_e = p        # the number of edges
E_true = matrix(0, p, p)
while (sum(E_true == 1) < n_e)
{
   id_edge = matrix(sample(1 : p, 2), ncol = 2)
   E_true[id_edge] = 1
   g_true = graph_from_adjacency_matrix(t(E_true))
   if (!(is_dag(g_true)))
      E_true[id_edge] = 0
}

# generate model parameters for one-sample DAG0
alpha_true = matrix(0, p, p)
alpha_true[E_true == 1] = runif(n_e, 0.3, 1)
beta_true  = matrix(0, p, p)
beta_true[E_true == 1]  = runif(n_e, -1, -0.3)
delta_true = runif(p, -2, -1)
gamma_true = runif(p, 1, 2)
psi_true   = 1 / runif(p, 1, 5)

# generate data from one-sample DAG0 with given DAG and model parameters
dat = generate_data_DAG0(n = 100, E_true, alpha_true, beta_true, delta_true, gamma_true, psi_true)

junsoukchoi/BayesDAG0 documentation built on Feb. 26, 2025, 2:37 p.m.