estimate

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

Описание

пример

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

пример

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

пример

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

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

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

Примеры

свернуть все

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

Создайте модель для DGP

Создайте дискретный пороговый переход в 1 среднего уровня.

ttDGP = threshold(1)
ttDGP = 
  threshold with properties:

          Type: 'discrete'
        Levels: 1
         Rates: []
    StateNames: ["1"    "2"]
     NumStates: 2

ttDGP threshold объект, представляющий механизм переключения состояния DGP.

Создайте следующую полностью заданную самовозбуждающуюся модель TAR (SETAR) для DGP.

  • Состояние 1: yt=εt.

  • Состояние 2: yt=2+εt.

  • εtΝ(0,1).

Задайте подмодели при помощи arima.

mdl1DGP = arima(Constant=0);
mdl2DGP = arima(Constant=2);
mdlDGP = [mdl1DGP mdl2DGP];

Поскольку инновационное распределение является инвариантным через состояния, tsVAR программное обеспечение игнорирует значение инновационного отклонения подмодели (Variance свойство.

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

MdlDGP = tsVAR(ttDGP,mdlDGP,Covariance=1);

MdlDGP tsVAR объект, представляющий DGP.

Симулируйте пути к ответу от DGP

Сгенерируйте случайный путь к ответу длины 100 от DGP. По умолчанию, simulate принимает модель SETAR с задержкой d=1, другими словами, пороговая переменная yt-1.

rng(1) % For reproducibiliy
y = simulate(MdlDGP,100);

y 100 1 вектор из представления пути к симулированному отклику.

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

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

tt = threshold(NaN);
mdl1 = arima('Constant',NaN);
mdl2 = arima('Constant',NaN);
Mdl = tsVAR(tt,[mdl1,mdl2],'Covariance',NaN);

Mdl частично заданный tsVAR объект, представляющий шаблон для оценки. NaN- ценные элементы Switch и Submodels свойства указывают на допускающие оценку параметры.

Mdl агностик пороговой переменной; tsVAR объектные функции позволяют вам задать пороговые характеристики переменной или данные.

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

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

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

tt0 = threshold(0);

tt0 полностью заданный threshold объект.

Оценочная модель

Подбирайте модель к симулированному пути. По умолчанию модель сам, возбуждение и задержка пороговой переменной d=1.

EstMdl = estimate(Mdl,tt0,y)
EstMdl = 
  tsVAR with properties:

         Switch: [1x1 threshold]
      Submodels: [2x1 varm]
      NumStates: 2
      NumSeries: 1
     StateNames: ["1"    "2"]
    SeriesNames: "1"
     Covariance: 1.0225

EstMdl полностью заданный tsVAR объект, представляющий предполагаемую модель SETAR.

Отобразите сводные данные оценки подмоделей.

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

Switch
Transition Type: discrete
Estimated Levels: 1.128

Fit
Effective Sample Size: 99 
Number of Estimated Parameters: 2 
Number of Constrained Parameters: 0 
LogLikelihood: -141.574 
AIC: 287.149 
BIC: 292.339 

Submodels
                           Estimate    StandardError    TStatistic      PValue  
                           ________    _____________    __________    __________

    State 1 Constant(1)    -0.12774       0.13241        -0.96474        0.33467
    State 2 Constant(1)      2.1774       0.16829          12.939     2.7264e-38

Оценки близко к их истинным значениям.

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

figure
ttplot(EstMdl.Switch,'Data',y)

Figure contains an axes object. The axes object with title Threshold Transitions contains 2 objects of type line.

estimate не соответствует параметру задержки d к данным; необходимо задать его значение, когда вы вызываете estimate. В этом примере показано, как настроиться d.

Создайте следующую полностью заданную модель SETAR для DGP.

  • Состояние 1: yt=ε1,t, где ε1,tΝ(0,1).

  • Состояние 2: yt=2+ε2,t, где ε2,tΝ(0,2)

  • Система находится в состоянии 1 когда yt-4<0, и это находится в состоянии 2 в противном случае.

ttDGP = threshold(0);
mdl1DGP = arima(Constant=0,Variance=1);
mdl2DGP = arima(Constant=2,Variance=2);
mdlDGP = [mdl1DGP; mdl2DGP];
MdlDGP = tsVAR(ttDGP,mdlDGP);

Сгенерируйте случайный путь к ответу длины 200 от DGP. Укажите, что пороговой задержкой переменной является 4.

rng(1) % For reproducibiliy
y = simulate(MdlDGP,200,Delay=4);

plot(y)

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

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

tt = threshold(NaN);
mdl = arima(0,0,0);
Mdl = tsVAR(tt,[mdl; mdl]);

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

tt0 = threshold(0.5);

Настройтесь d выбирая набор вероятных значений для него и подбирая модель SETAR к симулированным данным для каждого значения в наборе. Выберите модель, которая минимизирует логарифмическую правдоподобность.

d = 1:8;
nd = numel(d);
logL = zeros(nd,1);     % Preallocate for loglikelihoods
EstMdl = cell(nd,1);    % Preallocate for estimated models

for j = 1:nd
    [EstMdl{j},logL(j)] = estimate(Mdl,tt0,y,Delay=d(j));
end

Извлеките модель, которая минимизирует логарифмическую правдоподобность.

[~,optDelay] = max(logL)
optDelay = 4
OptEstMdl = EstMdl{optDelay};

Оптимальной задержкой является 4, который совпадает с задержкой DGP.

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

summarize(OptEstMdl)
Description
1-Dimensional tsVAR Model with 2 Submodels

Switch
Transition Type: discrete
Estimated Levels: -0.063

Fit
Effective Sample Size: 196 
Number of Estimated Parameters: 2 
Number of Constrained Parameters: 0 
LogLikelihood: -336.184 
AIC: 676.367 
BIC: 682.923 

Submodels
                           Estimate    StandardError    TStatistic      PValue  
                           ________    _____________    __________    __________

    State 1 Constant(1)    -0.33535       0.24271        -1.3817         0.16707
    State 2 Constant(1)      2.0073       0.10647         18.853      2.7794e-79

Оценки близко к параметрам DGP.

Создайте следующую полностью заданную модель SETAR для DGP.

  • Состояние 1: [y1,ty2,t]=[-1-4]+[-0.50.10.2-0.75][y1,t-1y2,t-1]+[ε1,tε2,t].

  • Состояние 2: [y1,ty2,t]=[14]+[ε1,tε2,t].

  • Состояние 3:[y1,ty2,t]=[14]+[0.50.10.20.75][y1,t-1y2,t-1]+[ε1,tε2,t].

  • [ε1,tε2,t]N2([00],[2-1-11]).

  • Система находится в состоянии 1 когда y2,t-4<-3, система находится в состоянии 2 когда -3y2,t-4<3, и система находится в состоянии 3 в противном случае.

t = [-3 3];
ttDGP = threshold(t);

constant1 = [-1; -4];
constant2 = [1; 4];
constant3 = [1; 4];
AR1 = [-0.5 0.1; 0.2 -0.75];
AR3 = [0.5 0.1; 0.2 0.75];
Sigma = [2 -1; -1 1];

mdl1DGP = varm(Constant=constant1,AR={AR1});
mdl2DGP = varm(Constant=constant2);
mdl3DGP = varm(Constant=constant3,AR={AR3});

mdlDGP = [mdl1DGP; mdl2DGP; mdl3DGP];
MdlDGP = tsVAR(ttDGP,mdlDGP,Covariance=Sigma);

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

rng(10) % For reproducibiliy
y = simulate(MdlDGP,500,Index=2,Delay=4);

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

tt = threshold([NaN; NaN]);
mdlar = varm(2,1);
mdlc = varm(2,0);
Mdl = tsVAR(tt,[mdlar; mdlc; mdlar],Covariance=nan(2));

Полностью задайте пороговый переход, который имеет ту же структуру как tt, но набор середина уровней к-1 и 1.

t0 = [-1 1];
tt0 = threshold(t0);

Подбирайте переключающую порог модель к симулированному ряду. Задайте пороговую переменную y2,t-4. Постройте логарифмическую правдоподобность после каждой итерации порогового алгоритма поиска.

EstMdl = estimate(Mdl,tt0,y,IterationPlot=true,Index=2,Delay=4);

Figure contains an axes object. The axes object with title Threshold Search Algorithm contains an object of type line.

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

Отобразите сводные данные оценки модели.

summarize(EstMdl)
Description
2-Dimensional tsVAR Model with 3 Submodels

Switch
Transition Type: discrete
Estimated Levels: -2.877  2.991

Fit
Effective Sample Size: 496 
Number of Estimated Parameters: 14 
Number of Constrained Parameters: 0 
LogLikelihood: -1478.416 
AIC: 2984.831 
BIC: 3043.723 

Submodels
                           Estimate    StandardError    TStatistic      PValue   
                           ________    _____________    __________    ___________

    State 1 Constant(1)     -1.0369       0.13859        -7.4821        7.312e-14
    State 1 Constant(2)     -4.0179       0.09959        -40.345                0
    State 1 AR{1}(1,1)     -0.43289      0.063204        -6.8491       7.4332e-12
    State 1 AR{1}(2,1)      0.20344      0.045419         4.4791       7.4957e-06
    State 1 AR{1}(1,2)     0.076123      0.024477         3.1099        0.0018714
    State 1 AR{1}(2,2)     -0.75607       0.01759        -42.983                0
    State 2 Constant(1)      1.0545       0.14882         7.0858        1.382e-12
    State 2 Constant(2)      4.1131       0.10694          38.46      1.9763e-323
    State 3 Constant(1)      1.0621      0.095701         11.098       1.2802e-28
    State 3 Constant(2)      3.8707      0.068772         56.284                0
    State 3 AR{1}(1,1)      0.47396      0.058016         8.1694       3.0997e-16
    State 3 AR{1}(2,1)      0.23013      0.041691         5.5199       3.3927e-08
    State 3 AR{1}(1,2)      0.10561      0.018233         5.7924       6.9371e-09
    State 3 AR{1}(2,2)       0.7568      0.013102         57.761                0

Рассмотрите сглаженную переключающую порог модель (STAR) для действительного темпа роста GDP США, где каждая подмодель является AR (4), и пороговая переменная является темпом роста безработицы.

Создайте частично заданный пороговый переход для темпа роста безработицы. Задайте нормальную cdf функцию перехода, и неизвестное, допускающее оценку, среднего уровня и уровень. Пометьте состояния "Contaction" и "Expansion".

tt = threshold(NaN,Type="normal",Rates=NaN,...
    StateNames=["Contraction" "Expansion"]);

tt частично заданный пороговый объект, и это - агностик переменной и данных, которые это представляет.

Создайте переключающую порог модель для действительного темпа роста GDP США. Пометьте серию "rRGDP".

mdl = arima(4,0,0);
submdls = [mdl; mdl];
Mdl = tsVAR(tt,submdls,SeriesNames="rRGDP");

Загрузите ежеквартальные США макроэкономический набор данных Data_USEconModel.mat. Вычислите действительный рост процента GDP и рост безработицы.

load Data_USEconModel

DataTable = rmmissing(DataTable,DataVariables=["GDP" "GDPDEF" "UNRATE"]);
RGDP = DataTable.GDP./DataTable.GDPDEF;
rRGDP = price2ret(RGDP)*100;        % Response data
gUNRATE = diff(DataTable.UNRATE);   % Exogenous thresold data
dates = DataTable.Time(2:end);

Предположим, что период оценки включает темпы роста от первого квартала 1 950. Идентифицируйте период оценки в основе даты.

startEst = datetime(1950,1,1);
idxEst = dates >= startEst;

Чтобы инициализировать оценку procesdure, полностью задайте пороговый переход, который имеет ту же структуру как tt, но набор среднего уровня к -0.5 и уровень 100.

tt0 = threshold(-0.5,Type=tt.Type,Rates=100,StateNames=tt.StateNames);

Подбирайте модель STAR к периоду оценки ряда темпа роста GDP США. Задайте следующие параметры:

  • Установите Y0 к ответам перед периодом оценки, чтобы инициализировать компоненты подмодели AR.

  • Установите Type к "внешнему", чтобы охарактеризовать пороговую переменную.

  • Установите Z на пороговые данные о переменной gUNRATE в период оценки.

  • Установите MaxRate к 150 расширять поиск оптимального уровня функции перехода.

  • Постройте эволюцию логарифмической правдоподобности.

EstMdl = estimate(Mdl,tt0,rRGDP(idxEst),Y0=rRGDP(~idxEst),...
    Z=gUNRATE(idxEst),Type="exogenous",MaxRate=150,IterationPlot=true);

Figure contains an axes object. The axes object with title Threshold Search Algorithm contains an object of type line.

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

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

Switch
Transition Type: normal
Estimated Levels: 0.208
Estimated Rates: 74.993

Fit
Effective Sample Size: 237 
Number of Estimated Parameters: 10 
Number of Constrained Parameters: 0 
LogLikelihood: -285.022 
AIC: 590.043 
BIC: 624.724 

Submodels
                           Estimate     StandardError    TStatistic      PValue  
                           _________    _____________    __________    __________

    State 1 Constant(1)       1.0473       0.11549           9.068     1.2125e-19
    State 1 AR{1}(1,1)       0.15792      0.068783          2.2959       0.021679
    State 1 AR{2}(1,1)      0.059888      0.066409          0.9018        0.36716
    State 1 AR{3}(1,1)      -0.10455      0.070384         -1.4854        0.13744
    State 1 AR{4}(1,1)     -0.098037      0.063249           -1.55        0.12114
    State 2 Constant(1)     -0.12491       0.15383        -0.81197        0.41681
    State 2 AR{1}(1,1)       0.15366       0.13993          1.0981        0.27215
    State 2 AR{2}(1,1)     -0.027925       0.16754        -0.16667        0.86763
    State 2 AR{3}(1,1)      -0.24366       0.12778         -1.9068       0.056543
    State 2 AR{4}(1,1)     -0.075389       0.14024        -0.53759        0.59086
figure
ttplot(EstMdl.Switch,Data=gUNRATE(idxEst))
dEst = dates(idxEst);
xticklabels(string(dEst(xticks)))

Figure contains an axes object. The axes object with title Threshold Transitions contains 2 objects of type patch, line.

Большой уровень предполагает, что мало смешивания находится между моделями каждого режима. Когда ежеквартальное издание unempoyment рост меньше 0,206%, доминирующая модель для темпа роста GDP США находится в EstMdl.Submodels(1). В противном случае доминирующая подмодель находится в EstMdl.Submodels(2).

Многие коэффициенты незначительны, который может предложить поиск более простой модели.

В этом примере показано, как задать ограничения равенства на допускающие оценку коэффициенты подмодели и пороговые параметры.

Полагайте, что модель для действительного темпа роста GDP США в Задает Преддемонстрационные Данные Для ЗВЕЗДООБРАЗНОЙ Оценки Модели. Примите, что подмодели являются AR (4), но они включают только константу модели (тренд времени в differenced ряду) и четвертая задержка. Кроме того, предположите уровень функции перехода 3 для ряда роста безработицы.

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

rConstraint = 3;
tt = threshold(NaN,Type="normal",Rates=rConstraint,StateNames=["Contraction" "Expansion"]);

Создайте переключающую порог модель для действительного темпа роста GDP США. Явным образом задайте задержки AR, чтобы включать в подмодели при помощи ARLags опция.

mdl = arima(ARLags=4);
submdls = [mdl; mdl];
Mdl = tsVAR(tt,submdls,SeriesNames="rRGDP");

Загрузите ежеквартальные США макроэкономический набор данных Data_USEconModel.mat. Вычислите действительный рост процента GDP и рост безработицы.

load Data_USEconModel

DataTable = rmmissing(DataTable,DataVariables=["GDP" "GDPDEF" "UNRATE"]);
RGDP = DataTable.GDP./DataTable.GDPDEF;
rRGDP = price2ret(RGDP)*100;        % Response data
gUNRATE = diff(DataTable.UNRATE);   % Exogenous thresold data
dates = DataTable.Time(2:end);

Предположим, что период оценки включает темпы роста от первого квартала 1 950. Идентифицируйте период оценки в основе даты.

startEst = datetime(1950,1,1);
idxEst = dates >= startEst;

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

tt0 = threshold(0,Type=tt.Type,Rates=rConstraint,StateNames=tt.StateNames);

Подбирайте модель STAR к периоду оценки ряда темпа роста GDP США. Задайте следующие параметры:

  • Установите Y0 к ответам перед периодом оценки, чтобы инициализировать компоненты подмодели AR.

  • Установите Type к "exogenous" охарактеризовать пороговую переменную.

  • Установите Z к пороговым данным о переменной gUNRATE в период оценки.

  • Установите MaxRate к 150, чтобы расширить поиск оптимального уровня функции перехода.

  • Постройте эволюцию логарифмической правдоподобности.

EstMdl = estimate(Mdl,tt0,rRGDP(idxEst),Y0=rRGDP(~idxEst),...
    Z=gUNRATE(idxEst),Type="exogenous",IterationPlot=true);

Figure contains an axes object. The axes object with title Threshold Search Algorithm contains an object of type line.

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

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

Switch
Transition Type: normal
Estimated Levels: 0.228
Estimated Rates: 3.000

Fit
Effective Sample Size: 237 
Number of Estimated Parameters: 4 
Number of Constrained Parameters: 6 
LogLikelihood: -267.892 
AIC: 543.784 
BIC: 557.656 

Submodels
                           Estimate     StandardError    TStatistic      PValue  
                           _________    _____________    __________    __________

    State 1 Constant(1)       1.5928      0.087805           18.14      1.543e-73
    State 1 AR{1}(1,1)             0             0             NaN            NaN
    State 1 AR{2}(1,1)             0             0             NaN            NaN
    State 1 AR{3}(1,1)             0             0             NaN            NaN
    State 1 AR{4}(1,1)      -0.11789      0.067607         -1.7438       0.081194
    State 2 Constant(1)     -0.73667       0.15808         -4.6601     3.1609e-06
    State 2 AR{1}(1,1)             0             0             NaN            NaN
    State 2 AR{2}(1,1)             0             0             NaN            NaN
    State 2 AR{3}(1,1)             0             0             NaN            NaN
    State 2 AR{4}(1,1)     -0.040337        0.1299        -0.31053        0.75616
figure
ttplot(EstMdl.Switch,Data=gUNRATE(idxEst))
dEst = dates(idxEst);
xticklabels(string(dEst(xticks)))

Figure contains an axes object. The axes object with title Threshold Transitions contains 2 objects of type patch, line.

Рассмотрите следующий генерирующий данные процесс (DGP) для 2D изменяющейся во времени модели TAR (TVTAR), содержащей внешний компонент регрессии.

  • Состояние 1: yt=[1-1]+[0.60.10.40.2]yt-1+xt[0.2-0.4]+ε1,t, где ε1,tΝ2(0,0.5I2) и I2 единичная матрица 2 на 2.

  • Состояние 2: yt=[2-2]+[0.60.10.40.2]yt-1+xt[0.6-1.0]+ε2,t, где ε2,tΝ2(0,I2).

  • Состояние 3: yt=[3-3]+[0.60.10.40.2]yt-1+xt[0.9-1.3]+ε3,t, где ε3,tΝ2(0,1.5I2).

  • Внешняя пороговая переменная zt представляет линейный тренд времени за период расчета. В этом примере, zt период выборки, нормированный на объем выборки.

  • Система находится в состоянии 1 когда zt<0.3, система находится в состоянии 2 когда 0.3zt<0.6, и система находится в состоянии 3 в противном случае.

Создайте модель TVTAR, которая представляет DGP.

tDGP = [0.3 0.6];
ttDGP = threshold(tDGP);

% Constant vectors
C1 = [1;-1];
C2 = [2;-2];
C3 = [3;-3];

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

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

% Innovations covariance matrices
Sigma1 = 0.5*eye(2);
Sigma2 = eye(2);
Sigma3 = 1.5*eye(2);

% VAR Submodels
mdl1 = varm(Constant=C1,AR=AR,Beta=Beta1,Covariance=Sigma1);
mdl2 = varm(Constant=C2,AR=AR,Beta=Beta2,Covariance=Sigma2);
mdl3 = varm(Constant=C3,AR=AR,Beta=Beta3,Covariance=Sigma3);
mdlDGP = [mdl1; mdl2; mdl3];

DGP = tsVAR(ttDGP,mdlDGP);

Для внешних предикторов xt, симулируйте 2D с 1000 периодами от Распределения Гаусса со средним значением 0 и стандартным отклонением 10.

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

Для пороговой переменной создайте вектор с 1000 элементами из равномерно распределенных элементов от 0 до 1.

z = linspace(0,1,numPeriods)';

Симулируйте путь с 1000 периодами от DGP.

Y = simulate(DGP,numPeriods,X=X,Type="exogenous",Z=z);

Создайте шаблон модели TVTAR для оценки. Задайте все допускающие оценку параметры как неизвестные при помощи NaNs.

t = [NaN NaN];
tt = threshold(t);

mdl = varm(2,1);        % Unknown contant and AR coefficient by default.
mdl.Beta = NaN(2,1);    % Configure exogenous regression component for estimation
Mdl = tsVAR(tt,[mdl; mdl; mdl]);

Задайте начальные значения 0,25 и 0.7 для порогов режима.

t0 = [.25 .7];
tt0 = threshold(t0);

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

Идентифицируйте индексы для необходимой предварительной выборки и идентифицируйте индексы для выборки оценки.

p = mdl.P;
idxPre = 1:p;
idxEst = (p + 1):numPeriods;

Подбирайте модель TVTAR к данным. Задайте преддемонстрационные ответы Y0, охарактеризуйте пороговую переменную Type и предоставьте его данным Z, и задайте внешние данные X.

EstMdl = estimate(Mdl,tt0,Y(idxEst,:),Y0=Y(idxPre,:),...
    Type="exogenous",Z=z(idxEst),X=X(idxEst,:));

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

summarize(EstMdl,1)
Description
2-Dimensional VAR Submodel, State 1

Submodel
                           Estimate    StandardError    TStatistic      PValue   
                           ________    _____________    __________    ___________

    State 1 Constant(1)      0.6284        0.1463         4.2952       1.7456e-05
    State 1 Constant(2)    -0.86147        0.1664        -5.1771       2.2538e-07
    State 1 AR{1}(1,1)      0.64569      0.046378         13.922       4.6483e-44
    State 1 AR{1}(2,1)      0.41777      0.052749           7.92       2.3751e-15
    State 1 AR{1}(1,2)      0.11447      0.029747         3.8481       0.00011901
    State 1 AR{1}(2,2)      0.18968      0.033833         5.6064       2.0657e-08
    State 1 Beta(1,1)       0.12661       0.01005         12.598       2.1562e-36
    State 1 Beta(2,1)      -0.28306       0.01143        -24.765      2.1434e-135
summarize(EstMdl,2)
Description
2-Dimensional VAR Submodel, State 2

Submodel
                           Estimate    StandardError    TStatistic      PValue  
                           ________    _____________    __________    __________

    State 2 Constant(1)     2.0016        0.20741         9.6503      4.9028e-22
    State 2 Constant(2)     -1.919         0.2359        -8.1345      4.1377e-16
    State 2 AR{1}(1,1)     0.59692       0.033401         17.871      1.9847e-71
    State 2 AR{1}(2,1)     0.37274        0.03799         9.8117      1.0027e-22
    State 2 AR{1}(1,2)      0.1173       0.023148         5.0674      4.0337e-07
    State 2 AR{1}(2,2)     0.18002       0.026327         6.8376      8.0531e-12
    State 2 Beta(1,1)       0.6689       0.014264         46.896               0
    State 2 Beta(2,1)       -1.122       0.016223         -69.16               0
summarize(EstMdl,3)
Description
2-Dimensional VAR Submodel, State 3

Submodel
                           Estimate    StandardError    TStatistic      PValue   
                           ________    _____________    __________    ___________

    State 3 Constant(1)     3.1135         0.10796        28.841       6.587e-183
    State 3 Constant(2)     -3.135         0.12279       -25.533      8.5622e-144
    State 3 AR{1}(1,1)     0.61547        0.011379        54.089                0
    State 3 AR{1}(2,1)     0.40065        0.012942        30.958      1.9802e-210
    State 3 AR{1}(1,2)     0.10685       0.0089014        12.004       3.4042e-33
    State 3 AR{1}(2,2)     0.19124        0.010124        18.889       1.3979e-79
    State 3 Beta(1,1)      0.92011       0.0080742        113.96                0
    State 3 Beta(2,1)      -1.3378       0.0091834       -145.68                0
EstMdl.Switch
ans = 
  threshold with properties:

          Type: 'discrete'
        Levels: [0.3096 0.5887]
         Rates: []
    StateNames: ["1"    "2"    "3"]
     NumStates: 3

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

свернуть все

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

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

estimate соответствует незаданный (NaN- оцененный) параметры данным Y.

Поскольку estimate вычисляет инновационные ковариации после оценки, вы не можете ограничить их. Если Mdl.Covariance непусто (см. tsVAR), estimate обеспечивает оценку в EstMdl.Covariance. В противном случае, для каждого i в 1:Mdl.NumStates, estimate обеспечивает инновационную оценку ковариации i состояния в EstMdl. Подмодели (iКовариация.

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

tt0 копия Mdl.Switch с NaN значения, замененные начальными значениями для уровней (Mdl.Switch.Levels) и уровни (Mdl.Switch.Rates). Уровни (tt0.Levels) и уровни (tt0.Rates) должен быть в пределах, установленных аргументами name-value 'MaxLevel' и 'MaxRate'.

Совет

Для широкого покрытия пространства параметров запустите алгоритм от нескольких экземпляров tt0. Для получения дополнительной информации см. Алгоритмы.

Наблюдаемые данные об ответе, к который 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.

Пример: Type="exogenous",Z=z,IterationPlot=true задает данные z для внешней пороговой переменной и графиков логарифмическая правдоподобность для каждой итерации.

Тип пороговых данных о переменной в виде значения в этой таблице.

ЗначениеОписание
"endogenous"

Модель является самовозбуждающейся с пороговыми данными о переменной zt=yj,(td),сгенерированный ответом j, где

  • Аргумент 'Delay' значения имени задает задержку d.

  • Аргумент 'Index' значения имени задает j компонента многомерной переменной отклика.

"exogenous"Пороговая переменная является внешней к системе. Аргумент 'Z' значения имени задает пороговые данные о переменной и требуется.

Пример: Type="exogenous",Z=z задает данные z для внешней пороговой переменной.

Пример: Type="endogenous",Index=2,Delay=4 задает эндогенную пороговую переменную как y 2, t −4, чьими данными является Y(:,2).

Типы данных: char | string | cell

Преддемонстрационные данные об ответе в виде numPreSampleObs- numSeries числовая матрица.

Количество преддемонстрационных наблюдений numPreSampleObs должно быть достаточным, чтобы инициализировать термины AR всех подмоделей. Для моделей типа "endogenous", количество преддемонстрационных наблюдений должно также быть достаточным, чтобы инициализировать отсроченную реакцию. Если numPreSampleObs превышает номер, необходимый, чтобы подписать модель, estimate использование только последние наблюдения. Последняя строка содержит последние наблюдения.

По умолчанию, Y0 начальный сегмент Y, который уменьшает эффективный объем выборки.

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

Данные о переменной Threshold для моделей типа "exogenous"В виде числового вектора из длины, по крайней мере, numObs. Если длина превышает numobs, estimate использование только последние наблюдения. Последняя строка содержит последнее наблюдение.

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

Переменная Threshold задерживает d в y j, td, для моделей типа "endogenous"В виде положительного целого числа.

Пример: Delay=4 указывает, что пороговой переменной является y 2, td, где j является значением Index

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

Переменная Threshold индексирует j в y j, td, для моделей типа "endogenous"В виде скаляра в 1:Mdl.NumSeries.

estimate игнорирует Index для одномерных моделей AR.

Пример: Index=2 указывает, что пороговой переменной является y 2, td, где d является значением Delay

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

Данные о предикторе раньше оценивали компоненты регрессии во всех подмоделях MdlВ виде числовой матрицы или вектора ячейки из числовых матриц.

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

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

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

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

Максимальное отклонение предполагаемых пороговых уровней выше или ниже пороговых данных о переменной, z или y j, td в виде положительного числового скаляра, представляющего процент области значений.

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

Пример: MaxLevel=10 расширяет поиск уровней на 10% выше и ниже области значений пороговых данных о переменной.

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

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

Для скаляра все предполагаемые уровни ограничены MaxRate. Для вектора, оценки Mdl. Switch. (j) ограничен MaxRate (j).

estimate оценивает дискретные уровни перехода как логистические переходы в MaxRate.

Значением по умолчанию является 10 для каждого уровня.

Пример: MaxLevel=3 границы все предполагаемые уровни в Mdl.Switch.Rates 3.

Пример: MaxLevel=[5 10] границы Mdl.Switch.Rates(1) 5 и границы Mdl.Switch.Rates(2) 10.

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

Ограничьте на количестве итераций порогового алгоритма поиска в виде положительного целого числа.

Пример: MaxIterations=1000

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

Допуск сходимости в виде положительного числового скаляра. Алгоритм поиска останавливается после итерации в который допуск оптимальности на цели логарифмической правдоподобности logL изменения меньше, чем значение Tolerance.

Пример: Tolerance=1e-4

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

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

ЗначениеОписание
trueКогда алгоритм останавливается, estimate показывает график логарифмической правдоподобности на каждом шаге итерации.
falseestimate не показывает график.

Пример: IterationPlot=true

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

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

свернуть все

Предполагаемая переключающая порог модель динамической регрессии, возвращенная как tsVAR объект. EstMdl копия Mdl это имеет NaN значения заменяются оценками параметра. EstMdl полностью задан.

Предполагаемая логарифмическая правдоподобность данных в Y от условной задачи наименьших квадратов, возвращенной в виде числа и оцененной в оптимальных значениях параметров в пороговых переходах EstMdl.Switch. Для получения дополнительной информации см. Алгоритмы.

Обработайте к графику итерации, возвращенному как графический объект когда IterationPlot true.

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

Советы

  • Несколько факторов могут привести к плохим оценкам параметров модели. Факторы включают:

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

    • Mdl содержит больше допускающих оценку параметров, чем поддержки объема выборки.

    • Неразличимые переходы высокого показателя.

    • Самовозбуждающиеся авторегрессивные модели с многочисленными источниками эндогенной динамики.

    Чтобы улучшить оценки, выполните эти действия:

    • Управляйте поиском параметра путем экспериментирования с 'MaxLevel' и 'MaxRate' аргументы name-value.

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

    • Ограничьте определенные параметры потенциально улучшать производительность.

  • Чтобы оценить задержку d в самовозбуждающейся модели, сравните логарифмическую правдоподобность logL с различными техническими требованиями для 'Delay' аргумент значения имени. На практике обычно d ограничивается областью значений рыночной стоимости.

  • Можно оценить простую изменяющуюся во времени модель STAR (TVSTAR) путем определения внешних пороговых данных z = t, который является линейным трендом времени за период расчета [3].

Алгоритмы

  • estimate поисковые запросы по уровням и уровням для EstMdl.Switch при решении условной задачи наименьших квадратов для параметров подмодели, максимизации вероятности данных, как описано в [4]. logL условное выражение на оптимальных значениях параметров в EstMdl.Switch.

  • Модели с плавными переходами (ЗВЕЗДООБРАЗНЫЕ модели) представляют ответ как взвешенную смесь условных средних значений от всех подмоделей ([4], Eqn. 3.6). estimate определяет веса значением пороговой переменной, z или y j, td, относительно пороговых уровней. estimate модели обработок с дискретными переходами (модели TAR) как логистические модели STAR с набором уровней перехода к 'MaxRate' для того, чтобы снять неоднозначность поисковых уровней, которые падают между пороговыми данными о переменной.

  • estimate указатели два типа ограничений равенства.

    • Ограничения на пороговых уровнях перехода и уровнях осуществляются fmincon во время поисковой процедуры.

    • Ограничения на параметры подмодели осуществляются estimate функция varm объект в каждой поисковой итерации.

    estimate вычисляет инновационные отклонения и ковариации после оценки. Поэтому вы не можете ограничить их.

Ссылки

[1] Канал, Кун-Сык и Хауэлл Тонг. “На Оценке Порогов в Авторегрессивных Моделях”. Журнал Анализа Временных рядов 7 (май 1986): 179–90. https://doi.org/10.1111/j.1467-9892.1986.tb00501.x.

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

[3] Teräsvirta, Tima. "Моделируя экономические отношения с регрессиями плавного перехода". В А. Аллэхэнде и D.E.A. Джайлс (редакторы)., руководство прикладной экономической статистики, 507 — 552. Нью-Йорк: Марсель Деккер, 1998.

[4] ван Дейк, Дик. Модели Плавного перехода: Расширения и Выброс Устойчивый Вывод. Роттердам, Нидерланды: Ряд Исследования Института Тинбергена, 1999.

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

|

Введенный в R2021b