exponenta event banner

Визуализация структуры и эволюции цепи Маркова

В этом примере показано, как визуализировать структуру и эволюцию модели цепи Маркова с помощью dtmc функции печати. Рассмотрим цепочку Маркова из четырех государств, которая моделирует динамику реального валового внутреннего продукта (ВВП) в «Создать цепочку Маркова из стохастической матрицы перехода».

Создание модели цепи Маркова для реального ВВП. Укажите имена состояний.

P = [0.5 0.5 0.0 0.0;
     0.5 0.0 0.5 0.0;
     0.0 0.0 0.0 1.0;
     0.0 0.0 1.0 0.0];
stateNames = ["Regime 1" "Regime 2" "Regime 3" "Regime 4"];
mc = dtmc(P,'StateNames',stateNames);

Одним из способов визуализации цепи Маркова является построение тепловой карты матрицы перехода.

figure;
imagesc(P);
colormap(jet);
colorbar;
axis square
h = gca;
h.XTick = 1:4;
h.YTick = 1:4;
title 'Transition Matrix Heatmap';

Figure contains an axes. The axes with title Transition Matrix Heatmap contains an object of type image.

Направленный график

Направленный граф, или диграф, показывает состояния в цепочке как узлы и показывает возможные переходы между состояниями как направленными рёбрами. Осуществимый переход - это переход, вероятность возникновения которого больше нуля.

Постройте график цепочки Маркова по умолчанию.

figure;
graphplot(mc);

Figure contains an axes. The axes contains an object of type graphplot.

Сравните вероятности перехода, указав цвета краев на основе вероятности перехода.

figure;
graphplot(mc,'ColorEdges',true);

Figure contains an axes. The axes contains an object of type graphplot.

Определение повторяющихся и переходных состояний путем указания цветов узлов и маркеров на основе типа состояния. Верните дескриптор графика.

figure;
h = graphplot(mc,'ColorEdges',true,'ColorNodes',true);

Figure contains an axes. The axes contains 3 objects of type graphplot, line. These objects represent Transient, Period = 2.

Низкие средние состояния являются переходными и в конечном итоге переходят в повторяющиеся высокие средние состояния.

Размер шрифта по умолчанию для меток узлов составляет 8 точек. Уменьшите размер шрифта до 7 баллов.

h.NodeFontSize = 7;

Figure contains an axes. The axes contains 3 objects of type graphplot, line. These objects represent Transient, Period = 2.

Графики смешения

asymptotics функция возвращает время смешения цепи Маркова. Однако, но hitprob и hittime функции позволяют визуализировать смешение путем построения графика вероятностей попадания и ожидаемых времен первого попадания на диграфе.

hitprob вычисляет вероятность попадания в заданное подмножество целевых состояний, начиная с каждого состояния в цепи Маркова. Функция дополнительно отображает диграф цепочки Маркова с цветами узлов, представляющими вероятности попадания.

Постройте график цепочки Маркова с цветами узлов, представляющими вероятности попадания в режим 1.

hitprob(mc,"Regime 1",'Graph',true);

Figure contains an axes. The axes contains 2 objects of type graphplot, line. This object represents Target State (hp = 1).

Вероятность попадания режима 1 из режима 3 или 4 равна 0, поскольку режимы 3 и 4 образуют поглощающий подкласс.

hittime вычисляет ожидаемое время первого попадания для указанного подмножества целевых состояний, начиная с каждого состояния в цепочке Маркова. Функция дополнительно отображает диграф цепочки Маркова с цветами узлов, представляющими время попадания.

Постройте график цепочки Маркова с цветами узлов, представляющими ожидаемые времена первого попадания для целевого подкласса, который содержит режимы 3 и 4.

target = ["Regime 3" "Regime 4"];
hittime(mc,target,'Graph',true);

Figure contains an axes. The axes contains 2 objects of type graphplot, line. This object represents Target States (ht = 0).

Начиная с режима 1, ожидаемое время первого попадания для подкласса составляет 6 временных шагов.

График собственных значений

График собственных значений показывает собственные значения на комплексной плоскости. eigplot возвращает график собственных значений и идентифицирует:

  • Собственное значение Перрона-Фробениуса, которое гарантировано для неотрицательных матриц, с использованием жирной звездочки.

  • Спектральный зазор, представляющий собой область между радиусом с длиной, равной второй наибольшей величине собственного значения (SLEM), и радиусом с длиной 1. Спектральный промежуток определяет время смешения цепи Маркова. Большие зазоры указывают на более быстрое перемешивание, в то время как тонкие зазоры указывают на более медленное перемешивание.

Постройте график и верните собственные значения матрицы перехода на комплексной плоскости.

figure;
eVals = eigplot(mc)

Figure contains an axes. The axes contains 5 objects of type line, patch. These objects represent Eigenvalues, Spectral Gap.

eVals = 4×1

    0.8090
   -0.3090
    1.0000
   -1.0000

Два собственных значения имеют модуль 1, указывающий, что цепочка Маркова имеет период 2.

График перераспределения

График перераспределения отображает перераспределение состояния xt из начального распределения. В частности, xt = xt-1P = x0Pt.distplot перераспределение участков с использованием данных, генерируемых redistribute и цепной объект Маркова. Перераспределение можно построить в виде статической тепловой карты или анимированных гистограмм или диаграмм.

Создайте 10-ступенчатое перераспределение из начального распределения [050.500] ′.

numSteps = 10;
x0 = [0.5 0.5 0 0];
X = redistribute(mc,numSteps,'X0',x0);

Постройте график перераспределений в виде тепловой карты.

figure;
distplot(mc,X);

Figure contains an axes. The axes with title Distribution of States contains an object of type image.

Поскольку состояния 1 и 2 являются переходными, цепь Маркова в конечном итоге концентрирует вероятность на состояниях 3 и 4. Кроме того, как предполагает график собственных значений, состояния 3 и 4, по-видимому, имеют период 2.

Постройте анимированную гистограмму. Установите частоту кадров в одну секунду.

figure;
distplot(mc,X,'Type','histogram','FrameRate',1);

Figure contains an axes. The axes with title Distribution of States contains an object of type categoricalhistogram. This object represents Step 10.

График моделирования

График моделирования отображает случайные шаги по цепочке Маркова, начиная с конкретных начальных состояний. simplot строит график моделирования с использованием данных, сгенерированных simulate и цепной объект Маркова. Моделирование можно построить как статическую тепловую карту, отображающую долю состояний, достигаемых на каждом шаге, тепловую карту матрицы реализованного перехода или анимированный график, показывающий реализованные переходы.

Создайте 100 десятишаговых случайных обходов, где каждое состояние инициализирует обход 25 раз.

x0 = [25 25 25 25];
X = simulate(mc,numSteps,'X0',x0);

Постройте график моделирования в виде тепловой карты, показывающей долю состояний, достигаемых на каждом шаге.

figure;
simplot(mc,X);

Figure contains an axes. The axes with title States Reached By Simulations contains an object of type image.

Постройте график тепловой карты реализованной матрицы перехода.

figure;
simplot(mc,X,'Type','transition');

Figure contains an axes. The axes with title Transitions Realized By Simulations contains an object of type image.

Реализованная матрица перехода выглядит аналогично теоретической матрице перехода.

См. также

Объекты

Функции

Связанные темы