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

hiddenMap -- linear map between the ring of a model with one hidden variable and the ring of the corresponding fully observed model

Synopsis

Description

The ring $R$ is a ring of probability distributions on $n$ random variables created using markovRing. This method creates a ring map $F: S \to R$ from the ring $S$ of probability distributions on $n-1$ random variables, leaving out the $i$th random variable from $R$. This corresponds to the situation where the $i$th random variable is hidden and $S$ is the ring of observed probability distributions.

i1 : F = hiddenMap(1,markovRing(2,3,2));

o1 : RingMap QQ[p     ..p     ] <-- QQ[p   ..p   ]
                 1,1,1   2,3,2          1,1   3,2
i2 : compactMatrixForm =false;
i3 : transpose F.matrix

o3 = {-1}  |  p      + p       |
           |   1,1,1    2,1,1  |
           |                   |
     {-1}  |  p      + p       |
           |   1,1,2    2,1,2  |
           |                   |
     {-1}  |  p      + p       |
           |   1,2,1    2,2,1  |
           |                   |
     {-1}  |  p      + p       |
           |   1,2,2    2,2,2  |
           |                   |
     {-1}  |  p      + p       |
           |   1,3,1    2,3,1  |
           |                   |
     {-1}  |  p      + p       |
           |   1,3,2    2,3,2  |

                                6                         1
o3 : Matrix (QQ[p     ..p     ])  <-- (QQ[p     ..p     ])
                 1,1,1   2,3,2             1,1,1   2,3,2

This method is frequently used when computing the vanishing ideal of a graphical model with hidden variables by computing the kernel of $F$. For more details see the paper ``Algebraic Geometry of Bayesian Networks'' by Garcia, Stillman, and Sturmfels.

i4 : G = digraph  {{1,{}},{2,{}},{3,{}},{4,{1,2,3}}}

o4 = Digraph{1 => {}       }
             2 => {}
             3 => {}
             4 => {1, 2, 3}

o4 : Digraph
i5 : R = markovRing (2,2,3,2)

o5 = R

o5 : PolynomialRing
i6 : I = discreteVanishingIdeal (R,G);

o6 : Ideal of R
i7 : I / print;
p       p        - p       p
 1,2,3,2 2,2,3,1    1,2,3,1 2,2,3,2
p       p        - p       p
 1,2,3,2 2,2,2,2    1,2,2,2 2,2,3,2
p       p        - p       p
 1,2,3,2 2,2,2,1    1,2,2,1 2,2,3,2
p       p        - p       p
 1,2,3,2 2,2,1,2    1,2,1,2 2,2,3,2
p       p        - p       p
 1,2,3,2 2,2,1,1    1,2,1,1 2,2,3,2
p       p        - p       p
 2,2,2,2 2,2,3,1    2,2,2,1 2,2,3,2
p       p        - p       p
 1,2,2,2 2,2,3,1    1,2,2,1 2,2,3,2
p       p        - p       p
 2,2,1,2 2,2,3,1    2,2,1,1 2,2,3,2
p       p        - p       p
 1,2,1,2 2,2,3,1    1,2,1,1 2,2,3,2
p       p        - p       p
 1,2,3,1 2,2,2,2    1,2,2,1 2,2,3,2
p       p        - p       p
 1,2,2,2 1,2,3,1    1,2,2,1 1,2,3,2
p       p        - p       p
 1,2,3,1 2,2,2,1    1,2,2,1 2,2,3,1
p       p        - p       p
 1,2,3,1 2,2,1,2    1,2,1,1 2,2,3,2
p       p        - p       p
 1,2,1,2 1,2,3,1    1,2,1,1 1,2,3,2
p       p        - p       p
 1,2,3,1 2,2,1,1    1,2,1,1 2,2,3,1
p       p        - p       p
 1,2,2,2 2,2,2,1    1,2,2,1 2,2,2,2
p       p        - p       p
 1,2,2,2 2,2,1,2    1,2,1,2 2,2,2,2
p       p        - p       p
 1,2,2,2 2,2,1,1    1,2,1,1 2,2,2,2
p       p        - p       p
 2,2,1,2 2,2,2,1    2,2,1,1 2,2,2,2
p       p        - p       p
 1,2,1,2 2,2,2,1    1,2,1,1 2,2,2,2
p       p        - p       p
 1,2,2,1 2,2,1,2    1,2,1,1 2,2,2,2
p       p        - p       p
 1,2,1,2 1,2,2,1    1,2,1,1 1,2,2,2
p       p        - p       p
 1,2,2,1 2,2,1,1    1,2,1,1 2,2,2,1
p       p        - p       p
 1,2,1,2 2,2,1,1    1,2,1,1 2,2,1,2
p       p        - p       p
 1,1,3,2 2,1,3,1    1,1,3,1 2,1,3,2
p       p        - p       p
 1,1,3,2 2,1,2,2    1,1,2,2 2,1,3,2
p       p        - p       p
 1,1,3,2 2,1,2,1    1,1,2,1 2,1,3,2
p       p        - p       p
 1,1,3,2 2,1,1,2    1,1,1,2 2,1,3,2
p       p        - p       p
 1,1,3,2 2,1,1,1    1,1,1,1 2,1,3,2
p       p        - p       p
 2,1,2,2 2,1,3,1    2,1,2,1 2,1,3,2
p       p        - p       p
 1,1,2,2 2,1,3,1    1,1,2,1 2,1,3,2
p       p        - p       p
 2,1,1,2 2,1,3,1    2,1,1,1 2,1,3,2
p       p        - p       p
 1,1,1,2 2,1,3,1    1,1,1,1 2,1,3,2
p       p        - p       p
 1,1,3,1 2,1,2,2    1,1,2,1 2,1,3,2
p       p        - p       p
 1,1,2,2 1,1,3,1    1,1,2,1 1,1,3,2
p       p        - p       p
 1,1,3,1 2,1,2,1    1,1,2,1 2,1,3,1
p       p        - p       p
 1,1,3,1 2,1,1,2    1,1,1,1 2,1,3,2
p       p        - p       p
 1,1,1,2 1,1,3,1    1,1,1,1 1,1,3,2
p       p        - p       p
 1,1,3,1 2,1,1,1    1,1,1,1 2,1,3,1
p       p        - p       p
 1,1,2,2 2,1,2,1    1,1,2,1 2,1,2,2
p       p        - p       p
 1,1,2,2 2,1,1,2    1,1,1,2 2,1,2,2
p       p        - p       p
 1,1,2,2 2,1,1,1    1,1,1,1 2,1,2,2
p       p        - p       p
 2,1,1,2 2,1,2,1    2,1,1,1 2,1,2,2
p       p        - p       p
 1,1,1,2 2,1,2,1    1,1,1,1 2,1,2,2
p       p        - p       p
 1,1,2,1 2,1,1,2    1,1,1,1 2,1,2,2
p       p        - p       p
 1,1,1,2 1,1,2,1    1,1,1,1 1,1,2,2
p       p        - p       p
 1,1,2,1 2,1,1,1    1,1,1,1 2,1,2,1
p       p        - p       p
 1,1,1,2 2,1,1,1    1,1,1,1 2,1,1,2
i8 : S = markovRing(2,2,3)

o8 = S

o8 : PolynomialRing
i9 : F = hiddenMap(4,R);

o9 : RingMap R <-- S
i10 : transpose F.matrix

o10 = {-1}  |  p        + p         |
            |   1,1,1,1    1,1,1,2  |
            |                       |
      {-1}  |  p        + p         |
            |   1,1,2,1    1,1,2,2  |
            |                       |
      {-1}  |  p        + p         |
            |   1,1,3,1    1,1,3,2  |
            |                       |
      {-1}  |  p        + p         |
            |   1,2,1,1    1,2,1,2  |
            |                       |
      {-1}  |  p        + p         |
            |   1,2,2,1    1,2,2,2  |
            |                       |
      {-1}  |  p        + p         |
            |   1,2,3,1    1,2,3,2  |
            |                       |
      {-1}  |  p        + p         |
            |   2,1,1,1    2,1,1,2  |
            |                       |
      {-1}  |  p        + p         |
            |   2,1,2,1    2,1,2,2  |
            |                       |
      {-1}  |  p        + p         |
            |   2,1,3,1    2,1,3,2  |
            |                       |
      {-1}  |  p        + p         |
            |   2,2,1,1    2,2,1,2  |
            |                       |
      {-1}  |  p        + p         |
            |   2,2,2,1    2,2,2,2  |
            |                       |
      {-1}  |  p        + p         |
            |   2,2,3,1    2,2,3,2  |

              12      1
o10 : Matrix R   <-- R
i11 : J = preimage (F, I);

o11 : Ideal of S
i12 : J / print;
p     p      - p     p
 1,2,3 2,2,2    1,2,2 2,2,3
p     p      - p     p
 1,2,3 2,2,1    1,2,1 2,2,3
p     p      - p     p
 1,2,2 2,2,1    1,2,1 2,2,2
p     p      - p     p
 1,1,3 2,1,2    1,1,2 2,1,3
p     p      - p     p
 1,1,3 2,1,1    1,1,1 2,1,3
p     p      - p     p
 1,1,2 2,1,1    1,1,1 2,1,2

See also

Ways to use hiddenMap:

For the programmer

The object hiddenMap is a method function.