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

identifyParameters -- solve the identifiability problem for Gaussian graphical models

Synopsis

Description

Expresses each parameter in the gaussianParametrization in terms of covariances, if it is possible to do so, or displays that no identification formula is possible. The identifiability problem for mixed graph models is described in Garcia, Spielvogel, Sullivant, "Identifying causal effects with computer algebra", UAI, Proceedings of the 26th Conferences, AUAI Press, 2010.

If H#p contains a linear equation $a*p+b$ where a is always nonzero, then $p$ is identifiable.

If H#p contains a linear equation $a*p+b$ where a may be zero, then $p$ is generically identifiable.

If H#p contains a polynomial in $p$ of degree $d$, then $p$ is algebraically $d$-identifiable.

If H#p does not contain any polynomial in $p$, then $p$ is not generically identifiable.

i1 : G = mixedGraph(digraph {{a,{b}},{b,{c}}},bigraph {{a,c}, {b,c}})

o1 = MixedGraph{Bigraph => Bigraph{a => {c}   }}
                                   b => {c}
                                   c => {a, b}
                Digraph => Digraph{a => {b}}
                                   b => {c}
                                   c => {}
                Graph => Graph{}

o1 : MixedGraph
i2 : R = gaussianRing G

o2 = R

o2 : PolynomialRing
i3 : H = identifyParameters R

o3 = HashTable{l    => ideal(l   s    - s   )           }
                a,b           a,b a,a    a,b
               l    => ideal ()
                b,c
               p    => ideal(p    - s   )
                a,a           a,a    a,a
               p    => ideal ()
                a,c
                                         2
               p    => ideal(p   s    + s    - s   s   )
                b,b           b,b a,a    a,b    a,a b,b
               p    => ideal ()
                b,c
               p    => ideal ()
                c,c

o3 : HashTable

Reading the output (first line in the HashTable), we see that parameter $l_{(a,b)}$ is identifiable by the formula $l_{(a,b)} = s_{(a,b)}/s_{(a,a)}$. On the other hand, $l_{(b,c)}$ is not identifiable.

See also

Ways to use identifyParameters :

For the programmer

The object identifyParameters is a method function.