# gaussianRing(MixedGraph) -- ring of Gaussian correlations of a graphical model coming from a mixed graph

## Synopsis

• Function: gaussianRing
• Usage:
gaussianRing G
• Inputs:
• Optional inputs:
• Coefficients => ..., default value QQ, optional input to choose the base field in markovRing or gaussianRing
• kVariableName => ..., default value k, symbol used for indeterminates in a ring of Gaussian joint probability distributions
• lVariableName => ..., default value l, symbol used for indeterminates in a ring of Gaussian joint probability distributions
• pVariableName => ..., default value p, symbol used for indeterminates in a ring of Gaussian joint probability distributions
• sVariableName => ..., default value s, symbol used for indeterminates in a ring of Gaussian joint probability distributions
• Outputs:
• a ring, a polynomial ring with indeterminates $s_{(i,j)},k_{(i,j)},l_{(i,j)},p_{(i,j)}$

## Description

This function accepts a mixed graph as input. The outputted ring contains the indeterminates $s_{(i,j)}$ associated to the covariance matrix of the model plus two or three new lists of indeterminates depending on the type of edges of the graph:

- The $k_{(i,j)}$ indeterminates in the gaussianRing are the nonzero entries in the concentration matrix in the graphical model associated to the undirected graph.

- The $l_{(i,j)}$ indeterminates consist of regression coefficients associated to the directed edges in the graph.

- The $p_{(i,j)}$ indeterminates in the gaussianRing are the nonzero entries in the covariance matrix of the error terms in the graphical model associated to a mixed graph with bidirected edges.

Mixed graphs in this package can be of two different types depending on their edges:

Directed and bidirected edges: two new lists of indeterminates. For each directed edge $i \to j$ in the mixed graph there is an indeterminate, denoted by default $l_{(i,j)}$, corresponding to the associated direct causal effect parameter in the model. For each bidirected edge $i$<->$j$ there is an indeterminate, denoted by default $p_{(i,j)}$, corresponding to the associated noise parameter. Finally, for each node $i$, there is an indeterminate $p_{(i,i)}$.

 i1 : G = mixedGraph(digraph {{b,{c,d}},{c,{d}}},bigraph {{a,d}}) o1 = MixedGraph{Bigraph => Bigraph{a => {d}} } d => {a} Digraph => Digraph{b => {c, d}} c => {d} d => {} Graph => Graph{} o1 : MixedGraph i2 : R = gaussianRing G o2 = R o2 : PolynomialRing i3 : gens R o3 = {l , l , l , p , p , p , p , p , s , s , s , s , b,c b,d c,d a,a b,b c,c d,d a,d a,a a,b a,c a,d ------------------------------------------------------------------------ s , s , s , s , s , s } b,b b,c b,d c,c c,d d,d o3 : List i4 : covarianceMatrix R o4 = | s_(a,a) s_(a,b) s_(a,c) s_(a,d) | | s_(a,b) s_(b,b) s_(b,c) s_(b,d) | | s_(a,c) s_(b,c) s_(c,c) s_(c,d) | | s_(a,d) s_(b,d) s_(c,d) s_(d,d) | 4 4 o4 : Matrix R <--- R i5 : directedEdgesMatrix R o5 = | 0 0 0 0 | | 0 0 l_(b,c) l_(b,d) | | 0 0 0 l_(c,d) | | 0 0 0 0 | 4 4 o5 : Matrix R <--- R i6 : bidirectedEdgesMatrix R o6 = | p_(a,a) 0 0 p_(a,d) | | 0 p_(b,b) 0 0 | | 0 0 p_(c,c) 0 | | p_(a,d) 0 0 p_(d,d) | 4 4 o6 : Matrix R <--- R

Undirected, directed and bidirected edges: three new lists of indeterminates. Besides the two already described above, undirected edges are dealt with in the same way as in gaussianRing applied to an instance of the type Graph, with the corresponding indeterminates being $k_{(i,j)}$ by default.

Only loopless mixed graphs are accepted and they must have a vertex ordering compatible with partitionLMG. For more details about loopless mixed graphs, see the paper: Kayvan Sadeghi and Steffen Lauritzen, Markov properties for mixed graphs, Bernoulli, 20 (2014), no 2, 676-696.

Be aware that several functions in this package that accept mixed graphs are still not implemented for mixed graphs with undirected edges: gaussianParametrization, gaussianVanishingIdeal, trekIdeal, trekSeparation, identifyParameters.

 i7 : G = mixedGraph(digraph {{1,3},{2,4}},bigraph {{3,4}},graph {{1,2}}); i8 : R = gaussianRing G o8 = R o8 : PolynomialRing i9 : gens R o9 = {k , k , k , l , l , p , p , p , s , s , s , s , 1,1 2,2 1,2 1,3 2,4 3,3 4,4 3,4 1,1 1,2 1,3 1,4 ------------------------------------------------------------------------ s , s , s , s , s , s } 2,2 2,3 2,4 3,3 3,4 4,4 o9 : List i10 : covarianceMatrix R o10 = | s_(1,1) s_(1,2) s_(1,3) s_(1,4) | | s_(1,2) s_(2,2) s_(2,3) s_(2,4) | | s_(1,3) s_(2,3) s_(3,3) s_(3,4) | | s_(1,4) s_(2,4) s_(3,4) s_(4,4) | 4 4 o10 : Matrix R <--- R i11 : undirectedEdgesMatrix R o11 = | k_(1,1) k_(1,2) | | k_(1,2) k_(2,2) | 2 2 o11 : Matrix R <--- R i12 : directedEdgesMatrix R o12 = | 0 0 l_(1,3) 0 | | 0 0 0 l_(2,4) | | 0 0 0 0 | | 0 0 0 0 | 4 4 o12 : Matrix R <--- R i13 : bidirectedEdgesMatrix R o13 = | p_(3,3) p_(3,4) | | p_(3,4) p_(4,4) | 2 2 o13 : Matrix R <--- R