dtmc

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

Описание

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

После создания dtmc объект, можно анализировать структуру и эволюцию Цепи Маркова, и визуализировать Цепь Маркова в различных способах, при помощи объектных функций. Кроме того, можно использовать dtmc объект задать переключающийся механизм переключающей Маркова модели динамической регрессии (msVAR).

Чтобы создать переключающийся механизм, которым управляют пороговые переходы и пороговые данные о переменной, для переключающей порог модели динамической регрессии, смотрите threshold и tsVAR.

Создание

Описание

пример

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Определите Цепь Маркова 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 object. The axes object 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);

Отобразите нормированную матрицу перехода, сохраненную в мГц. Проверьте, что элементы в строках суммируют к 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 object. The axes object contains an object of type graphplot.

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

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

  • Если действительный GNP сокращается во время 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 object. The axes object 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 object. The axes object contains 5 objects of type line, patch. These objects represent Eigenvalues, Spectral Gap.

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

Рассмотрите переключающую Маркова авторегрессию (msVAR) модель для GDP США, содержащего четыре экономических режима: депрессия, рецессия, застой и расширение. Чтобы оценить вероятности перехода переключающегося механизма, необходимо предоставить 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] Gallager, R.G. Стохастические процессы: теория для приложений. Кембридж, Великобритания: Издательство Кембриджского университета, 2013.

[2] Haggstrom, O. Конечные цепи Маркова и алгоритмические приложения. Кембридж, Великобритания: Издательство Кембриджского университета, 2002.

[3] Гамильтон, анализ временных рядов Джеймса Д. Принстон, NJ: Издательство Принстонского университета, 1994.

[4] Норрис, J. R. Цепи Маркова. Кембридж, Великобритания: Издательство Кембриджского университета, 1997.

Введенный в R2017b