asymptotics

Определите асимптотику марковской цепи

Описание

пример

xFix = asymptotics(mc) возвращает стационарное распределение xFix от дискретной цепи Маркова mc.

пример

[xFix,tMix] = asymptotics(mc) дополнительно возвращает оценку времени смешения tMix.

Примеры

свернуть все

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

P=[001/21/41/400001/302/300000001/32/3000001/21/2000003/41/41/21/2000001/43/400000].

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

P = [ 0   0  1/2 1/4 1/4  0   0 ;
      0   0  1/3  0  2/3  0   0 ;
      0   0   0   0   0  1/3 2/3;
      0   0   0   0   0  1/2 1/2;
      0   0   0   0   0  3/4 1/4;
     1/2 1/2  0   0   0   0   0 ;
     1/4 3/4  0   0   0   0   0 ];
mc = dtmc(P);

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

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

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

Определите стационарное распределение цепи Маркова.

xFix = asymptotics(mc)
xFix = 1×7

    0.1300    0.2034    0.1328    0.0325    0.1681    0.1866    0.1468

Потому что xFix является вектор-строка, это уникальное стационарное распределение mc.

Создайте пятигосударственную переходную матрицу эмпирических отсчётов путем генерации блочной диагональной матрицы, составленной из дискретных равномерных рисок.

m = 100; % Maximal count
rng(1); % For reproducibility
P = blkdiag(randi(100,2) + 1,randi(100,3) + 1)
P = 5×5

    43     2     0     0     0
    74    32     0     0     0
     0     0    16    36    43
     0     0    11    41    70
     0     0    20    55    22

Создайте и постройте график марковской цепи, который характеризуется переходной матрицей P.

mc = dtmc(P);

figure;
graphplot(mc)

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

Определите стационарное распределение и время смешения марковской цепи.

[xFix,tMix] = asymptotics(mc)
xFix = 2×5

    0.9401    0.0599         0         0         0
         0         0    0.1497    0.4378    0.4125

tMix = 0.8558

Строки xFix соответствуют стационарным распределениям двух независимых рекуррентных классов mc.

Создайте отдельные марковские цепи, представляющие рекуррентные подцепи mc.

mc1 = subchain(mc,1);
mc2 = subchain(mc,3);

mc1 и mc2 являются dtmc объекты. mc1 - повторяющийся класс, содержащий состояние 1, и mc2 - повторяющийся класс, содержащий состояние 3.

Сравните время смешения подцепей.

[x1,t1] = asymptotics(mc1)
x1 = 1×2

    0.9401    0.0599

t1 = 0.7369
[x2,t2] = asymptotics(mc2)
x2 = 1×3

    0.1497    0.4378    0.4125

t2 = 0.8558

mc1 приближается к своему стационарному распределению быстрее, чем mc2.

Создать «гантель» марковской цепи, содержащей по 10 состояний в каждом «весе» и три состояния в «планке».

  • Задайте случайные вероятности перехода между состояниями в каждом весе.

  • Если марковская цепь достигает состояния в весе, ближайшем к планке, задайте высокую вероятность перехода к планке.

  • Задайте равномерные переходы между состояниями на панели.

rng(1); % For reproducibility
w = 10;                              % Dumbbell weights
DBar = [0 1 0; 1 0 1; 0 1 0];        % Dumbbell bar
DB = blkdiag(rand(w),DBar,rand(w));  % Transition matrix

% Connect dumbbell weights and bar
DB(w,w+1) = 1;                       
DB(w+1,w) = 1; 
DB(w+3,w+4) = 1; 
DB(w+4,w+3) = 1;

mc = dtmc(DB);

Визуализируйте матрицу переходов с помощью тепловой карты.

figure;
imagesc(mc.P);
colormap(jet);
axis square;
colorbar;

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

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

figure;
h = graphplot(mc);
h.NodeLabel = {};

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

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

figure;
eigplot(mc);

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

Тонкий, красный диск на графике показывает спектральную погрешность (различие между двумя самыми большими модулями собственных значений). Спектральная погрешность определяет время смешения марковской цепи. Большие погрешности указывают на более быстрое смешивание, в то время как тонкие погрешности указывают на более медленное смешивание. В этом случае спектральная погрешность является тонкой, что указывает на длительное время смешивания.

Оцените время смешения цепи гантели и определите, является ли цепь эргодичной.

[~,tMix] = asymptotics(mc)
tMix = 85.3258
tf = isergodic(mc)
tf = logical
   1

В среднем, время, которое требуется для общего расстояния изменения между любым начальным распределением и стационарным распределением, чтобы распадаться в множителе e1 составляет около 85 шагов.

Входные параметры

свернуть все

Дискретная цепь Маркова с NumStates состояния и матрица переходов P, заданный как dtmc объект. P должен быть полностью задан (нет NaN записи).

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

свернуть все

Стационарное распределение, с xFix*P = xFix, возвращенный как неотрицательная числовая матрица с NumStates столбцы. Количество строк xFix количество независимых повторяющихся классов в mc.

  • Для unichains распределение уникально, и xFix является 1-by- NumStates вектор.

  • В противном случае каждая строка xFix представляет отдельное стационарное распределение в mc.

Время смешения, возвращаемое как положительный числовой скаляр.

Если μ, второй по величине модуль собственного значения (SLEM) P, существует и не является нулем, тогда предполагаемое время смешивания является 1/log(μ).

Примечание

  • Если P является неотрицательной стохастической матрицей, затем марковской цепью mc он характеризует имеет левый собственный вектор xFix с собственным значением 1. Теорема Перрона-Фробениуса [2] подразумевает, что если mc является unichain (цепь с одним повторяющимся классом связи), затем xFix уникальна. Для сокращаемых цепей с несколькими рекуррентными классами, собственное значение 1 имеет более высокую кратность, и xFix является неоднородным. Если цепь периодическая, xFix является стационарным, но не ограничивающим, потому что произвольные начальные распределения не сходятся к нему. xFix является уникальным и ограничивающим только для эргодических цепей. Посмотрите classify.

  • Для эргодических цепей, tMix является характерным временем для сходимости любого начального распределения к xFix. В частности, это время для общего расстояния изменения между начальным распределением и xFix распадаться в множителе e = exp(1). Время смешения является мерой относительной связности переходных структур в различных цепях.

Ссылки

[1] Gallager, R.G. Stochastic Processes: Theory for Applications. Кембридж, Великобритания: Cambridge University Press, 2013.

[2] Хорн, Р. и К. Р. Джонсон. Матричный анализ. Кембридж, Великобритания: Cambridge University Press, 1985.

[3] Seneta, E. Неотрицательные матрицы и марковские цепи. Нью-Йорк, Нью-Йорк: Springer-Verlag, 1981.

Введенный в R2017b