Macaulay2 » Documentation
Packages » StatGraphs :: StatGraphs
next | previous | forward | backward | up | index | toc

StatGraphs -- a package for graphs used in statistical models

Description

This package contains the types of graphs that are used in algebraic statistics: Bigraph and MixedGraph.

A bigraph is graph with bidirected edges and no multiple edges. A mixed graph is a graph with undirected, directed and bidirected edges.

This is an example of a bigraph on 4 vertices. It is created using the method bigraph.

i1 : G = bigraph {{3,4},{1,2},{2,4}}

o1 = Bigraph{1 => {2}   }
             2 => {4, 1}
             3 => {4}
             4 => {3, 2}

o1 : Bigraph

Next is an example of a mixed graph on 4 vertices with undirected, directed and bidirected edges. It is created using the method mixedGraph.

i2 : G = mixedGraph(graph{{1,2}},digraph {{1,3},{2,3}},bigraph {{3,4}})

o2 = MixedGraph{Bigraph => Bigraph{3 => {4}}}
                                   4 => {3}
                Digraph => Digraph{1 => {3}}
                                   2 => {3}
                                   3 => {}
                Graph => Graph{1 => {2}}
                               2 => {1}

o2 : MixedGraph

One can extract key information about mixed graphs using: undirectedGraph(MixedGraph), bigraph(MixedGraph), digraph(MixedGraph), vertices(MixedGraph),

or convert a mixed graph into a more convenient form using: collateVertices(MixedGraph), indexLabelGraph(MixedGraph).

There are several methods that allow to check the properties of mixed graphs: isCyclic(MixedGraph), isLoopless(MixedGraph), isSimple(MixedGraph).

One can also study the properties of vertices using: children(MixedGraph,Thing), parents(MixedGraph,Thing), descendants(MixedGraph,Thing), nondescendants(MixedGraph,Thing), forefathers(MixedGraph,Thing), neighbors(MixedGraph,Thing), nonneighbors(MixedGraph,Thing).

This package allows to construct loopless mixed graphs (LMG) as introduced in Kayvan Sadeghi and Steffen Lauritzen, Markov properties for mixed graphs, Bernoulli 20.2 (2014): 676-696 and to check whether a mixedGraph is an LMG using partitionLMG.

Caveat

StatGraphs requires Graphs version 0.3.3 or later.

See also

Authors

Version

This documentation describes version 0.1 of StatGraphs, released 3 August 2020.

Citation

If you have used this package in your research, please cite it as follows:

@misc{StatGraphsSource,
  title = {{StatGraphs: Graphs specific for algebraic statistics. Version~0.1}},
  author = {Carlos Amendola and Luis David Garcia Puente and Roser Homs Pons and Olga Kuznetsova and Harshit J Motwani},
  howpublished = {A \emph{Macaulay2} package available at
    \url{https://github.com/Macaulay2/M2/tree/stable/M2/Macaulay2/packages}}
}

Exports

  • Types
    • Bigraph -- a graph with bidirected edges and no multiple edges
    • MixedGraph -- a graph that has undirected, directed and bidirected edges
  • Functions and commands
    • bigraph -- create a bigraph
    • collateVertices -- convert a mixed graph into a new mixed graph where each component subgraph has the same set of vertices
    • isLoopless -- check whether a graph contains a loop
    • mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • partitionLMG -- partition the vertices of a loopless mixed graph into adjacent to undirected edges and adjacent to bidirected edges
    • undirectedGraph -- extract the undirected graph component of a mixed graph
  • Methods
    • bigraph(HashTable) -- see bigraph -- create a bigraph
    • bigraph(List) -- see bigraph -- create a bigraph
    • bigraph(List,List) -- see bigraph -- create a bigraph
    • bigraph(List,Matrix) -- see bigraph -- create a bigraph
    • bigraph(Matrix) -- see bigraph -- create a bigraph
    • bigraph(MixedGraph) -- extract the bigraph component of a mixed graph
    • children(MixedGraph,Thing) -- return the children of a vertex of a mixed graph
    • collateVertices(MixedGraph) -- see collateVertices -- convert a mixed graph into a new mixed graph where each component subgraph has the same set of vertices
    • descendants(MixedGraph,Thing) -- return the descendants of a vertex of a mixed graph
    • digraph(MixedGraph) -- extract the digraph component of a mixed graph
    • forefathers(MixedGraph,Thing) -- return the forefathers of a vertex of a mixed graph
    • graph(MixedGraph) -- convert mixed graph to a hash table
    • indexLabelGraph(MixedGraph) -- relabel the vertices of a mixed graph according to their indices, indexed from 0
    • isCyclic(MixedGraph) -- check whether a mixed graph contains a directed cycle
    • isLoopless(Bigraph) -- see isLoopless -- check whether a graph contains a loop
    • isLoopless(Digraph) -- see isLoopless -- check whether a graph contains a loop
    • isLoopless(Graph) -- see isLoopless -- check whether a graph contains a loop
    • isLoopless(MixedGraph) -- see isLoopless -- check whether a graph contains a loop
    • isSimple(MixedGraph) -- check whether a mixed graph is simple
    • mixedGraph(Bigraph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • mixedGraph(Bigraph,Digraph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • mixedGraph(Bigraph,Digraph,Graph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • mixedGraph(Bigraph,Graph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • mixedGraph(Bigraph,Graph,Digraph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • mixedGraph(Digraph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • mixedGraph(Digraph,Bigraph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • mixedGraph(Digraph,Bigraph,Graph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • mixedGraph(Digraph,Graph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • mixedGraph(Digraph,Graph,Bigraph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • mixedGraph(Graph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • mixedGraph(Graph,Bigraph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • mixedGraph(Graph,Bigraph,Digraph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • mixedGraph(Graph,Digraph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • mixedGraph(Graph,Digraph,Bigraph) -- see mixedGraph -- create a mixed graph from a combination of undirected graph, digraph and bigraph
    • neighbors(MixedGraph,Thing) -- return the neighbors of a vertex of a mixed graph
    • net(MixedGraph) -- print a mixed graph as a net
    • nondescendants(MixedGraph,Thing) -- return the nondescendents of a vertex of a mixed graph
    • nonneighbors(MixedGraph,Thing) -- return the neighbors of a vertex of a mixed graph
    • parents(MixedGraph,Thing) -- return the parents of a vertex of a mixed graph
    • partitionLMG(MixedGraph) -- see partitionLMG -- partition the vertices of a loopless mixed graph into adjacent to undirected edges and adjacent to bidirected edges
    • toString(MixedGraph) -- print a mixed graph as a string
    • undirectedGraph(MixedGraph) -- see undirectedGraph -- extract the undirected graph component of a mixed graph
    • vertexSet(MixedGraph) -- see vertices(MixedGraph) -- create a union of all vertices of a mixed graph
    • vertices(MixedGraph) -- create a union of all vertices of a mixed graph

For the programmer

The object StatGraphs is a package, defined in StatGraphs.m2.


The source of this document is in /build/reproducible-path/macaulay2-1.25.06+ds/M2/Macaulay2/packages/StatGraphs.m2:344:0.