matrix2dag {simDAG} | R Documentation |
Obtain a DAG
object from a Adjacency Matrix and a List of Node Types
Description
The sim_from_dag
function requires the user to specify the causal relationships inside a DAG
object containing node information. This function creates such an object using a adjacency matrix and a list of node types. The resulting DAG
will be only partially specified, which may be useful for the dag_from_data
function.
Usage
matrix2dag(mat, type)
Arguments
mat |
A p x p adjacency matrix where p is the number of variables. The matrix should be filled with zeros. Only places where the variable specified by the row has a direct causal effect on the variable specified by the column should be 1. Both the columns and the rows should be named with the corresponding variable names. |
type |
A named list with one entry for each variable in |
Details
An adjacency matrix is simply a square matrix in which each node has one column and one row associated with it. For example, if the node A has a causal effect on node B, the matrix will contain 1
in the spot matrix["A", "B"]
. This function uses this kind of matrix and additional information about the node type to create a DAG
object. The resulting DAG
cannot be used in the sim_from_dag
function directly, because it will not contain the necessary parameters such as beta-coefficients or intercepts etc. It may, however, be passed directly to the dag_from_data
function. This is pretty much it's only valid use-case. If the goal is to to specify a full DAG
manually, the user should use the empty_dag
function in conjunction with node
calls instead, as described in the respective documentation pages and the vignettes.
The output will never contain time-dependent nodes. If this is necessary, the user needs to manually define the DAG.
Value
Returns a partially specified DAG
object.
Author(s)
Robin Denz
See Also
empty_dag
, node
, node_td
, dag_from_data
Examples
library(simDAG)
# simple example adjacency matrix
mat <- matrix(c(0, 0, 1, 0, 0, 1, 0, 0, 0), ncol=3, byrow=TRUE)
colnames(mat) <- c("age", "sex", "death")
rownames(mat) <- c("age", "sex", "death")
type <- list(age="rnorm", sex="rbernoulli", death="binomial")
matrix2dag(mat=mat, type=type)