Rozkłady stacjonarne łańcucha Markowa z scipy.sparse?

Mam łańcuch Markowa podany jako duży rzadkiscipy matrycaA. (Skonstruowałem macierz wscipy.sparse.dok_matrix format, ale konwertowanie na inne lub konstruowanie go jakocsc_matrix są w porządku.)

Chciałbym poznać dowolną dystrybucję stacjonarnąp tej macierzy, która jest wektorem własnym do wartości własnej1. Wszystkie wpisy w tym wektorze własnym powinny być dodatnie i sumować się do 1, aby przedstawić rozkład prawdopodobieństwa.

Oznacza to, że chcę mieć jakieś rozwiązanie dla systemu(A-I) p = 0, p.sum()=1 (gdzieI=scipy.sparse.eye(*A.shape) jest matrycą idententy), ale(A-I) nie będzie pełnej rangi, a nawet cały system może być niedookreślony. Ponadto można generować wektory własne z wpisami ujemnymi, których nie można znormalizować, aby były prawidłowymi rozkładami prawdopodobieństwa. Zapobieganie wpisom negatywnymp byłoby miło.

Za pomocąscipy.sparse.linalg.eigen.eigs nie jest rozwiązaniem: nie pozwala określić ograniczenia addytywnego. (Normalizacja nie pomaga, jeśli wektory własne zawierają wpisy ujemne.) Ponadto, odbiega ona nieco od prawdziwych wyników i czasami ma problemy zbieżne, zachowując się gorzej niżscipy.linalg.eig. (Użyłem też trybu odwracania przesunięcia, który poprawia znajdowanie typów wartości własnych, których chcę, ale nie ich jakości. Jeśli jej nie użyję, jest jeszcze bardziej przesadny, ponieważ interesuje mnie tylko jedna konkretna wartość własna,1.)

Konwersja do gęstych matryc i używaniescipy.linalg.eig nie jest rozwiązaniem: oprócz negatywnego problemu wejścia macierz jest zbyt duża.

Za pomocąscipy.sparse.spsolve nie jest oczywistym rozwiązaniem: macierz nie jest kwadratowa (przy łączeniu ograniczenia addytywnego i warunku własnego wektora) lub nie ma pełnej rangi (przy próbie określenia ich osobno w jakiś sposób), czasami też nie.

Czy istnieje dobry sposób numerycznego uzyskania stanu stacjonarnego łańcucha Markowa podanego jako macierz rzadka przy użyciu Pythona? Jeśli istnieje sposób na uzyskanie wyczerpującej listy (i być może także stanów prawie stacjonarnych), jest to doceniane, ale nie konieczne.

questionAnswers(4)

yourAnswerToTheQuestion