Матрица переходов P характеризует дискретное время, гомогенную временем Цепь Маркова. Для получения дополнительной информации на поддерживаемых формах P, см. Обзор Среды Объекта Дискретной цепи Маркова. Если вы имеете теоретическую или эмпирическую матрицу переходов, создаете объект модели Цепи Маркова при помощи dtmc
. В противном случае можно создать Цепь Маркова из случайным образом сгенерированной матрицы перехода заданной структуры, такой как количество неосуществимых переходов, при помощи mcmix
.
В этом примере показано, как создать объект Цепи Маркова смоделировать гипотетический экономический цикл с помощью стохастической матрицы перехода.
Предположим, что динамическое поведение действительного валового внутреннего продукта (ВВП) США переключается между четырьмя моделями:
Режим 1: авторегрессивная модель с низкой средней и низкой волатильностью
Режим 2: авторегрессивная модель с низкой средней и высокой волатильностью
Режим 3: авторегрессивная модель с высокой средней и низкой волатильностью
Режим 4: авторегрессивная модель с высокой средней и высокой волатильностью
Рассмотрите эту правильно-стохастическую матрицу перехода, содержащую вероятности изменений состояния между временными шагами t и t + 1 для всего t.
Например, означает вероятность, что действительные переходы GDP от Режима 2 к Режиму 3 в следующем временном шаге 0.5.
Установите матрицу перехода на переменную.
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];
Создайте объект Цепи Маркова, охарактеризованный матрицей P перехода.
mc = dtmc(P)
mc = dtmc with properties: P: [4x4 double] StateNames: ["1" "2" "3" "4"] NumStates: 4
mc
dtmc
объект. MATLAB® отображает свойства и соответствующие значения mc
в командной строке.
Ассоциация имен к состояниям улучшает отображения функционального выхода и графики цепи. Когда вы создаете объект Цепи Маркова, можно сопоставить имена к состояниям при помощи 'StateNames'
аргумент пары "имя-значение". После того, как вы создадите объект, можно сопоставить имена к состояниям путем установки StateNames
свойство с помощью записи через точку.
Партнер называет к состояниям в mc
при помощи записи через точку. Элементы вектора строки, содержащего имена, соответствуют строкам и столбцам P
.
stateNames = ["Regime 1" "Regime 2" "Regime 3" "Regime 4"]; mc.StateNames = stateNames;
Постройте диграф Цепи Маркова.
figure; graphplot(mc);
После создания и графического вывода Цепи Маркова, можно определить характеристики цепи, такие как ее стационарное распределение при помощи asymptotics
или его эволюция распределенности при помощи redistribution
.
В этом примере показано, как создать объект Цепи Маркова из правильно-стохастической матрицы перехода, которая случайным образом сгенерирована. Такая Цепь Маркова удобна для исследования и тестирования.
Создайте случайный объект Цепи Маркова, содержащий пять произвольных состояний.
rng(1); % For reproducibility
numStates = 5;
mc = mcmix(numStates)
mc = dtmc with properties: P: [5x5 double] StateNames: ["1" "2" "3" "4" "5"] NumStates: 5
mc
dtmc
объект.
Отобразите матрицу перехода и проверьте, что сумма каждой строки равняется 1.
mc.P
ans = 5×5
0.3259 0.0358 0.1149 0.3602 0.1632
0.0298 0.1478 0.2409 0.2626 0.3189
0.0162 0.3982 0.3469 0.1166 0.1221
0.0944 0.2965 0.0102 0.4389 0.1600
0.3439 0.2710 0.2938 0.0404 0.0509
sum(mc.P,2)
ans = 5×1
1.0000
1.0000
1.0000
1.0000
1.0000
Постройте диграф Цепи Маркова. Укажите на вероятности перехода при помощи цветов обводки.
figure;
graphplot(mc,'ColorEdges',true);
В этом примере показано, как задать определенные неосуществимые переходы и случайным образом распределить других в матрице перехода для Цепи Маркова.
Создайте Цепь Маркова с шестью состояниями из случайной матрицы перехода. Постройте его диграф и укажите на вероятности перехода при помощи цветов обводки.
rng(1); % For reproducibility numStates = 6; mc1 = mcmix(numStates); figure; graphplot(mc1,'ColorEdges',true)
mcmix
производит Цепь Маркова, таким образом, что все состояния являются персистентными, и все состояния достижимы от любого другого состояния.
Создайте другую Цепь Маркова с шестью состояниями, но без любых постоянных состояний и с 12 другими неосуществимыми переходами в случайных местоположениях в матрице перехода.
Fix = ones(numStates) - eye(numStates); Fix(Fix == 1) = NaN; zeros = 12; mc2 = mcmix(numStates,'Zeros',zeros,'Fix',Fix);
Отобразите матрицу перехода mc2
. Постройте диграф mc2
и укажите на вероятности перехода при помощи цветов обводки.
mc2.P
ans = 6×6
0 0.4845 0 0.0344 0 0.4811
0.5107 0 0.0791 0 0 0.4102
0.1397 0.2701 0 0.2954 0.2948 0
0.4767 0.5233 0 0 0 0
0.3710 0 0.5550 0 0 0.0740
0.0179 0.1947 0.7874 0 0 0
figure;
graphplot(mc2,'ColorEdges',true)