Предскажите демонстрационные пути из переключающей порог модели динамической регрессии
возвращает оптимальные прогнозы точки "один шаг впередYF
= forecast(Mdl
,Y
,numPeriods
)" YF
из полностью заданной переключающей порог модели Mdl
динамической регрессии по горизонту прогноза длины
numPeriods
. Предсказанные ответы представляют продолжение данных об ответе Y
.
дополнительные опции использования заданы одними или несколькими аргументами name-value. Например, YF
= forecast(Mdl
,Y
,numPeriods
,Name,Value
)forecast(Mdl,Y,10,Type="exogenous",Z=z)
задает прогнозы внешнего типа и период прогноза, внешние пороговые данные о переменной z
.
В этом примере показано, как вычислить итеративные прогнозы точки условного среднего значения самовозбуждающегося порога авторегрессивная модель (SETAR). Задайте все значения параметров (этот пример использует произвольные значения).
Создайте полностью заданную модель для DGP
Создайте дискретный пороговый переход на уровне 0.
t = 0; tt = threshold(t)
tt = threshold with properties: Type: 'discrete' Levels: 0 Rates: [] StateNames: ["1" "2"] NumStates: 2
tt
полностью заданный threshold
объект, который описывает переключающийся механизм переключающей порог модели.
Примите, что следующие одномерные модели описывают процесс ответа системы:
Состояние 1: .
Состояние 2: .
.
Для каждого режима используйте arima
создать модель AR, которая описывает процесс ответа в режиме.
c1 = -1; c2 = 1; ar = 0.6; mdl1 = arima(Constant=c1,AR=ar)
mdl1 = arima with properties: Description: "ARIMA(1,0,0) Model (Gaussian Distribution)" Distribution: Name = "Gaussian" P: 1 D: 0 Q: 0 Constant: -1 AR: {0.6} at lag [1] SAR: {} MA: {} SMA: {} Seasonality: 0 Beta: [1×0] Variance: NaN
mdl2 = arima(Constant=c2,AR=ar)
mdl2 = arima with properties: Description: "ARIMA(1,0,0) Model (Gaussian Distribution)" Distribution: Name = "Gaussian" P: 1 D: 0 Q: 0 Constant: 1 AR: {0.6} at lag [1] SAR: {} MA: {} SMA: {} Seasonality: 0 Beta: [1×0] Variance: NaN
mdl1
и mdl2
эффективно, полностью заданный arima
объекты. Инновационные отклонения подмоделей не заданы; объект tsVAR задает инновационное отклонение всей модели.
Сохраните подмодели в векторе с порядком, соответствующим режимам в tt.StateNames
.
mdl = [mdl1; mdl2];
Используйте tsVAR
создать модель TAR из переключающегося механизма tt
и подмодели состояния специфичные mdl
. Задайте инновационное отклонение всей модели 0,5.
Mdl = tsVAR(tt,mdl,Covariance=0.5)
Mdl = tsVAR with properties: Switch: [1x1 threshold] Submodels: [2x1 varm] NumStates: 2 NumSeries: 1 StateNames: ["1" "2"] SeriesNames: "1" Covariance: 0.5000
Mdl.Submodels(2)
ans = varm with properties: Description: "AR-Stationary 1-Dimensional VAR(1) Model" SeriesNames: "Y1" NumSeries: 1 P: 1 Constant: 1 AR: {0.6} at lag [1] Trend: 0 Beta: [1×0 matrix] Covariance: NaN
Mdl
полностью заданный tsVAR
объект, представляющий одномерную модель TAR с двумя состояниями. tsVAR
хранилища задали arima
подмодели как varm
объекты.
Симулируйте данные об ответе из DGP
forecast
требует, чтобы достаточно данных перед горизонтом прогноза инициализировало модель. Симулируйте 120 наблюдений от DGP.
rng(1); % For reproducibility
y = simulate(Mdl,120);
y является 120 1 случайным путем ответов. Опции по умолчанию simulate
, и весь tsVAR
возразите функциям, укажите, что пороговая переменная .
Вычислите оптимальные прогнозы точки
Обработайте первые 100 наблюдений за данными о симулированном отклике как предварительная выборка для прогноза и обработайте последние 10 наблюдений как выборку затяжки.
idx0 = 1:100; idx1 = 101:120; y0 = y(idx0); y1 = y(idx1);
Вычислите 1-через 20 шагов вперед оптимальные прогнозы точки из модели.
yf = forecast(Mdl,y0,20);
yf
20 1 вектор из оптимальных прогнозов точки.
Отобразите на графике данные о симулированном отклике и прогнозы.
figure hold on plot(idx0,y0,'b'); h = plot(idx1,y1,'b--'); h1 = plot(idx1,yf,'r'); yfill = [ylim fliplr(ylim)]; xfill = [idx0(end) idx0(end) idx1(end) idx1(end)]; fill(xfill,yfill,'k','FaceAlpha',0.05) legend([h h1],["Actual" "Optimal"],'Location','NorthWest') title('Forecasts') hold off
forecast
должен использовать Методы Монте-Карло, чтобы оценить отклонения ошибки прогноза. Поэтому, когда simulate
возвращает дисперсии ошибки прогноза, это использует Методы Монте-Карло, чтобы вычислить прогнозы точки.
Создайте модель SETAR в, Вычисляют Оптимальные Прогнозы Точки.
t = 0; tt = threshold(t); c1 = -1; c2 = 1; ar = 0.6; mdl1 = arima(Constant=c1,AR=ar); mdl2 = arima(Constant=c2,AR=ar); mdl = [mdl1; mdl2]; Mdl = tsVAR(tt,mdl,Covariance=0.5);
forecast
требует, чтобы достаточно данных перед горизонтом прогноза инициализировало модель. Симулируйте 120 наблюдений от DGP.
rng(100); % For reproducibility
fh = 20;
y = simulate(Mdl,100+fh);
Обработайте первые 100 наблюдений за данными о симулированном отклике как предварительная выборка для прогноза и обработайте последние 20 наблюдений как выборку затяжки.
idx0 = 1:100; idx1 = 101:(100 + fh); y0 = y(idx0); y1 = y(idx1);
Вычислите 1-через 20 шагов вперед оптимальные прогнозы точки из модели.
yf1 = forecast(Mdl,y0,fh);
yf1
20 1 вектор из оптимальных прогнозов точки.
Вычислите 1-через 20 шагов вперед прогнозы точки Монте-Карло путем возвращения предполагаемых дисперсий ошибки прогноза.
[yf2,estVar] = forecast(Mdl,y0,fh);
yf2
20 1 вектор из прогнозов точки Монте-Карло. estVAR
20 1 вектор из соответствующих предполагаемых отклонений ошибки прогноза.
Отобразите на графике данные о симулированном отклике, прогнозы и 95%-е интервалы прогноза с помощью оценок Монте-Карло.
figure hold on plot(idx0,y0,'b'); h = plot(idx1,y1,'b--'); h1 = plot(idx1,yf1,'r'); h2 = plot(idx1,yf2,'m'); ciu = yf2 + 1.96*sqrt(estVar); % Upper 95% confidence level cil = yf2 - 1.96*sqrt(estVar); % Lower 95% confidence level plot(idx1,ciu,'m-.'); plot(idx1,cil,'m-.'); yfill = [ylim,fliplr(ylim)]; xfill = [idx0(end) idx0(end) idx1(end) idx1(end)]; fill(xfill,yfill,'k','FaceAlpha',0.05) legend([h h1 h2],["Actual" "Optimal" "Estimated"],... 'Location',"NorthWest") title("Point and Interval Forecasts") hold off
Когда forecast
выполняет Методы Монте-Карло, чтобы оценить прогнозы точки и ковариации ошибки прогноза, можно настроить количество путей к выборке путем определения NumPaths
опция.
Создайте модель SETAR в, Вычисляют Оптимальные Прогнозы Точки.
t = 0; tt = threshold(t); c1 = -1; c2 = 1; ar = 0.6; mdl1 = arima(Constant=c1,AR=ar); mdl2 = arima(Constant=c2,AR=ar); mdl = [mdl1; mdl2]; Mdl = tsVAR(tt,mdl,Covariance=0.5);
forecast
требует, чтобы достаточно данных перед горизонтом прогноза инициализировало модель. Симулируйте 120 наблюдений от DGP.
rng(100); % For reproducibility
fh = 20;
y = simulate(Mdl,100+fh);
Обработайте первые 100 наблюдений за данными о симулированном отклике как предварительная выборка для прогноза и обработайте последние 20 наблюдений как выборку затяжки.
idx0 = 1:100; idx1 = 101:(100 + fh); y0 = y(idx0); y1 = y(idx1);
Вычислите 1-через 20 шагов вперед оптимальные прогнозы точки из модели.
yf1 = forecast(Mdl,y0,fh);
Вычислите 1-через 20 шагов вперед прогнозы точки Монте-Карло путем возвращения предполагаемых дисперсий ошибки прогноза. Задайте выборку Монте-Карло 1 000 путей.
[yf2,estVar] = forecast(Mdl,y0,fh,NumPaths=1000);
yf2
20 1 вектор из прогнозов точки Монте-Карло. estVAR
20 1 вектор из соответствующих предполагаемых отклонений ошибки прогноза.
Отобразите на графике данные о симулированном отклике, прогнозы и 95%-е интервалы прогноза с помощью оценок Монте-Карло.
figure hold on plot(idx0,y0,'b'); h = plot(idx1,y1,'b--'); h1 = plot(idx1,yf1,'r'); h2 = plot(idx1,yf2,'m'); ciu = yf2 + 1.96*sqrt(estVar); % Upper 95% confidence level cil = yf2 - 1.96*sqrt(estVar); % Lower 95% confidence level plot(idx1,ciu,'m-.'); plot(idx1,cil,'m-.'); yfill = [ylim,fliplr(ylim)]; xfill = [idx0(end) idx0(end) idx1(end) idx1(end)]; fill(xfill,yfill,'k',FaceAlpha=0.05) legend([h h1 h2],["Actual" "Optimal" "Estimated"],Location="NorthWest") title("Point and Interval Forecasts") hold off
Рассмотрите логистическую переключающую порог модель (LSTAR) для действительного темпа роста GDP США, где каждая подмодель является AR (4), и пороговая переменная является темпом роста безработицы.
Создайте частично заданный пороговый переход для темпа роста безработицы. Задайте логистическую функцию перехода, и неизвестное, допускающее оценку, среднего уровня и уровень. Пометьте состояния "Contaction"
и "Expansion"
.
tt = threshold(NaN,Type="logistic",Rates=NaN,... StateNames=["Contraction" "Expansion"]);
tt
частично заданный threshold
объект, и это - агностик переменной и данных, которые это представляет.
Создайте переключающую порог модель для действительного темпа роста GDP США.
p = 4; mdl = [arima(ARLags=p); arima(ARLags=p)]; Mdl = tsVAR(tt,mdl);
Mdl
частично заданный tsVAR
объект, задающий sturcture модели и какие параметры являются допускающими оценку.
Загрузите ежеквартальные США макроэкономический набор данных Data_USEconModel
. Удалите ведущие отсутствующие значения в ряду. Вычислите действительный рост процента GDP и рост безработицы.
load Data_USEconModel DataTable = rmmissing(DataTable,DataVariables=["GDP" "GDPDEF" "UNRATE"]); RGDP = DataTable.GDP./DataTable.GDPDEF; rRGDP = price2ret(RGDP); % Response data gUNRATE = diff(DataTable.UNRATE); % Exogenous thresold data dts = DataTable.Time(2:end); T = numel(dts);
Протяните следующие наборы от оценки:
Первые четыре наблюдения как предварительная выборка для оценки.
Итоговые 25% как горизонт прогноза, чтобы соответствовать прогнозам.
fh = ceil(0.25*T); idxPre = 1:p; idxEst = (idxPre(end)+1):(T-fh); idxF = (T-fh+1):T;
Чтобы инициализировать процедуру оценки, полностью задайте пороговый переход, который имеет ту же структуру как tt
, но набор среднего уровня к 0 и уровень 1 (значение по умолчанию).
tt0 = threshold(0,Type=tt.Type);
Подбирайте модель LSTAR к периоду оценки ряда темпа роста GDP США. Задайте следующие параметры:
Установите Y0
к ответам перед периодом оценки, чтобы инициализировать компоненты подмодели AR.
Установите Type
к "exogenous"
охарактеризовать пороговую переменную.
Установите Z
к пороговым данным о переменной gUNRATE
в период оценки.
EstMdl = estimate(Mdl,tt0,rRGDP(idxEst),Y0=rRGDP(idxPre),... Type="exogenous",Z=gUNRATE(idxEst));
Предскажите действительный ряд темпа роста GDP в горизонт прогноза. Инициализируйте прогнозы путем определения всех ответов в период оценки (прогноз использует только последние, необходимые наблюдения). Охарактеризуйте пороговую переменную и обеспечьте ее данные в горизонте прогноза.
yF = forecast(EstMdl,rRGDP(idxEst),fh,Type="exogenous",Z=gUNRATE(idxF));
Постройте действительный ряд темпа роста GDP с прогнозами.
figure hold on h1 = plot(dts(idxEst),rRGDP(idxEst),'b'); h2 = plot(dts(idxF),rRGDP(idxF),'b--'); h3 = plot(dts(idxF),yF,'r'); yfill = [ylim,fliplr(ylim)]; xfill = dts([idxEst(end) idxEst(end) idxF(end) idxF(end)]); fill(xfill,yfill,'k',FaceAlpha=0.05) legend([h1 h2 h3],["Data (estimation)" "Data (hold out)" "Forecasts"],... Location="NorthWest") title("Real GDP Growth Rate Point Forecasts") hold off
Рассмотрите следующую 2D модель LSETAR.
Состояние 1, "Low"
: где
Состояние 2, "Med"
: где
Состояние 3, "High"
: где
Система находится в состоянии 1 когда , система находится в состоянии 2 когда , и система находится в состоянии 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
объектные функции позволяют вам задать пороговые характеристики переменной и данные.
Симулируйте ответы для предварительной выборки прогноза
Необходимо задать достаточно преддемонстрационных наблюдений, чтобы инициализировать все компоненты AR в моделях VAR и эндогенной пороговой переменной. Самый большой порядок компонента AR равняется 2, и пороговая задержка переменной равняется 4, поэтому simulate
и forecast
потребуйте 4 преддемонстрационных наблюдений на ряд и путь.
Симулируйте один 2D путь 100 наблюдений из модели. Задайте эндогенную пороговую переменную и ее задержку, .
rng(1) % For reproducibility
numObs = 100;
Y0F = simulate(Mdl,numObs,Delay=4,Index=2);
Y0F
100 2 матрица, представляющая один случайный путь, симулированный от Mdl
.
Предскажите ответы
Предскажите модель LSETAR в горизонт с 50 периодами. Задайте эндогенную пороговую переменную и ее задержку.
fh = 50; YF = forecast(Mdl,Y0F,fh,Index=2,Delay=4);
Y 20 2 матрица 20 пошаговых предсказанных ответов от Mdl
.
Постройте симулированный путь и прогнозы для каждой переменной на отдельных графиках.
tiledlayout(2,1) nexttile plot(1:100,Y0F(:,1),"b",101:(100+fh),YF(:,1),"r--") title("Y1") legend(["Presample" "Forecasts"]) nexttile plot(1:100,Y0F(:,2),"b",101:(100+fh),YF(:,2),"r--") legend(["Presample" "Forecasts"]) title("Y2")
Рассмотрите включая компоненты регрессии для внешних переменных в каждой подмодели переключающей порог модели динамической регрессии в Прогнозе Многомерную Модель LSETAR.
Полностью задайте модель 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: где
Состояние 2: где
Состояние 3: где
представляет одну внешнюю переменную, представляет две внешних переменные, и представляет три внешних переменные. Сохраните подмодели в векторе.
% 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"]);
Предскажите ответы, игнорирующие компонент регрессии
Если вы не снабжаете внешними данными, forecast
игнорирует компоненты регрессии в подмоделях.
Получите предварительную выборку, от которой можно предсказать путем симуляции одного 2D пути 100 наблюдений из модели. Задайте эндогенную пороговую переменную и ее задержку, .
rng(1) % For reproducibility
numObs = 100;
Y0F = simulate(Mdl,numObs,Delay=4,Index=2);
Предскажите модель LSETAR в горизонт с 50 периодами. Задайте эндогенную пороговую переменную и ее задержку.
fh = 50; YF = forecast(Mdl,Y0F,fh,Index=2,Delay=4);
Постройте симулированный путь и прогнозы для каждой переменной на отдельных графиках.
figure; plot(1:numObs,Y0F(:,1),"b",(numObs+1):(numObs+fh),YF(:,1),"r--") title("Y1") legend(["Presample" "Forecasts"]) nexttile
plot(1:numObs,Y0F(:,2),"b",(numObs+1):(numObs+fh),YF(:,2),"r--") legend(["Presample" "Forecasts"]) title("Y2")
Симулируйте данные включая компонент регрессии
forecast
требует внешних данных для того, чтобы сгенерировать случайные пути из модели.
Примите следующие модели AR для регрессоров:
, где .
, где .
, где .
MdlX1 = arima(Constant=1,AR={0.1},Variance=1); MdlX2 = arima(Constant=2,AR={0 0.2},Variance=2); MdlX3 = arima(Constant=3,AR={0 0 0.3},Variance=3);
Симулируйте 100 наблюдений из каждой модели, чтобы представлять в выборочных данных для внешних предикторов.
X10F = simulate(MdlX1,numObs); X20F = simulate(MdlX2,numObs); X30F = simulate(MdlX3,numObs); X0F = [X10F X20F X30F];
Предскажите 50 наблюдений из каждой модели, чтобы представлять внешние данные в горизонте прогноза. Задайте симулированный в выборочных данных как предварительную выборку.
X1F = forecast(MdlX1,numObs,Y0=X10F); X2F = forecast(MdlX2,numObs,Y0=X20F); X3F = forecast(MdlX3,numObs,Y0=X30F); XF = [X1F X2F X3F];
Получите преддемонстрационные данные об ответе, из которых можно предсказать путем симуляции одного 2D пути 100 наблюдений из модели. Задайте эндогенную пороговую переменную и ее задержку, и задайте симулированные внешние данные.
Y0FX = simulate(Mdl,numObs,Delay=4,Index=2,X=X0F);
Предскажите модель LSETAR в горизонт с 50 периодами. Укажите, что эндогенная пороговая переменная и ее задержка, ans задает внешние данные в горизонте прогноза.
YFX = forecast(Mdl,Y0FX,fh,Index=2,Delay=4,X=XF); figure; plot(1:numObs,Y0FX(:,1),"b",(numObs+1):(numObs+fh),YFX(:,1),"r--") title("Y1") legend(["Presample" "Forecasts"]) nexttile
plot(1:numObs,Y0FX(:,2),"b",(numObs+1):(numObs+fh),YFX(:,2),"r--") legend(["Presample" "Forecasts"]) title("Y2")
Y
— Данные об ответеДанные об ответе, которые вводят начальные значения для прогнозов в виде numObs
- numSeries
числовая матрица.
numObs
объем выборки. numSeries
количество переменных отклика (Mdl.NumSeries
).
Строки соответствуют наблюдениям, и последняя строка содержит последнее наблюдение. Столбцы соответствуют отдельным переменным отклика.
Y
должен содержать достаточно наблюдений, чтобы инициализировать термины AR всех подмоделей. Для самовозбуждающихся моделей, Y
должен также содержать достаточно наблюдений, чтобы инициализировать отсроченную реакцию y j, t −d.
Прогнозы YF
представляйте продолжение Y
.
Типы данных: double
numPeriods
— Предскажите горизонтПредскажите горизонт или количество моментов времени в период прогноза в виде положительного целого числа.
Типы данных: double
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'X',X
использует матричный X
как внешние данные в горизонте прогноза, чтобы оценить компоненты регрессии в модели.Type
— Тип пороговых данных о переменной"endogenous"
(значение по умолчанию) | "exogenous"
Тип пороговых данных о переменной в виде значения в этой таблице.
Значение | Описание |
---|---|
"endogenous" | Модель является самовозбуждающейся с пороговыми данными о переменной сгенерированный ответом j, где
|
"exogenous" | Пороговая переменная является внешней к системе. Аргумент 'Z' значения имени задает пороговые данные о переменной и требуется. |
Пример: Type="exogenous",Z=z
задает данные z
для внешней пороговой переменной.
Пример: Type="endogenous",Index=2,Delay=4
задает эндогенную пороговую переменную как y 2, t −4, чьими данными является Y(:,2)
.
Типы данных: char |
string
| cell
Z
— Данные о переменной Threshold zt[]
) (значение по умолчанию) | числовой вектор | числовая матрицаДанные о переменной Threshold в горизонте прогноза, для прогнозов типа "exogenous"
В виде числового вектора из длины numPeriods
.
Типы данных: double
Delay
— Переменная Threshold задерживает d в y j, t −d
(значение по умолчанию) | положительное целое числоПеременная Threshold задерживает d в y j, t −d, для прогнозов типа "endogenous"
В виде положительного целого числа.
Пример: Delay=4
указывает, что пороговой переменной является y 2, t −d, где j является значением Index
Типы данных: double
Index
— Переменная Threshold индексирует j в y j, t −d
(значение по умолчанию) | скаляр в 1:Mdl.NumSeries
Переменная Threshold индексирует j в y j, t −d, для прогнозов типа "endogenous"
В виде скаляра в 1:Mdl.NumSeries
.
forecast
игнорирует Index
для одномерных моделей AR.
Пример: Index=2
указывает, что пороговой переменной является y 2, t −d, где d является значением Delay
Типы данных: double
X
— Данные о предиктореДанные о предикторе в горизонте прогноза раньше оценивали компоненты регрессии во всех подмоделях Mdl
В виде числовой матрицы или вектора ячейки из числовых матриц. Первая строка X
содержит наблюдения в период после периода, представленного последним наблюдением в Y
.
Чтобы использовать подмножество тех же предикторов в каждом состоянии, задайте X
как матрица с numPreds
столбцы и по крайней мере numPeriods
'Строки' . Столбцы соответствуют отличным переменным предикторам. Подмодели используют первоначальные столбцы связанной матрицы, в порядке, до количества предикторов подмодели. Количество столбцов в Beta
свойство Mdl. SubModels (
определяет количество внешних переменных в компоненте регрессии подмодели j
)
. Если количество строк превышает j
numPeriods
то forecast
использует самые ранние наблюдения.
Чтобы использовать различные предикторы в каждом состоянии, задайте вектор ячейки из таких матриц с длиной numStates
.
По умолчанию, forecast
игнорирует компоненты регрессии в Mdl
.
Типы данных: double
NumPaths
— Количество демонстрационных путей, чтобы сгенерировать
(значение по умолчанию) | положительное целое числоКоличество демонстрационных путей, чтобы сгенерировать для симуляции в виде положительного целого числа. Если forecast
возвращает только YF
, это игнорирует NumPaths
.
Пример: NumPaths=1000
Типы данных: double
YF
— Укажите прогнозыУкажите прогнозы, возвращенные как numPeriods
- numSeries
числовая матрица.
Если forecast
возвращает только YF
, представляет пошагово-оптимальные прогнозы. В противном случае, forecast
симуляция Монте-Карло использования, чтобы оценить YF
.
EstCov
— Ковариации ошибки прогнозаКовариации ошибки прогноза, возвращенные как числовой вектор-столбец или числовой массив.
Если подмодели Mdl.SubModels
представляйте одномерные модели ARX, EstCov
numPeriods
- 1 вектор. Если Mdl.SubModels
представляйте многомерные модели VARX, EstCov
numSeries
- numSeries
- numPeriods
массив.
forecast
выполняет симуляцию Монте-Карло, чтобы вычислить EstCov
.
Примечание
[1] Браун, Брайан В. и Роберто С. Мариано. "Предикторы в Динамических Нелинейных Моделях: Поведение большой выборки". Эконометрическая Теория, 5 (декабрь 1989): 430–52. https://doi.org/10.1017/S0266466600012603.
[2] Клементс, Майкл П. и Джереми Смит. "Эффективность Альтернативных Методов прогнозирования для Моделей SETAR". Международный журнал Прогнозирования, 13 (декабрь 1997): 463–75. https://doi.org/10.1016/S0169-2070 (97) 00017-4.
[3] Хиндмен, Роб Дж. "Области Прогноза самой высокой плотности для Нелинейных и Ненормальных Моделей Временных рядов". Журнал Прогнозирования, 14 (сентябрь 1995): 431–41. https://doi.org/10.1002/for.3980140503.
[4] Лин, Jin-легкое и Клайв В. Дж. Грейнджер. "Предсказывая из Нелинейных Моделей на практике". Журнал Прогнозирования, 3 (январь 1994): 1–9. https://doi.org/10.1002/for.3980130102.
[5] Teräsvirta, Tima. "Моделируя экономические отношения с регрессиями плавного перехода". В А. Аллэхэнде и D.E.A. Джайлс (редакторы)., руководство прикладной экономической статистики, 507 — 552. Нью-Йорк: Марсель Деккер, 1998.
[6] ван Дейк, Дик. Модели Плавного перехода: Расширения и Выброс Устойчивый Вывод. Роттердам, Нидерланды: Ряд Исследования Института Тинбергена, 1999.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.