simulate

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

Описание

пример

Y = simulate(Mdl,numObs) возвращает случайный numObs- путь к периоду серии Y ответа от симуляции полностью заданной переключающей порог модели Mdl динамической регрессии.

пример

Y = simulate(Mdl,numObs,Name,Value) дополнительные опции использования заданы одними или несколькими аргументами name-value. Например, simulate(Mdl,10,NumPaths=1000,Y0=Y0) симулирует 1000 демонстрационные пути длины 10, и инициализирует динамический компонент каждой подмодели при помощи преддемонстрационных данных об ответе Y0.

пример

[Y,E,StatePaths] = simulate(___) также возвращает симулированные инновационные пути E и симулированные пути состояния StatePaths, использование любой из комбинаций входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Предположим, что генерирующий данные процесс (DGP) является самовозбуждающимся порогом с двумя состояниями авторегрессивная модель (SETAR) для 1D переменной отклика. Задайте все значения параметров (этот пример использует произвольные значения).

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

Создайте дискретный пороговый переход на уровне 0. Пометьте режимы, чтобы отразить состояние экономики:

Когда пороговая (в настоящее время неизвестная) переменная находится в (-,0), экономика находится в рецессии.

Когда пороговая переменная находится в [0,), экономика расширяется.

t = 0;
tt = threshold(t,StateNames=["Recession" "Expansion"])
tt = 
  threshold with properties:

          Type: 'discrete'
        Levels: 0
         Rates: []
    StateNames: ["Recession"    "Expansion"]
     NumStates: 2

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

Примите, что следующие одномерные модели описывают процесс ответа системы:

  • Рецессия: yt=-1+0.1yt-1+ε1,t, где ε1,tΝ(0,1).

  • Расширение: yt=1++0.3yt-1+0.2yt-2+ε2,t, где ε2,tΝ(0,22).

Для каждого режима используйте arima создать модель AR, которая описывает процесс ответа в режиме.

c1 = -1;
c2 = 1;
ar1 = 0.1;       
ar2 = [0.3 0.2]; 
v1 = 1;
v2 = 4;

mdl1 = arima(Constant=c1,AR=ar1,Variance=v1,...
    Description="Recession State Model")
mdl1 = 
  arima with properties:

     Description: "Recession State Model"
    Distribution: Name = "Gaussian"
               P: 1
               D: 0
               Q: 0
        Constant: -1
              AR: {0.1} at lag [1]
             SAR: {}
              MA: {}
             SMA: {}
     Seasonality: 0
            Beta: [1×0]
        Variance: 1
 
   ARIMA(1,0,0) Model (Gaussian Distribution)
mdl2 = arima(Constant=c2,AR=ar2,Variance=v2,...
    Description="Expansion State Model")
mdl2 = 
  arima with properties:

     Description: "Expansion State Model"
    Distribution: Name = "Gaussian"
               P: 2
               D: 0
               Q: 0
        Constant: 1
              AR: {0.3 0.2} at lags [1 2]
             SAR: {}
              MA: {}
             SMA: {}
     Seasonality: 0
            Beta: [1×0]
        Variance: 4
 
   ARIMA(2,0,0) Model (Gaussian Distribution)

mdl1 и mdl2 полностью заданный arima объекты.

Сохраните подмодели в векторе с порядком, соответствующим режимам в tt.StateNames.

mdl = [mdl1; mdl2];

Используйте tsVAR создать модель TAR из переключающегося механизма tt и подмодели состояния специфичные mdl.

Mdl = tsVAR(tt,mdl)
Mdl = 
  tsVAR with properties:

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

Mdl.Submodels(2)
ans = 
  varm with properties:

     Description: "AR-Stationary 1-Dimensional VAR(2) Model"
     SeriesNames: "Y1" 
       NumSeries: 1
               P: 2
        Constant: 1
              AR: {0.3 0.2} at lags [1 2]
           Trend: 0
            Beta: [1×0 matrix]
      Covariance: 4

Mdl полностью заданный tsVAR объект, представляющий одномерную модель TAR с двумя состояниями. tsVAR хранилища задали arima подмодели как varm объекты.

Симулируйте данные об ответе из DGP

Сгенерируйте один случайный путь к ответу длины 50 из модели. simulate принимает, что пороговая переменная yt-1, который подразумевает, что модель является самовозбуждающейся.

rng(1); % For reproducibility
y = simulate(Mdl,50);

y 50 на 1 вектор из одного пути к ответу.

Постройте путь к ответу с порогом при помощи ttplot.

figure
ttplot(Mdl.Switch,Data=y)

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

Рассмотрите следующую логистическую модель TAR (LSTAR) для ежегодного, основанного на CPI, канадского ряда уровня инфляции yt.

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

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

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

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

  • Уровень функции перехода между состояниями 1 и 2 3.5, и уровень функции перехода между состояниями 2 и 3 1.5.

Создайте представление модели LSTAR yt.

t = [2 8];
tt = threshold([2 8],Type="logistic",Rates=[3.5 1.5]);
  
mdl1 = arima(Constant=-5,Variance=0.1);
mdl2 = arima(Constant=0,Variance=0.2);
mdl3 = arima(Constant=5,Variance=0.3);
  
Mdl = tsVAR(tt,[mdl1; mdl2; mdl3]);

Загрузите канадскую инфляцию и набор данных процентной ставки.

load Data_Canada

Извлеките основанный на CPI ряд уровня инфляции.

INF_C = DataTable.INF_C; 
numObs = length(INF_C);

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

Y = simulate(Mdl,numObs,NumPaths=10,Type="exogenous",Z=INF_C);

Y является numObs- 10 матриц симулированных путей. Каждый столбец представляет независимо симулированный путь.

В мозаичном размещении постройте пороговые переходы с данными при помощи ttplot, и постройте симулированные пути к одной мозаике.

tiledlayout(2,1)
nexttile
ttplot(tt,Data=INF_C)
colorbar('off')
xticklabels(dates(xticks))
nexttile
plot(dates,Y)
grid on
axis tight
title("Simulations")

Figure contains 2 axes objects. Axes object 1 with title Threshold Transitions contains 3 objects of type patch, line. Axes object 2 with title Simulations contains 10 objects of type line.

Y переключатели между подмоделями согласно значению пороговой переменной INF_C. Смешивание очевидно для наблюдений около порогов, такой как в уровне инфляции 1 964 и 1978.

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

Создайте модель LSTAR для ряда.

t = [2 8];
tt = threshold([2 8],Type="logistic",Rates=[3.5 1.5]);
  
mdl1 = arima(Constant=-5,Variance=0.1);
mdl2 = arima(Constant=0,Variance=0.2);
mdl3 = arima(Constant=5,Variance=0.3);
  
Mdl = tsVAR(tt,[mdl1; mdl2; mdl3]);

Загрузите канадскую инфляцию и набор данных процентной ставки и извлеките ряд уровня инфляции.

load Data_Canada
INF_C = DataTable.INF_C; 
numObs = length(INF_C);

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

[y,e,s] = simulate(Mdl,numObs,NumPaths=10,Type="exogenous",Z=INF_C);

tiledlayout(3,1)
nexttile
plot(y);
ylabel("Simulated Response")
grid on

nexttile
plot(e)
ylabel('Innovation')
grid on

nexttile
stem(s)
ylabel('State')
yticks([1 2 3])
yticklabels(Mdl.StateNames)

Figure contains 3 axes objects. Axes object 1 contains 10 objects of type line. Axes object 2 contains 10 objects of type line. Axes object 3 contains 10 objects of type stem.

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

Полностью задайте модель LSETAR

Рассмотрите следующую 2D модель LSETAR.

  • Состояние 1, "Low": yt=[1-1]+ε1,t, где ε1,tN([00],[1-0.1-0.11]).

  • Состояние 2, "Med": yt=[2-2]+[0.50.10.50.5]yt-1+ε2,t, где ε2,tN([00],[2-0.2-0.22]).

  • Состояние 3, "High": yt=[3-3]+[0.25000]yt-1+[000.250]yt-2+ε3,t, где ε3,tN([00],[3-0.3-0.33]).

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

  • Функция перехода является логистической. Уровень перехода от состояния 1 - 2 3.5, и уровень перехода от состояния 1 - 3 1.5.

Создайте логистические пороговые переходы в середине уровней-1 и 1 с уровнями 3.5 и 1.5 соответственно. Пометьте состояния.

t = [-1 1];
r = [3.5 1.5];
stateNames = ["Low" "Med" "High"];
tt = threshold(t,Type="logistic",Rates=[3.5 1.5],StateNames=stateNames);

Создайте подмодели VAR при помощи varm. Сохраните подмодели в векторе с порядком, соответствующим режимам в tt.StateNames.

% Constants (numSeries x 1 vectors)
C1 = [1; -1];
C2 = [2; -2];
C3 = [3; -3];

% Autoregression coefficients (numSeries x numSeries matrices)
AR1 = {};                            % 0 lags
AR2 = {[0.5 0.1; 0.5 0.5]};          % 1 lag
AR3 = {[0.25 0; 0 0] [0 0; 0.25 0]}; % 2 lags

% Innovations covariances (numSeries x numSeries matrices)
Sigma1 = [1 -0.1; -0.1 1];
Sigma2 = [2 -0.2; -0.2 2];
Sigma3 = [3 -0.3; -0.3 3];

% VAR Submodels
mdl1 = varm('Constant',C1,'AR',AR1,'Covariance',Sigma1);
mdl2 = varm('Constant',C2,'AR',AR2,'Covariance',Sigma2);
mdl3 = varm('Constant',C3,'AR',AR3,'Covariance',Sigma3);

mdl = [mdl1; mdl2; mdl3];

Создайте модель LSETAR из переключающегося механизма tt и подмодели состояния специфичные mdl. Пометьте серию Y1 и Y2.

Mdl = tsVAR(tt,mdl,SeriesNames=["Y1" "Y2"])
Mdl = 
  tsVAR with properties:

         Switch: [1x1 threshold]
      Submodels: [3x1 varm]
      NumStates: 3
      NumSeries: 2
     StateNames: ["Low"    "Med"    "High"]
    SeriesNames: ["Y1"    "Y2"]
     Covariance: []

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

Инициализируйте симуляцию от преддемонстрационных ответов

Считайте симуляцию 5 путей инициализированной от преддемонстрационных ответов. Задайте numPreObs- numSeries- numPaths массив преддемонстрационных ответов, где:

  • numPreObs количество преддемонстрационных ответов на ряд и путь. Необходимо задать достаточно преддемонстрационных наблюдений, чтобы инициализировать все компоненты AR в моделях VAR и эндогенной пороговой переменной. Самый большой порядок компонента AR равняется 2, и пороговая задержка переменной равняется 4, поэтому simulate требует numPreObs=4 преддемонстрационные наблюдения на ряд и путь.

  • numSeries=2, количество ряда ответа в системе.

  • numPaths=5, количество независимых контуров, чтобы симулировать.

delay = 4;
numPaths = 5;
Y0 = zeros(delay,Mdl.NumSeries,numPaths);
for j = 2:numPaths
    Y0(:,:,j) = 10*j*ones(delay,Mdl.NumSeries);
end

Симулируйте 10 путей длины 100 из модели LSETAR от предварительной выборки. Задайте эндогенную пороговую переменную и ее задержку, y2,t-4.

numObs = 100;
rng(1);
Y = simulate(Mdl,numObs,NumPaths=numPaths,Y0=Y0,Index=2,Delay=4);

Y является 100 2 5 массивами, симулируют пути к ответу. Например, Y(50,2,3) симулированный отклик пути 3, из серии Y2, в моменте времени 50.

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

tiledlayout(2,1)
nexttile
plot(squeeze(Y(:,1,:)))
title("Y1")
nexttile
plot(squeeze(Y(:,2,:)))
title("Y2")

Figure contains 2 axes objects. Axes object 1 with title Y1 contains 5 objects of type line. Axes object 2 with title Y2 contains 5 objects of type line.

Система быстро обосновывается независимо от предварительной выборки.

Инициализируйте симуляцию от состояний

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

S0 = 1:Mdl.NumStates;
numPaths = numel(S0);
Y = simulate(Mdl,numObs,NumPaths=numPaths,S0=S0,Index=2,Delay=4);
tiledlayout(2,1)
nexttile
plot(squeeze(Y(:,1,:)))
title("Y1")
nexttile
plot(squeeze(Y(:,2,:)))
title("Y2")

Figure contains 2 axes objects. Axes object 1 with title Y1 contains 3 objects of type line. Axes object 2 with title Y2 contains 3 objects of type line.

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

Полностью задайте модель LSETAR

Создайте логистические пороговые переходы в середине уровней-1 и 1 с уровнями 3.5 и 1.5 соответственно. Пометьте состояния.

t = [-1 1];
r = [3.5 1.5];
stateNames = ["Low" "Med" "High"];
tt = threshold(t,Type="logistic",Rates=[3.5 1.5],StateNames=stateNames)
tt = 
  threshold with properties:

          Type: 'logistic'
        Levels: [-1 1]
         Rates: [3.5000 1.5000]
    StateNames: ["Low"    "Med"    "High"]
     NumStates: 3

Примите, что следующие модели VARX описывают процессы ответа системы:

  • Состояние 1: yt=[1-1]+[1-1]x1,t+ε1,t, где ε1,tN([00],[1-0.1-0.11]).

  • Состояние 2: yt=[2-2]+[22-2-2]x2,t+[0.50.10.50.5]yt-1+ε2,t, где ε2,tN([00],[2-0.2-0.22]).

  • Состояние 3: yt=[3-3]+[333-3-3-3]x3,t+[0.25000]yt-1+[000.250]yt-2+ε3,t, где ε3,tN([00],[3-0.3-0.33]).

x1,t представляет одну внешнюю переменную, x2,t представляет две внешних переменные, и x3,t представляет три внешних переменные. Сохраните подмодели в векторе.

% Constants (numSeries x 1 vectors)
C1 = [1; -1];
C2 = [2; -2];
C3 = [3; -3];

% Regression coefficients (numSeries x numRegressors matrices)
Beta1 = [1; -1];            % 1 regressor
Beta2 = [2 2; -2 -2];       % 2 regressors
Beta3 = [3 3 3; -3 -3 -3];  % 3 regressors

% Autoregression coefficients (numSeries x numSeries matrices)
AR1 = {};                            
AR2 = {[0.5 0.1; 0.5 0.5]};          
AR3 = {[0.25 0; 0 0] [0 0; 0.25 0]}; 

% Innovations covariances (numSeries x numSeries matrices)
Sigma1 = [1 -0.1; -0.1 1];
Sigma2 = [2 -0.2; -0.2 2];
Sigma3 = [3 -0.3; -0.3 3];

%VARX submodels
mdl1 = varm(Constant=C1,AR=AR1,Beta=Beta1,Covariance=Sigma1);
mdl2 = varm(Constant=C2,AR=AR2,Beta=Beta2,Covariance=Sigma2);
mdl3 = varm(Constant=C3,AR=AR3,Beta=Beta3,Covariance=Sigma3);

mdl = [mdl1; mdl2; mdl3];

Создайте модель LSETAR из переключающегося механизма tt и подмодели состояния специфичные mdl. Пометьте серию Y1 и Y2.

Mdl = tsVAR(tt,mdl,SeriesNames=["Y1" "Y2"])
Mdl = 
  tsVAR with properties:

         Switch: [1x1 threshold]
      Submodels: [3x1 varm]
      NumStates: 3
      NumSeries: 2
     StateNames: ["Low"    "Med"    "High"]
    SeriesNames: ["Y1"    "Y2"]
     Covariance: []

Симулируйте данные, игнорирующие компонент регрессии

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

rng(1); % For reproducibility
numObs = 50;
[Y,E,SP] = simulate(Mdl,numObs);

figure
tiledlayout(3,1)
nexttile
plot(Y)
ylabel("Response")
grid on
legend(["y_1" "y_2"])
nexttile
plot(E)
ylabel("Innovation")
grid on
legend(["e_1" "e_2"])
nexttile
stem(SP)
ylabel("State")
yticks([1 2 3])

Figure contains 3 axes objects. Axes object 1 contains 2 objects of type line. These objects represent y_1, y_2. Axes object 2 contains 2 objects of type line. These objects represent e_1, e_2. Axes object 3 contains an object of type stem.

Симулируйте данные включая компонент регрессии

simulate требует внешних данных для того, чтобы сгенерировать случайные пути из модели. Симулируйте внешние данные для этих трех регрессоров путем генерации 50 случайных наблюдений от 3-D стандартного Распределения Гаусса.

X = randn(50,3);

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

rng(1); % Reset seed for comparison
[Y,E,SP] = simulate(Mdl,numObs,X=X);

figure
tiledlayout(3,1)
nexttile
plot(Y)
ylabel("Response")
grid on
legend(["y_1" "y_2"])
nexttile
plot(E)
ylabel("Innovation")
grid on
legend(["e_1" "e_2"])
nexttile
stem(SP)
ylabel("State")
yticks([1 2 3])

Figure contains 3 axes objects. Axes object 1 contains 2 objects of type line. These objects represent y_1, y_2. Axes object 2 contains 2 objects of type line. These objects represent e_1, e_2. Axes object 3 contains an object of type stem.

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

Рассмотрите модель SETAR для действительного темпа роста GDP США yt с AR (4) подмодели. Предположим, что пороговая переменная yt (сам возбуждение с 0 задержками).

Создайте дискретный пороговый переход в неизвестном, среднего уровня t1. Пометьте состояния "Recession" и "Expansion".

tt = threshold(NaN,StateNames=["Recession" "Expansion"]);

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

submdl = arima(ARLags=4);
mdl = [submdl; submdl];

Каждая подмодель имеет неизвестную, допускающую оценку задержку 4 коэффициента, константа модели, и инновационное отклонение.

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

Mdl = tsVAR(tt,mdl);

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

tt0 = threshold(0);

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

load Data_USEconModel
rGDP = DataTable.GDP./DataTable.GDPDEF;
pRGDP = 100*price2ret(rGDP);
T = numel(pRGDP);

Соответствуйте TAR к действительному ряду уровня GDP.

EstMdl = estimate(Mdl,tt0,pRGDP,Z=pRGDP,Type="exogenous");

Симулируйте 100 путей к ответу из предполагаемой модели.

rng(100) % For reproducibility
numPaths= 100;
Y = simulate(EstMdl,T,NumPaths=numPaths,Z=pRGDP,Type="exogenous");

Подбирайте модель TAR к каждому пути к симулированному отклику. Задайте предполагаемый пороговый переход EstMdl.Switch инициализировать процедуру оценки. Для каждого пути сохраните предполагаемый пороговый переход, среднего уровня.

tMC = nan(T,1);
for j = 1:numPaths
    EstMdlSim = estimate(Mdl,EstMdl.Switch,Y(:,j),Z=Y(:,j),Type="exogenous");
    tMC(j) = EstMdlSim.Switch.Levels;
end

tMC 100 1 вектор, представляющий выборку Монте-Карло пороговых переходов.

Получите 95%-й доверительный интервал на истинном пороговом переходе путем вычисления 0,25 и.975 квантилей выборки Монте-Карло.

tCI = quantile(tMC,[0.025 0.975])
tCI = 1×2

    0.5158    0.9810

95%-й доверительный интервал на истинном пороговом переходе (0,52%, 0,98%).

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

свернуть все

Полностью заданная переключающая порог модель динамической регрессии в виде tsVAR объект модели возвращен tsVAR или estimate. Свойства полностью заданного объекта модели не содержат NaN значения.

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

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

Аргументы name-value

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

Пример: NumPaths=1000,Y0=Y0 симулирует 1000 демонстрационные пути и инициализируют динамический компонент каждой подмодели при помощи преддемонстрационных данных об ответе Y0.

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

Пример: NumPaths=1000

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

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

ЗначениеОписание
"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

Преддемонстрационные данные об ответе в виде числовой матрицы или массива.

Использовать те же преддемонстрационные данные для каждого numPaths путь, задайте numPreSampleObs- numSeries матрица, где numPaths значение NumPaths, numPreSampleObs количество преддемонстрационных наблюдений и numSeries количество переменных отклика.

Использовать различные преддемонстрационные данные для каждого пути:

  • Для одномерных подмоделей ARX задайте numPreSampleObs- numPaths матрица.

  • Для многомерных подмоделей VARX задайте numPreSampleObs- numSeries- numPaths массив.

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

simulate обновления Y0 с помощью последних симулированных наблюдений каждый раз это переключает состояния.

По умолчанию, simulate определяет Y0 подмоделью начального состояния:

  • Если начальная подмодель является стационарным процессом AR без компонентов регрессии, simulate преддемонстрационные наблюдения наборов к безусловному среднему значению.

  • В противном случае, simulate обнуляет преддемонстрационные наблюдения.

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

Данные о переменной Threshold для симуляций типа "exogenous"В виде числового вектора из длины numObsZ или numObsZ- numPaths числовая матрица.

Для числового вектора, simulate применяет те же данные ко всем симулированным путям. Для матрицы, simulate применяет столбцы Z к соответствующим симулированным путям.

Если numObsZ превышает numobs, simulate использование только последние наблюдения. Последняя строка содержит последнее наблюдение.

simulate определяет начальное состояние симуляций значениями в первой строке Z(1,:).

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

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

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

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

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

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

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

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

Начальные состояния симуляций, для симуляций типа "endogenous"В виде числового скаляра или вектора из длины numPaths. Записи S0 должен быть в 1:Mdl.NumStates.

Скалярный S0 применяет то же начальное состояние ко всем путям. Векторный S0 применяет начальное состояние S0 (j) соединять каналом j.

Если вы задаете Y0, simulate игнорирует S0 и определяет начальные состояния заданными преддемонстрационными данными.

Пример: 'S0',2 применяет 2 состояния инициализировать все пути.

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

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

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

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

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

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

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

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

свернуть все

Пути к симулированному отклику, возвращенные как числовая матрица или массив. Y представляет продолжение преддемонстрационных ответов в Y0.

Для одномерных подмоделей ARX, Y numObs- numPaths матрица. Для многомерных подмоделей VARX, Y numObs- numSeries- numPaths массив.

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

Для одномерных подмоделей ARX, E numObs- numPaths матрица. Для многомерных подмоделей VARX, E numObs- numSeries- numPaths массив.

simulate генерирует инновации с помощью спецификации ковариации в Mdl. Для получения дополнительной информации смотрите tsVAR.

Симулированные пути состояния, возвращенные как numObs- numPaths числовая матрица.

Если пороговые уровни в Mdl.Switch.Levels t 1, t 2, …, t n, simulate состояния меток пороговой переменной (-∞, t 1), [t 1, t 2), … [t n, ∞) как 1, 2, 3... n + 1, соответственно.

Ссылки

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

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

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

Объекты

Функции

Введенный в R2021b
Для просмотра документации необходимо авторизоваться на сайте