When is the right eigenvector of a Markov Chain not constant?

444 Views Asked by At

As far as I know, it is well known that the top right eigenvector of a row-stochastic matrix is the all-ones vector, and that the top left eigenvector of this same matrix is the stationary distribution. However, I don't get this result when I use the numpy.linalg.svd function from Python (in fact, no software I tried gives me this). I would like to know why. Am I wrong in expecting to get the all-ones vector as the right eigenvector of a row-stochastic matrix?

To be specific, consider this Markov Chain, with corresponding transition probability matrix:

$$ M=\left[\begin{array}{rr} 0.3&0.7\\ 0.6&0.4 \end{array}\right]\ $$

So, the right eigenvector of this matrix should be the all-ones vector, right? Or more generally, a constant vector. However, the simple code below doesn't give me this answer.

    import numpy as np

    M = np.matrix('0.3 0.7; 0.6 0.4')
    u, s, vH = np.linalg.svd(M)

In fact, the matrices it returns me are (I rounded the results to ease presentation):

$$ U=\left[\begin{array}{rr} -0.7298 &-0.6837\\ -0.6837 &0.7298 \end{array}\right],\quad S=\left[\begin{array}{r r} 1.0055 &0.2984 \end{array}\right], \quad \mbox{and} \quad V^*=\left[\begin{array}{rr} -0.6257 &-0.7800\\ 0.7800 & -0.6257 \end{array}\right] $$

Just to be clear, the right eigenvectors are the rows of $V^*$. As I mentioned, other softwares return me the same result (e.g., WolframAlpha). These softwares are not all wrong, thus, why isn't the top right eigenvector constant?