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

Заметьте, что состояния 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);

Считайте деловой цикл с двумя состояниями США действительным валовым национальным продуктом (ВНП) в [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);

Помочь вам исследовать 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)

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

Рассмотрите переключающую Маркова авторегрессию (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] Гамильтон, J. D. Анализ Временных Рядов. Принстон, NJ: Издательство Принстонского университета, 1994.

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

Введенный в R2017b

Для просмотра документации необходимо авторизоваться на сайте