exponenta event banner

оценка

Подгонка модели динамической регрессии Маркова к данным

Описание

пример

EstMdl = estimate(Mdl,Mdl0,Y) оценивает параметры марковской коммутационной модели динамической регрессии Mdl. estimate подгоняет модель к данным ответа Yи инициализирует процедуру оценки путем обработки значений параметров полностью заданной модели динамической регрессии с коммутацией Маркова Mdl0 в качестве начальных значений. estimate использует версию алгоритма ожидания-максимизации (EM), описанного Гамильтоном [3].

пример

EstMdl = estimate(Mdl,Mdl0,Y,Name,Value) использует дополнительные параметры, заданные одним или несколькими аргументами пары имя-значение. Например, 'IterationPlot',true отображает график зависимости результата от шага итерации после завершения алгоритма.

пример

[EstMdl,SS,logL] = estimate(___) также возвращает ожидаемые сглаженные вероятности состояния SS и предполагаемый источник средств к существованию logL когда алгоритм завершается, используя любую из комбинаций входных аргументов в предыдущих синтаксисах.

[EstMdl,SS,logL] = estimate(ax,___) графики на осях, указанных ax вместо текущих осей (gca). Выбор ax может предшествовать любой из комбинаций входных аргументов в предыдущих синтаксисах.

[EstMdl,SS,logL,h] = estimate(ax,___) также возвращает дескриптор графика h. Использовать h для изменения свойств графика после его создания.

Примеры

свернуть все

Рассмотрим модель динамической регрессии послевоенного реального роста ВВП США с переключением на два государства, как это оценивается в [1].

Создание частично заданной модели для оценки

Создайте модель динамической регрессии с коммутацией Маркова для наивного оценщика, задав дискретную цепочку Маркова с двумя состояниями с неизвестной матрицей перехода и подмоделями AR (0) (только константы) для обоих режимов. Маркировать режимы.

P = NaN(2);
mc = dtmc(P,'StateNames',["Expansion" "Recession"]);
mdl = arima(0,0,0);
Mdl = msVAR(mc,[mdl; mdl]);

Mdl является частично указанным msVAR объект. NaN-значимые элементы Switch и SubModels свойства указывают оцениваемые параметры.

Создание полностью заданной модели, содержащей начальные значения

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

P0 = 0.5*ones(2);
mc0 = dtmc(P0,'StateNames',Mdl.StateNames);
mdl01 = arima('Constant',1,'Variance',1);
mdl02 = arima('Constant',-1,'Variance',1);
Mdl0 = msVAR(mc0,[mdl01; mdl02]);

Mdl0 является полностью указанным msVAR объект.

Загрузка и предварительная обработка данных

Загрузите набор данных ВВП США.

load Data_GDP

Data содержит квартальные измерения реального ВВП США в период 1947: Q1-2005: Q2. Период оценки в [1] равен 1947:Q2-2004:Q2. Для получения дополнительной информации о наборе данных введитеDescription в командной строке.

Преобразуйте данные в годовой ряд скоростей, выполнив следующие действия:

  1. Преобразование данных в квартальную ставку в течение расчетного периода

  2. Ежегодное исчисление квартальных ставок

qrate = diff(Data(2:230))./Data(2:229); % Quarterly rate
arate = 100*((1 + qrate).^4 - 1);       % Annualized rate

Модель оценки

Подгонка модели Mdl в ряды годовых ставок arate. Определить Mdl0 в качестве модели, содержащей начальные оценочные значения параметров.

EstMdl = estimate(Mdl,Mdl0,arate);

EstMdl - оценочная (полностью заданная) модель динамической регрессии с коммутацией Маркова. EstMdl.Switch - оценочная дискретно-временная модель цепи Маркова (dtmc объект), и EstMdl.Submodels является вектором оцененных одномерных моделей VAR (0) (varm объекты).

Отображение расчетных динамических моделей, зависящих от состояния.

EstMdlExp = EstMdl.Submodels(1)
EstMdlExp = 
  varm with properties:

     Description: "ARIMA(0,0,0) Model (Gaussian Distribution)"
     SeriesNames: "Y1" 
       NumSeries: 1
               P: 0
        Constant: 4.90146
              AR: {}
           Trend: 0
            Beta: [1×0 matrix]
      Covariance: 12.087
 
   1-Dimensional VAR(0) Model
EstMdlRec = EstMdl.Submodels(2)
EstMdlRec = 
  varm with properties:

     Description: "ARIMA(0,0,0) Model (Gaussian Distribution)"
     SeriesNames: "Y1" 
       NumSeries: 1
               P: 0
        Constant: 0.0084884
              AR: {}
           Trend: 0
            Beta: [1×0 matrix]
      Covariance: 12.6876
 
   1-Dimensional VAR(0) Model

Отображение оценочной матрицы перехода состояния.

EstP = EstMdl.Switch.P
EstP = 2×2

    0.9088    0.0912
    0.2303    0.7697

Рассмотрим модель и данные в разделе Оценка модели динамической регрессии с коммутацией Маркова.

Создайте частично указанную модель для оценки.

P = NaN(2);
mc = dtmc(P,'StateNames',["Expansion" "Recession"]);
mdl = arima(0,0,0);
Mdl = msVAR(mc,[mdl; mdl]);

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

P0 = 0.5*ones(2);
mc0 = dtmc(P0,'StateNames',Mdl.StateNames);
mdl01 = arima('Constant',1,'Variance',1);
mdl02 = arima('Constant',-1,'Variance',1);
Mdl0 = msVAR(mc0,[mdl01; mdl02]);

Загрузка и предварительная обработка данных.

load Data_GDP
qrate = diff(Data(2:230))./Data(2:229); 
arate = 100*((1 + qrate).^4 - 1);       

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

EstMdl = estimate(Mdl,Mdl0,arate,'IterationPlot',true);

Figure contains an axes. The axes with title Expectation-Maximization Algorithm contains an object of type line.

Оценка точности оценки с использованием смоделированных данных из известного процесса генерации данных (DGP). В этом примере используются произвольные значения параметров.

Создание модели для DGP

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

P = [0.7 0.3; 0.1 0.9];
mc = dtmc(P);

Для каждого состояния создайте полностью заданную модель AR (1) для процесса ответа.

% Constants
C1 = 5;
C2 = -2;

% Autoregression coefficients
AR1 = 0.4;
AR2 = 0.2;

% Variances
V1 = 4;
V2 = 2;

% AR Submodels
dgp1 = arima('Constant',C1,'AR',AR1,'Variance',V1);
dgp2 = arima('Constant',C2,'AR',AR2,'Variance',V2);

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

DGP = msVAR(mc,[dgp1,dgp2]);

Моделирование путей ответа от DGP

Сгенерируйте 10 случайных путей отклика длиной 1000 из DGP.

rng(1); % For reproducibility
N = 10;
n = 1000;
Data = simulate(DGP,n,'Numpaths',N);

Data представляет собой матрицу смоделированных откликов 1000 на 10.

Создание модели для оценки

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

PEst = NaN(2);
mcEst = dtmc(PEst);
mdl = arima(1,0,0);
Mdl = msVAR(mcEst,[mdl; mdl]);

Создание модели, содержащей начальные значения

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

P0 = 0.5*ones(2);
mc0 = dtmc(P0);
mdl01 = arima('Constant',1,'AR',0.5,'Variance',2);
mdl02 = arima('Constant',-1,'AR',0.5,'Variance',1);
Mdl0 = msVAR(mc0,[mdl01,mdl02]);

Модели оценки

Подберите модель для каждого моделируемого пути. Для каждого пути постройте график логической привязки на каждой итерации алгоритма EM.

c1 = zeros(N,1);
c2 = zeros(N,1);
v1 = zeros(N,1);
v2 = zeros(N,1);
ar1 = zeros(N,1);
ar2 = zeros(N,1);
PStack = zeros(2,2,N);

figure
hold on

for i = 1:N

    EstModel = estimate(Mdl,Mdl0,Data(:,i),'IterationPlot',true);
    
    c1(i) = EstModel.Submodels(1).Constant;
    c2(i) = EstModel.Submodels(2).Constant;
    v1(i) = EstModel.Submodels(1).Covariance;
    v2(i) = EstModel.Submodels(2).Covariance;
    ar1(i) = EstModel.Submodels(1).AR{1};
    ar2(i) = EstModel.Submodels(2).AR{1};
    PStack(:,:,i) = EstModel.Switch.P;
    
end

hold off

Figure contains an axes. The axes with title Expectation-Maximization Algorithm contains 10 objects of type line.

Оценка точности

Вычислите среднее значение Монте-Карло для каждого расчетного параметра.

c1Mean = mean(c1);
c2Mean = mean(c2);
v1Mean = mean(v1);
v2Mean = mean(v2);
ar1Mean = mean(ar1);
ar2Mean = mean(ar2);
PMean = mean(PStack,3);

Сравните параметры населения с соответствующими оценками Монте-Карло.

DGPvsEstimate = [...
    C1  c1Mean
    C2  c2Mean
    V1  v1Mean
    V2  v2Mean
    AR1 ar1Mean
    AR2 ar2Mean]
DGPvsEstimate = 6×2

    5.0000    5.0260
   -2.0000   -1.9615
    4.0000    3.9710
    2.0000    1.9903
    0.4000    0.4061
    0.2000    0.2017

P
P = 2×2

    0.7000    0.3000
    0.1000    0.9000

PEstimate = PMean
PEstimate = 2×2

    0.7065    0.2935
    0.1023    0.8977

Рассмотрим данные в модели динамической регрессии «Оценка Маркова - переключение», но предположим, что период интереса является 1960:Q1-2004:Q2. Также рассмотрите возможность добавления авторегрессионного члена в каждую подмодель.

Создайте частично заданную модель динамической регрессии с коммутацией Маркова для оценки. Укажите подмодели AR (1).

P = NaN(2);
mc = dtmc(P,'StateNames',["Expansion" "Recession"]);
mdl = arima(1,0,0);
Mdl = msVAR(mc,[mdl; mdl]);

Поскольку подмоделями являются AR (1), для каждой из них требуется одно предварительное наблюдение, чтобы инициализировать свой динамический компонент для оценки .

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

P0 = 0.5*ones(2);
mc0 = dtmc(P0,'StateNames',Mdl.StateNames);
mdl01 = arima('Constant',1,'Variance',1,'AR',0.001);
mdl02 = arima('Constant',-1,'Variance',1,'AR',0.001);
Mdl0 = msVAR(mc0,[mdl01; mdl02]);

Загрузите данные. Преобразуйте весь набор в годовой ряд скоростей.

load Data_GDP
qrate = diff(Data)./Data(1:(end - 1)); 
arate = 100*((1 + qrate).^4 - 1);

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

dates = datetime(dates(2:end),'ConvertFrom','datenum',...
    'Format','yyyy:QQQ','Locale','en_US');
estPrd = datetime(["1960:Q2" "2004:Q2"],'InputFormat','yyyy:QQQ',...
    'Format','yyyy:QQQ','Locale','en_US');
idxEst = isbetween(dates,estPrd(1),estPrd(2));
idxPre = dates < estPrd(1); % The presample is the previous quarter.

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

EstMdl = estimate(Mdl,Mdl0,arate(idxEst),'Y0',arate(idxPre),...
    'IterationPlot',true);

Figure contains an axes. The axes with title Expectation-Maximization Algorithm contains an object of type line.

Рассмотрим модель и данные в разделе Оценка модели динамической регрессии с коммутацией Маркова.

Создайте частично указанную модель для оценки.

P = NaN(2);
mc = dtmc(P,'StateNames',["Expansion" "Recession"]);
mdl = arima(0,0,0);
Mdl = msVAR(mc,[mdl; mdl]);

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

P0 = 0.5*ones(2);
mc0 = dtmc(P0,'StateNames',Mdl.StateNames);
mdl01 = arima('Constant',1,'Variance',1);
mdl02 = arima('Constant',-1,'Variance',1);
Mdl0 = msVAR(mc0,[mdl01; mdl02]);

Загрузка и предварительная обработка данных.

load Data_GDP
qrate = diff(Data(2:230))./Data(2:229); 
arate = 100*((1 + qrate).^4 - 1);       

Подгоните модель к данным. Возвращает ожидаемые сглаженные вероятности состояния и средства к существованию при завершении алгоритма.

[EstMdl,SS,logL] = estimate(Mdl,Mdl0,arate);

SS является матрицей 228 на 2 ожидаемых вероятностей сглаженного состояния; строки соответствуют периодам в выборке оценки, а столбцы соответствуют режимам. logL является окончательным источником средств к существованию.

Выведите на экран ожидаемые сглаженные вероятности состояния для последнего периода в выборке оценки и выведите окончательный результат.

SS(end,:)
ans = 1×2

    0.8985    0.1015

logL
logL = -639.4962

Подгонка моделируемых данных к модели динамической регрессии с коммутацией Маркова с подмоделями VARX. Укажите ограничения равенства для оценки. В этом примере используются произвольные значения параметров.

Создание модели для DGP

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

P = [0.8 0.1 0.1; 0.2 0.6 0.2; 0 0.1 0.9];
mc = dtmc(P);

Для каждого состояния создайте полностью заданную модель VARX (1) для процесса ответа. Укажите одну и ту же константу модели и матрицу коэффициентов AR с запаздыванием 1 для всех подмоделей. Для каждой модели укажите отдельный коэффициент регрессии 2 на 1 для одной экзогенной переменной.

% Constants
C = [1;-1];

% Autoregression coefficients
AR = {[0.6 0.1; 0.4 0.2]};

% Regression coefficients
Beta1 = [0.2;-0.4];
Beta2 = [0.6;-1.0];
Beta3 = [0.9;-1.3];

% VAR Submodels
dgp = varm('Constant',C,'AR',AR,'Covariance',5*eye(2));
dgp1 = dgp;
dgp1.Beta = Beta1;
dgp2 = dgp;
dgp2.Beta = Beta2;
dgp3 = dgp;
dgp3.Beta = Beta3;

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

DGP = msVAR(mc,[dgp1; dgp2; dgp3]);

Моделирование данных из DGP

Моделирование данных для экзогенного ряда путем генерации 1000 наблюдений из гауссова распределения со средним значением 0 и дисперсией 100.

rng(1); % For reproducibility
X = 10*randn(1000,1);

Генерировать случайный путь отклика длиной 1000 из DGP. Укажите смоделированные экзогенные данные для компонентов регрессии подмодели.

Data = simulate(DGP,1000,'X',X);

Data является вектором смоделированных откликов 1000 на 1.

Создание модели для оценки

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

PEst = NaN(3);
mcEst = dtmc(PEst);
mdl = varm(2,1);
mdl.Constant = C;
mdl.AR = AR;
mdl.Beta = NaN(2,1);
Mdl = msVAR(mcEst,[mdl; mdl; mdl]);

Поскольку значения констант и матриц коэффициентов AR указаны в Mdl, estimate рассматривает их как ограничения равенства для оценки.

Создание модели, содержащей начальные значения

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

P0 = (1/3)*ones(3);
mc0 = dtmc(P0);
mdl0 = varm('Constant',C,'AR',AR,'Covariance',eye(2));
mdl01 = mdl0;
mdl01.Beta = [0.1;-0.1];
mdl02 = mdl0;
mdl02.Beta = [0.5;-0.5];
mdl03 = mdl0;
mdl03.Beta = [1;-1];
Mdl0 = msVAR(mc0,[mdl01; mdl02; mdl03]);

Модель оценки

Подгонка модели к моделируемым данным. Укажите экзогенные данные для компонента регрессии. Постройте график учета на каждой итерации алгоритма EM.

figure
EstMdl = estimate(Mdl,Mdl0,Data,'X',X,'IterationPlot',true);

Figure contains an axes. The axes with title Expectation-Maximization Algorithm contains an object of type line.

Оценка точности

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

Beta1
Beta1 = 2×1

    0.2000
   -0.4000

Beta1Estimate = EstMdl.Submodels(1).Beta
Beta1Estimate = 2×1

    0.1596
   -0.4040

Beta2
Beta2 = 2×1

    0.6000
   -1.0000

Beta2Estimate = EstMdl.Submodels(2).Beta
Beta2Estimate = 2×1

    0.5888
   -0.9771

Beta3
Beta3 = 2×1

    0.9000
   -1.3000

Beta3Estimate = EstMdl.Submodels(3).Beta
Beta3Estimate = 2×1

    0.8987
   -1.2991

P
P = 3×3

    0.8000    0.1000    0.1000
    0.2000    0.6000    0.2000
         0    0.1000    0.9000

PEstimate = EstMdl.Switch.P
PEstimate = 3×3

    0.7787    0.0856    0.1357
    0.1366    0.6906    0.1727
    0.0086    0.0787    0.9127

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

свернуть все

Частично указанная модель динамической регрессии с коммутацией Маркова, используемая для указания ограниченных и оцениваемых параметров модели, указанных как msVAR объект модели, возвращенный msVAR. Свойства Mdl опишите структуру модели и укажите параметры.

estimate обрабатывает указанные параметры как ограничения равенства во время оценки.

estimate подходит неуказанно (NaN-значимые) параметры к данным Y.

Полностью заданная модель динамической регрессии с коммутацией Маркова, используемая для инициализации процедуры оценки, указанная как msVAR объект модели, возвращенный msVAR. Свойства полностью указанного объекта модели не содержат NaN значения.

Mdl0 является копией Mdl с NaN значения заменены начальными значениями.

Совет

Для широкого охвата пространства параметров выполните алгоритм из нескольких экземпляров Mdl0. Дополнительные сведения см. в разделе Алгоритмы.

Наблюдаемые данные ответа, на которые estimate подходит для модели, указанной как numObsоколо-numSeries числовая матрица.

numObs - размер выборки. numSeries - количество переменных ответа (Mdl.NumSeries).

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

Y представляет продолжение последовательности ответов предварительной выборки в Y0.

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

Оси, на которых следует построить график источников средств к существованию для каждой итерации, когда IterationPlot является true, указано как Axes объект.

По умолчанию estimate графики к текущим осям (gca).

Если IterationPlot имеет значение false, estimate игнорирует ax.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Y0',Y0,'X',X,'IterationPlot',true использует матрицу Y0 в качестве предварительных ответов, необходимых для оценки, включает компонент линейной регрессии в каждой подмодели, состоящей из данных предиктора в X и определенные коэффициенты регрессии, и строит график источников логарифма для каждой итерации.

Предварительные данные ответа, указанные как пара, разделенная запятыми, состоящая из 'Y0' и numPreSampleObsоколо-numSeries числовая матрица.

Количество предварительных наблюдений numPreSampleObs должно быть достаточным для инициализации членов AR всех подмоделей. Если numPreSampleObs превышает порядок AR любого состояния, estimate использует последние наблюдения. По умолчанию Y0 - начальный сегмент Y, что снижает эффективный размер выборки.

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

Вероятности начального состояния, указанные как пара, разделенная запятыми, состоящая из 'S0' и неотрицательный числовой вектор длины numStates.

estimate нормализует S0 для создания дистрибутива.

По умолчанию S0 является стационарным распределением, вычисленным asymptotics.

estimate обновления S0 при каждой итерации с использованием ожидаемых сглаженных вероятностей для начального распределения.

Пример: 'S0',[0.2 0.2 0.6]

Пример: 'S0',[0 1] задает состояние 2 в качестве начального состояния.

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

Данные предиктора, используемые для оценки регрессионных компонентов во всех подмоделях Mdl, указанная как пара, разделенная запятыми, состоящая из 'X' и числовую матрицу или вектор ячейки из цифровых матриц.

Чтобы использовать подмножество одинаковых предикторов в каждом состоянии, укажите X в виде матрицы с numPreds столбцы и по крайней мере numObs строк. Столбцы соответствуют различным переменным предиктора. Подмодели используют начальные столбцы связанной матрицы по порядку вплоть до числа предикторов подмодели. Количество столбцов в Beta имущество Mdl.SubModels(j) определяет количество экзогенных переменных в компоненте регрессии подмодели j. Если число строк превышает numObs, то estimate использует последние наблюдения.

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

По умолчанию estimate игнорирует компоненты регрессии в Mdl.

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

Допуск сходимости, заданный как разделенная запятыми пара, состоящая из 'Tolerance' и положительный числовой скаляр.

Алгоритм EM завершается после итерации, в которой логическое средство logL изменения менее чем на Tolerance.

Пример: 'Tolerance',1e-6

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

Максимальное количество итераций алгоритма EM, указанное как разделенная запятыми пара, состоящая из 'MaxIterations' и положительное целое число.

Пример: 'MaxIterations',1000

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

Флаг для вывода на печать данных журнала на каждой итерации, указанный как разделенная запятыми пара, состоящая из: 'IterationPlot' и значение в этой таблице.

СтоимостьОписание
trueКогда алгоритм завершается, estimate показывает график средств к существованию на каждом этапе итерации.
falseestimate не показывает график.

Пример: 'IterationPlot',true

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

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

свернуть все

Оценочная модель динамической регрессии с коммутацией Маркова, возвращенная как msVAR объект. EstMdl является копией Mdl который имеет NaN значения заменены оценками параметров. EstMdl полностью указан.

Примечание

Нормализация строк может изменить указанные значения в матрице перехода входной модели Mdl.Switch.P.

Ожидаемые вероятности сглаженного состояния при завершении алгоритма, возвращаемые как numObsоколо-numStates числовая матрица.

Предполагаемый источник данных ответа Y в отношении расчетной модели EstMdl когда алгоритм завершается, возвращается в виде числового скаляра.

Дескриптор для печати итерации, возвращаемый как графический объект, когда IterationPlot является true.

h содержит уникальный идентификатор графика, который можно использовать для запроса или изменения свойств графика.

Совет

  • В [4] Гамильтон предупреждает: «Хотя у исследователя может возникнуть соблазн использовать как можно более общую спецификацию, при этом все параметры меняются в большом числе режимов... на практике это обычно требует больше, чем могут дать данные». Гамильтон рекомендует модель парсимонии и выборочной оценки, чтобы «ограничить фокус несколькими наиболее важными параметрами, которые, вероятно, изменятся».

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

Алгоритмы

  • estimate реализует версию алгоритма EM, описанную в [2], [3] и [4]. С учетом первоначальной оценки параметров модели Mdl0, estimate выполняет итерацию следующего процесса до сходимости:

    1. Шаг ожидания - estimate применяется smooth к данным для получения выводов вероятностей скрытого состояния на каждом временном этапе и оценки общего источника данных.

    2. Шаг максимизации - estimate использует ожидаемые сглаженные вероятности из шага ожидания для взвешивания данных перед обновлением оценок параметров в каждой подмодели.

  • Поверхности правдоподобия для смешанных плотностей переключающих моделей могут содержать локальные максимумы и сингулярности [2]. Если это так, то наибольший локальный максимум с ненулевой дисперсией модели считается оценкой максимального правдоподобия (MLE). Если Mdl0 находится в районе MLE, estimate обычно сходится к нему, но эта сходимость не гарантируется.

  • estimate обрабатывает два типа ограничений:

    • Ограничения для параметров подмодели, которые estimate объектная функция varm объект принудительно применяется на каждом шаге максимизации

    • Ограничения на вероятности перехода, которые estimate обеспечивает проецирование максимальной оценки матрицы перехода на ограниченное пространство параметров после каждой итерации

    Ограничения на отклонения и ковариации инноваций подмоделей не поддерживаются. estimate вычисляет ковариации инноваций после оценки, независимо от их значений.

Ссылки

[1] Chauvet, M. и Дж. Д. Гамильтон. «Переломные моменты бизнес-цикла знакомств». В нелинейном анализе бизнес-циклов (вклад в экономический анализ, том 276). (К. Милас, П. Ротман и Д. ван Дийк, ред.). Амстердам: Emerald Group Publishing Limited, 2006.

[2] Гамильтон, Дж. Д. «Анализ временных рядов, подверженных изменениям в режиме». Журнал эконометрики. Том 45, 1990, стр. 39-70.

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

[4] Гамильтон, Дж. Д. «Макроэкономические режимы и изменения режимов». В Справочнике по макроэкономике. (Х. Ухлиг и Дж. Тейлор, ред.). Амстердам: Elsevier, 2016.

[5] Коле, Е. «Модели переключения режимов: пример для индекса фондового рынка». Роттердам, НЛ: Эконометрический институт, Школа экономики Эразма, 2010.

См. также

Объекты

Функции

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