simulateDag function

Simulate a DAG with with arbitrary arcs density

Simulate a DAG with with arbitrary arcs density

Provided with node names, returns an abnDAG. Arc density refers to the chance of a node being connected to the node before it.

simulateDag(node.name, data.dists = NULL, edge.density = 0.5, verbose = FALSE)

Arguments

  • node.name: a vector of character giving the names of the nodes. It gives the size of the simulated DAG.
  • data.dists: named list corresponding to the node.name specifying the distribution for each node. If not provided arbitrary distributions are assigned to the nodes.
  • edge.density: number in [0,1] specifying the edge probability in the dag.
  • verbose: print more information on the run.

Returns

object of class abnDag consisting of a named matrix, a named list giving the distribution for each node and an empty element for the data.

Details

This function generates DAGs by sampling triangular matrices and reorder columns and rows randomly. The network density (edge.density) is used column-wise as binomial sampling probability. Then the matrix is named using the user-provided names.

Examples

simdag <- simulateDag(node.name = c("a", "b", "c", "d"), edge.density = 0.5, data.dists = list(a = "gaussian", b = "binomial", c = "poisson", d = "multinomial")) ## Example using Ozon entries: dist <- list(Ozone="gaussian", Solar.R="gaussian", Wind="gaussian", Temp="gaussian", Month="gaussian", Day="gaussian") out <- simulateDag(node.name = names(dist), data.dists = dist, edge.density = 0.8) plot(out)