generate_data_DAG0 | R Documentation |
Generate data from one-sample DAG0 with given DAG and model parameters
generate_data_DAG0(n, E, alpha, beta, delta, gamma, psi)
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. |
a matrix containing data generated from one-sample DAG0 with given DAG and model parameters.
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.