estimate

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

Описание

пример

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]);

Потому что значения констант и матриц коэффициентов заданы в 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-by- numSeries числовая матрица.

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

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

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

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

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

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

Если IterationPlot ложно, estimate игнорирует ax.

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

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

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

Предварительный пример данных отклика, заданный как разделенная разделенными запятой парами, состоящая из 'Y0' и a numPreSampleObs-by- 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-by- 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 enforces путем проецирования максимальной оценки матрицы перехода на ограниченное пространство параметров после каждой итерации

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

Ссылки

[1] Шове, М. и Дж. Д. Гамильтон. «Поворотные точки делового цикла знакомств». В нелинейном анализе бизнес-циклов (вклад в экономический анализ, том 276). (C. Milas, P. Rothman, and D. van Dijk, eds.). Амстердам: Emerald Group Publishing Limited, 2006.

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

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

[4] Гамильтон, Дж. Д. Макроэкономические режимы и сдвиги режима. В Справочнике по макроэкономике. (H. Uhlig and J. Taylor, eds.). Амстердам: Elsevier, 2016.

[5] Kole, E. «Mode Switching Моделей: An Example for a Stock Market Index». Роттердам, NL: Эконометрический институт, Школа экономики Эразма, 2010.

См. также

Объекты

Функции

Введенный в R2019b