estimate

Подбирайте переключающую Маркова модель динамической регрессии к данным

Описание

пример

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

пример

EstMdl = estimate(Mdl,Mdl0,Y,Name,Value) дополнительные опции использования заданы одними или несколькими аргументами 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 изменить свойства графика после того, как вы создаете его.

Примеры

свернуть все

Считайте переключающую Маркова модель динамической регрессии с двумя состояниями послевоенных США действительным темпом роста GDP, как оценено в [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 объект.

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

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

load Data_GDP

Data содержит ежеквартальные измерения США действительный GDP в период 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: "1-Dimensional VAR(0) Model"
     SeriesNames: "Y1" 
       NumSeries: 1
               P: 0
        Constant: 4.90146
              AR: {}
           Trend: 0
            Beta: [1×0 matrix]
      Covariance: 12.087
EstMdlRec = EstMdl.Submodels(2)
EstMdlRec = 
  varm with properties:

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

Отобразите предполагаемую матрицу переходов.

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

    0.9088    0.0912
    0.2303    0.7697

Отобразите сводные данные оценки, содержащие оценки параметра и выводы.

summarize(EstMdl)
Description
1-Dimensional msVAR Model with 2 Submodels

Switch
Estimated Transition Matrix:
0.909 0.091 
0.230 0.770 

Fit
Effective Sample Size: 228 
Number of Estimated Parameters: 2 
Number of Constrained Parameters: 0 
LogLikelihood: -639.496 
AIC: 1282.992 
BIC: 1289.851 

Submodels
                           Estimate     StandardError    TStatistic      PValue   
                           _________    _____________    __________    ___________

    State 1 Constant(1)       4.9015       0.23023          21.289     1.4301e-100
    State 2 Constant(1)    0.0084884        0.2359        0.035983          0.9713

Рассмотрите модель и данные в Оценочной Модели Динамической регрессии Переключения Маркова.

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

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 object. The axes object 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 object. The axes object 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 object. The axes object 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) для процесса ответа. Задайте ту же константу модели и изолируйте 1 матрицу коэффициентов AR для всех подмоделей. Для каждой модели задайте различное 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

Симулируйте данные для внешнего ряда путем генерации 1 000 наблюдений от Распределения Гаусса со средним значением 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 object. The axes object 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 имя аргумента и 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

Типы данных: логический

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

свернуть все

Предполагаемая переключающая Маркова модель динамической регрессии, возвращенная как 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). C. Милас, П. Ротмен, и Д. ван Дейк, редакторы). Амстердам: Emerald Group Publishing Limited, 2006.

[2] Гамильтон, J. D. "Анализ Временных рядов Согласно Изменениям в Режиме". Журнал Эконометрики. Издание 45, 1990, стр 39–70.

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

[4] Гамильтон, J. D. "Макроэкономические Режимы и Сдвиги Режима". В Руководстве Макроэкономики. (Х. Ахлиг и Дж. Тейлор, редакторы). Амстердам: Elsevier, 2016.

[5] Коул, E. "Модели переключения режима: пример для индекса фондового рынка". Роттердам, NL: эконометрический институт, школа Эразмуса экономики, 2010.

Смотрите также

Объекты

Функции

Введенный в R2019b