exponenta event banner

dtmc

Создание дискретной цепи Маркова

Описание

dtmc создает дискретную, конечную, однородную по времени цепочку Маркова из заданной матрицы перехода состояния.

После создания dtmc можно анализировать структуру и эволюцию цепи Маркова, а также визуализировать цепочку Маркова различными способами, используя функции объекта.

Создание

Описание

пример

mc = dtmc(P) создает дискретно-временной объект цепи Маркова mc определяется матрицей перехода состояния P.

пример

mc = dtmc(P,'StateNames',stateNames) опционально связывает имена stateNames к штатам.

Входные аргументы

развернуть все

Матрица перехода состояния, указанная как numStatesоколо-numStates неотрицательная числовая матрица.

P(i,j) является либо теоретической вероятностью перехода из состояния i указывать j или эмпирический подсчет наблюдаемых переходов из состояния i указывать j. P может быть полностью указан (все элементы являются неотрицательными числами), частично указан (элементы являются смесью неотрицательных чисел и NaN значения), или неизвестные (полностью состоящие из NaN значения).

dtmc нормализует каждую строку P без каких-либо NaN значения для суммирования 1, затем сохраняет нормализованную матрицу в свойстве P.

Типы данных: double

Свойства

развернуть все

Значения свойств, доступные для записи, можно задать при создании объекта модели с помощью синтаксиса аргумента пара имя-значение или после создания объекта модели с помощью точечной нотации. Например, для модели с двумя состояниями mc, для маркировки первого и второго состояний Depression и Recession, соответственно, введите:

mc.StateNames = ["Depression" "Recession"];

Это свойство доступно только для чтения.

Нормализованная матрица перехода, заданная как numStatesоколо-numStates неотрицательная числовая матрица.

Если x - вектор строки длины numStates указание распределения состояний во время t (x суммы к 1), то x*P - распределение состояний во время t + 1.

NaN записи указывают оценочные вероятности перехода. estimate функция msVAR рассматривает известные элементы P как ограничения равенства во время оптимизации.

Типы данных: double

Это свойство доступно только для чтения.

Число состояний, указанное как положительный скаляр.

Типы данных: double

Метки состояния, указанные как строковый вектор, вектор ячейки символьных векторов или числовой вектор длины numStates. Элементы соответствуют строкам и столбцам P.

Пример: ["Depression" "Recession" "Stagnant" "Boom"]

Типы данных: string

Функции объекта

dtmc для объектов требуется полностью заданная матрица перехода P.

развернуть все

asymptoticsОпределить асимптотики цепи Маркова
isergodicПроверка цепи Маркова на эргодичность
isreducibleПроверить цепь Маркова на редуктивность
classifyКлассифицировать состояния цепи Маркова
lazyРегулировка инерции состояния цепи Маркова
subchainИзвлечь подцепь Маркова
redistributeВычислить перераспределение цепочки Маркова
simulateИмитация походов по цепочке Маркова
distplotУчасток марковской цепи перераспределений
eigplotГрафик собственных значений цепи Маркова
graphplotГрафик цепи Маркова, направленный
simplotМоделирование цепи по графику Маркова

Примеры

свернуть все

Рассмотрим эту теоретическую, правостохастическую матрицу перехода стохастического процесса.

P = [0.50.5000.500.5000010010].

Элемент Pij - это вероятность того, что процесс переходит в состояние j в момент времени t + 1, учитывая, что он находится в состоянии i в момент времени t, для всех t.

Создайте цепочку Маркова, которая характеризуется матрицей перехода P.

P = [0.5 0.5 0 0; 0.5 0 0.5 0; 0 0 0 1; 0 0 1 0];
mc = dtmc(P);

mc является dtmc объект, представляющий цепь Маркова.

Отображение количества состояний в цепочке Маркова.

numstates = mc.NumStates
numstates = 4

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

figure;
graphplot(mc);

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

Обратите внимание, что состояния 3 и 4 образуют класс поглощения, в то время как состояния 1 и 2 являются переходными.

Рассмотрим эту матрицу перехода, в которой элемент (i, j) является наблюдаемым числом раз, когда состояние i переходит в состояние j.

P = [16231351110897612414151].

Например, P32 = 7 подразумевает, что состояние 3 переходит в состояние 2 семь раз.

P = [16 2  3  13;
     5  11 10 8;
     9  7  6  12;
     4  14 15 1];

Создайте цепочку Маркова, которая характеризуется матрицей перехода P.

mc = dtmc(P);

Отображение нормализованной матрицы перехода, сохраненной в mc. Убедитесь, что элементы в строках суммируют 1 для всех строк.

mc.P
ans = 4×4

    0.4706    0.0588    0.0882    0.3824
    0.1471    0.3235    0.2941    0.2353
    0.2647    0.2059    0.1765    0.3529
    0.1176    0.4118    0.4412    0.0294

sum(mc.P,2)
ans = 4×1

     1
     1
     1
     1

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

figure;
graphplot(mc);

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

Рассмотрим двухгосударственный бизнес-цикл реального валового национального продукта (ВНП) США в [3] стр. 697. В момент времени t реальный ВНП может находиться в состоянии расширения или сокращения. Предположим, что следующие операторы верны в течение периода выборки.

  • Если реальный GNP расширяется в момент времени t, то вероятность того, что он продолжится в состоянии расширения в момент времени t + 1, равна p11 = 0,90 .

  • Если реальный ВНП сжимается в момент времени t, то вероятность того, что он продолжится в состоянии сжатия в момент времени t + 1, равна p22 = 0,75.

Создайте матрицу перехода для модели.

p11 = 0.90;
p22 = 0.75;

P = [p11 (1 - p11); (1 - p22) p22];

Создайте цепочку Маркова, которая характеризуется матрицей перехода P. Пометьте два состояния.

mc = dtmc(P,'StateNames',["Expansion" "Contraction"])
mc = 
  dtmc with properties:

             P: [2x2 double]
    StateNames: ["Expansion"    "Contraction"]
     NumStates: 2

Постройте направленный график цепи Маркова. Укажите вероятность перехода с помощью краевых цветов.

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

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

Чтобы помочь вам изучить dtmc функции объекта, mcmix создает цепочку Маркова из матрицы случайного перехода, используя только заданное число состояний.

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

rng(1); % For reproducibility
mc = mcmix(5)
mc = 
  dtmc with properties:

             P: [5x5 double]
    StateNames: ["1"    "2"    "3"    "4"    "5"]
     NumStates: 5

mc является dtmc объект.

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

figure;
eigplot(mc)

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

Этот спектр определяет структурные свойства цепи Маркова, такие как периодичность и скорость смешивания.

Рассмотрим авторегрессию с переключением Маркова (msVAR) модель ВВП США, содержащая четыре экономических режима: депрессию, рецессию, стагнацию и экспансию. Чтобы оценить вероятности перехода механизма переключения, необходимо предоставить dtmc модель с неизвестными записями матрицы перехода в msVAR рамки.

Создать цепочку Маркова 4-го режима с неизвестной матрицей перехода (все NaN записи). Укажите имена режимов.

P = nan(4);
statenames = ["Depression" "Recession" ...
    "Stagnation" "Expansion"];

mcUnknown = dtmc(P,'StateNames',statenames)
mcUnknown = 
  dtmc with properties:

             P: [4x4 double]
    StateNames: ["Depression"    "Recession"    "Stagnation"    "Expansion"]
     NumStates: 4

mcUnknown.P
ans = 4×4

   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN

Предположим, экономическая теория утверждает, что экономика США никогда не переходит к экспансии из рецессии или депрессии. Создайте цепочку Маркова 4-го режима с частично известной матрицей перехода, представляющей ситуацию.

P(1,4) = 0;
P(2,4) = 0;

mcPartial = dtmc(P,'StateNames',statenames)
mcPartial = 
  dtmc with properties:

             P: [4x4 double]
    StateNames: ["Depression"    "Recession"    "Stagnation"    "Expansion"]
     NumStates: 4

mcPartial.P
ans = 4×4

   NaN   NaN   NaN     0
   NaN   NaN   NaN     0
   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN

estimate функция msVAR рассматривает известные элементы mcPartial.P как ограничения равенства во время оптимизации.

Дополнительные сведения о моделях динамической регрессии с коммутацией Маркова см. в разделе msVAR.

Альтернативы

Можно также создать объект цепи Маркова с помощью mcmix.

Ссылки

[1] Галлагер, Р. Г. Стохастические процессы: теория для применения. Кембридж, Великобритания: Cambridge University Press, 2013.

[2] Хаггстрем, О. Конечный Марков Цепочки и алгоритмические приложения. Кембридж, Великобритания: Cambridge University Press, 2002.

[3] Гамильтон, Джеймс Д. Анализ временных рядов. Принстон, Нью-Джерси: Princeton University Press, 1994.

[4] Норрис, J. R. Markov Chains. Кембридж, Великобритания: Cambridge University Press, 1997.

Представлен в R2017b