forecast

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

Описание

пример

yF = forecast(Mdl,XF) возвращает numPeriods прогнозируемые отклики байесовской линейной регрессионой модели Mdl учитывая данные предиктора в XF, матрица с numPeriods строки.

Для оценки прогноза, forecast использует среднее значение numPeriods-мерное апостериорное прогнозирующее распределение.

  • Если Mdl является совместной предыдущей моделью (возвращается bayeslm), затем forecast использует только совместное предшествующее распределение и инновационное распределение, чтобы сформировать прогнозирующее распределение.

  • Если Mdl является апостериорной моделью (возвращается estimate), затем forecast использует апостериорное прогнозирующее распределение.

NaNs в данных указывают отсутствующие значения, которые forecast удаляет с помощью спискового удаления.

пример

yF = forecast(Mdl,XF,X,y) прогнозы с использованием апостериорного прогнозирующего распределения, произведенные или обновленные путем включения данных предиктора X и соответствующие данные отклика y.

  • Если Mdl является предшествующей моделью соединений, тогда forecast производит апостериорное прогнозирующее распределение путем обновления предыдущей модели с помощью информации о параметрах, которые она получает из данных.

  • Если Mdl является апостериорной моделью, тогда forecast обновляет апостериоры с информацией о параметрах, которые они получают из дополнительных данных. Полная вероятность данных состоит из дополнительных данных X и yи данные, которые создали Mdl.

пример

yF = forecast(___,Name,Value) использует любой из комбинаций входных аргументов в предыдущих синтаксисах и дополнительные опции, заданные одним или несколькими аргументы пары "имя-значение". Для примера можно задать значение для β или σ2 для прогноза из conditional прогнозирующего распределения одного параметра, учитывая заданное значение другого параметра.

пример

[yF,YFCov] = forecast(___) также возвращает ковариационную матрицу numPeriods-мерное апостериорное прогнозирующее распределение. Стандартные отклонения прогнозов являются квадратными корнями диагональных элементов.

Примеры

свернуть все

Рассмотрим множественную линейную регрессионую модель, которая предсказывает реальный валовой национальный продукт США (GNPR) с использованием линейной комбинации индекса промышленного производства (IPI), общая занятость (E), и реальная заработная плата (WR).

GNPRt=β0+β1IPIt+β2Et+β3WRt+εt.

Для всех t, εt - серия независимых гауссовских нарушений порядка со средним значением 0 и отклонением σ2.

Предположим, что эти предыдущие распределения:

  • β|σ2N4(M,σ2V). M является вектором средств 4 на 1, и V является масштабированной 4 на 4 положительно определенной ковариационной матрицей.

  • σ2IG(A,B). A и B - форма и шкала, соответственно, обратного гамма- распределения.

Эти предположения и вероятность данных подразумевают нормальную-обратную-гамма-сопряженную модель.

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

p = 3;
VarNames = ["IPI" "E" "WR"];
PriorMdl = bayeslm(p,'ModelType','conjugate','VarNames',VarNames);

Mdl является conjugateblm Байесовский объект линейной регрессионной модели, представляющий предшествующее распределение коэффициентов регрессии и отклонение нарушения порядка.

Загрузите набор данных Нельсона-Плоссера. Создайте переменные для предиктора и данных отклика. Продержитесь последние 10 периодов данных из оценки, чтобы использовать их для прогноза реального ВНП.

load Data_NelsonPlosser
fhs = 10; % Forecast horizon size
X = DataTable{1:(end - fhs),PriorMdl.VarNames(2:end)};
y = DataTable{1:(end - fhs),'GNPR'};
XF = DataTable{(end - fhs + 1):end,PriorMdl.VarNames(2:end)}; % Future predictor data
yFT = DataTable{(end - fhs + 1):end,'GNPR'};                  % True future responses

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

PosteriorMdl = estimate(PriorMdl,X,y,'Display',false);

PosteriorMdl является conjugateblm объект модели, который содержит апостериорные распределения β и σ2.

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

yF = forecast(PosteriorMdl,XF);

figure;
plot(dates,DataTable.GNPR);
hold on
plot(dates((end - fhs + 1):end),yF)
h = gca;
p = patch([dates(end - fhs + 1) dates(end) dates(end) dates(end - fhs + 1)],...
    h.YLim([1,1,2,2]),[0.8 0.8 0.8]);
uistack(p,'bottom');
legend('Forecast Horizon','True GNPR','Forecasted GNPR','Location','NW')
title('Real Gross National Product: 1909 - 1970');
ylabel('rGNP');
xlabel('Year');
hold off

Figure contains an axes. The axes with title Real Gross National Product: 1909 - 1970 contains 3 objects of type patch, line. These objects represent Forecast Horizon, True GNPR, Forecasted GNPR.

yF является вектором 10 на 1 будущих значений действительного GNP, соответствующим будущим данным предиктора.

Оцените среднюю квадратичную невязку корня прогноза (RMSE).

frmse = sqrt(mean((yF - yFT).^2))
frmse = 25.5397

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

Рассмотрим регрессионую модель в Прогнозных Откликах с использованием Апостериорного Прогнозирующего Распределения.

Создайте нормально-обратную-гамма-полуконъюгатную предшествующую модель для параметров линейной регрессии. Задайте количество предикторов p и имена коэффициентов регрессии.

p = 3;
PriorMdl = bayeslm(p,'ModelType','semiconjugate','VarNames',["IPI" "E" "WR"]);

Загрузите набор данных Нельсона-Плоссера. Создайте переменные для ряда отклика и предиктора.

load Data_NelsonPlosser
X = DataTable{:,PriorMdl.VarNames(2:end)};
y = DataTable{:,'GNPR'};

Продержитесь последние 10 периодов данных из оценки, чтобы использовать их для прогноза реального ВНП. Отключите отображение оценки.

fhs = 10; % Forecast horizon size
X = DataTable{1:(end - fhs),PriorMdl.VarNames(2:end)}; 
y = DataTable{1:(end - fhs),'GNPR'};
XF = DataTable{(end - fhs + 1):end,PriorMdl.VarNames(2:end)}; % Future predictor data
yFT = DataTable{(end - fhs + 1):end,'GNPR'};                  % True future responses

Прогнозные отклики с использованием апостериорного прогнозирующего распределения и будущих данных предиктора XF. Задайте наблюдения в выборке X и y (наблюдения, из которых MATLAB ® составляет апостериор).

yF = forecast(PriorMdl,XF,X,y)
yF = 10×1

  491.5404
  518.1725
  539.0625
  566.7594
  597.7005
  633.4666
  644.7270
  672.7937
  693.5321
  678.2268

Рассмотрим регрессионую модель в Прогнозных Откликах с использованием Апостериорного Прогнозирующего Распределения.

Примите эти предыдущие распределения для k = 0,...,3:

  • βk|σ2,γk=γkσVk1Z1+(1-γk)σVk2Z2, где Z1 и Z2 являются независимыми, стандартными нормальными случайными переменными. Поэтому коэффициенты имеют Гауссово распределение смеси. Предположим, что все коэффициенты являются условно независимыми, априори, но они зависят от отклонения нарушения порядка.

  • σ2IG(A,B). A и B - форма и шкала, соответственно, обратного гамма- распределения.

  • γk{0,1}и представляет переменную режима включения случайных переменных с дискретным равномерным распределением.

Выполните выбор переменной стохастического поиска (SSVS):

  1. Создайте байесовскую регрессионую модель для SSVS с сопряженным предшествующим для вероятности данных. Используйте настройки по умолчанию.

  2. Продержитесь последние 10 периодов данных из оценки.

  3. Оцените маргинальные апостериорные распределения.

p = 3;
PriorMdl = bayeslm(p,'ModelType','mixconjugate','VarNames',["IPI" "E" "WR"]);

load Data_NelsonPlosser
fhs = 10; % Forecast horizon size
X = DataTable{1:(end - fhs),PriorMdl.VarNames(2:end)};
y = DataTable{1:(end - fhs),'GNPR'};
XF = DataTable{(end - fhs + 1):end,PriorMdl.VarNames(2:end)}; % Future predictor data
yFT = DataTable{(end - fhs + 1):end,'GNPR'};                  % True future responses

rng(1); % For reproducibility
PosteriorMdl = estimate(PriorMdl,X,y,'Display',false);

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

yF = forecast(PosteriorMdl,XF);

figure;
plot(dates,DataTable.GNPR);
hold on
plot(dates((end - fhs + 1):end),yF)
h = gca;
hp = patch([dates(end - fhs + 1) dates(end) dates(end) dates(end - fhs + 1)],...
    h.YLim([1,1,2,2]),[0.8 0.8 0.8]);
uistack(hp,'bottom');
legend('Forecast Horizon','True GNPR','Forecasted GNPR','Location','NW')
title('Real Gross National Product: 1909 - 1970');
ylabel('rGNP');
xlabel('Year');
hold off

Figure contains an axes. The axes with title Real Gross National Product: 1909 - 1970 contains 3 objects of type patch, line. These objects represent Forecast Horizon, True GNPR, Forecasted GNPR.

yF является вектором 10 на 1 будущих значений действительного GNP, соответствующим будущим данным предиктора.

Оцените среднюю квадратичную невязку корня прогноза (RMSE).

frmse = sqrt(mean((yF - yFT).^2))
frmse = 18.8470

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

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

Рассмотрим регрессионую модель в Прогнозных Откликах с использованием Апостериорного Прогнозирующего Распределения.

Создайте нормально-обратную-гамма-полуконъюгатную предшествующую модель для параметров линейной регрессии. Задайте количество предикторов p и имена коэффициентов регрессии.

p = 3;
PriorMdl = bayeslm(p,'ModelType','semiconjugate','VarNames',["IPI" "E" "WR"]);

Загрузите набор данных Нельсона-Плоссера. Создайте переменные для ряда отклика и предиктора.

load Data_NelsonPlosser
X = DataTable{:,PriorMdl.VarNames(2:end)};
y = DataTable{:,'GNPR'};

Продержитесь последние 10 периодов данных из оценки, чтобы использовать их для прогноза реального ВНП. Отключите отображение оценки.

fhs = 10; % Forecast horizon size
X = DataTable{1:(end - fhs),PriorMdl.VarNames(2:end)}; 
y = DataTable{1:(end - fhs),'GNPR'};
XF = DataTable{(end - fhs + 1):end,PriorMdl.VarNames(2:end)}; % Future predictor data
yFT = DataTable{(end - fhs + 1):end,'GNPR'};                  % True future responses

Прогнозные отклики при помощи условного апостериорного прогнозирующего распределения бета-заданных σ2=2 и использование будущих данных предиктора XF. Задайте наблюдения в выборке X и y (наблюдения, из которых MATLAB ® составляет апостериор). Постройте график истинных значений отклика и прогнозируемых значений.

yF = forecast(PriorMdl,XF,X,y,'Sigma2',2);

figure;
plot(dates,DataTable.GNPR);
hold on
plot(dates((end - fhs + 1):end),yF)
h = gca;
hp = patch([dates(end - fhs + 1) dates(end) dates(end) dates(end - fhs + 1)],...
    h.YLim([1,1,2,2]),[0.8 0.8 0.8])
hp = 
  Patch with properties:

    FaceColor: [0.8000 0.8000 0.8000]
    FaceAlpha: 1
    EdgeColor: [0 0 0]
    LineStyle: '-'
        Faces: [1 2 3 4]
     Vertices: [4x2 double]

  Show all properties

uistack(hp,'bottom');
legend('Forecast Horizon','True GNPR','Forecasted GNPR','Location','NW')
title('Real Gross National Product: 1909 - 1970');
ylabel('rGNP');
xlabel('Year');
hold off

Figure contains an axes. The axes with title Real Gross National Product: 1909 - 1970 contains 3 objects of type patch, line. These objects represent Forecast Horizon, True GNPR, Forecasted GNPR.

Рассмотрим регрессионую модель в Прогнозных Откликах с использованием Апостериорного Прогнозирующего Распределения.

Создайте нормально-обратную-гамма-полуконъюгатную предшествующую модель для параметров линейной регрессии. Задайте количество предикторов p и имена коэффициентов регрессии.

p = 3;
PriorMdl = bayeslm(p,'ModelType','semiconjugate','VarNames',["IPI" "E" "WR"]);

Загрузите набор данных Нельсона-Плоссера. Создайте переменные для ряда отклика и предиктора.

load Data_NelsonPlosser
X = DataTable{:,PriorMdl.VarNames(2:end)};
y = DataTable{:,'GNPR'};

Продержитесь последние 10 периодов данных из оценки, чтобы использовать их для прогноза реального ВНП. Отключите отображение оценки.

fhs = 10; % Forecast horizon size
X = DataTable{1:(end - fhs),PriorMdl.VarNames(2:end)}; 
y = DataTable{1:(end - fhs),'GNPR'};
XF = DataTable{(end - fhs + 1):end,PriorMdl.VarNames(2:end)}; % Future predictor data
yFT = DataTable{(end - fhs + 1):end,'GNPR'};                  % True future responses

Прогнозные отклики и их ковариационная матрица с помощью апостериорного прогнозирующего распределения и будущих данных предиктора XF. Задайте наблюдения в выборке X и y (наблюдения, из которых MATLAB ® составляет апостериор).

[yF,YFCov] = forecast(PriorMdl,XF,X,y);

Поскольку прогнозирующее апостериорное распределение не аналитическое, разумное приближение к набору 95% достоверных интервалов является

yˆi±z0.975SE(yˆi),

для всех i в прогнозном горизонте. Оцените 95% достоверных интервалов для прогнозов по этой формуле.

n = sum(all(~isnan([X y]')));
cil = yF - norminv(0.975)*sqrt(diag(YFCov));
ciu = yF + norminv(0.975)*sqrt(diag(YFCov));

Постройте график данных, прогнозов и интервалов прогноза.

figure;
plot(dates(end-30:end),DataTable.GNPR(end-30:end));
hold on
h = gca;
plot(dates((end - fhs + 1):end),yF)
plot(dates((end - fhs + 1):end),[cil ciu],'k--')
hp = patch([dates(end - fhs + 1) dates(end) dates(end) dates(end - fhs + 1)],...
    h.YLim([1,1,2,2]),[0.8 0.8 0.8]);
uistack(hp,'bottom');
legend('Forecast horizon','True GNPR','Forecasted GNPR',...
    'Credible interval','Location','NW')
title('Real Gross National Product: 1909 - 1970');
ylabel('rGNP');
xlabel('Year');
hold off

Figure contains an axes. The axes with title Real Gross National Product: 1909 - 1970 contains 5 objects of type patch, line. These objects represent Forecast horizon, True GNPR, Forecasted GNPR, Credible interval.

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

свернуть все

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

Объект моделиОписание
conjugateblmЗависимая, нормальная-обратная-гамма-сопряженная модель, возвращенная bayeslm или estimate
semiconjugateblmНезависимая, нормальная-обратная-гамма полуконъюгатная модель, возвращенная bayeslm
diffuseblmДиффузная предыдущая модель, возвращенная bayeslm
empiricalblmПредыдущая модель, характеризующаяся выборками из предыдущих распределений, возвращенная bayeslm или estimate
customblmФункция предыдущего распределения, которую вы объявляете возвращенной bayeslm
mixconjugateblmЗависимая, Гауссовская гамма инверсии смеси спрягает модель для выбора переменной предсказателя SSVS, возвращенного bayeslm
mixsemiconjugateblmНезависимая, Гауссова-смесь-обратная-гамма полуконъюгатная модель для выбора переменной предиктора SSVS, возвращенная bayeslm
lassoblmБайесовская регрессионая модель лассо, возвращенная bayeslm

Как правило, объекты модели, возвращенные estimate представляют маргинальные апостериорные распределения. Когда вы оцениваете апостериор при помощи estimate, если вы задаете оценку условного апостериора, то estimate возвращает предыдущую модель.

Прогнозные данные предиктора горизонта, заданные как numPeriods-by- PriorMdl.NumPredictors числовая матрица. numPeriods определяет длину прогнозируемого горизонта. Столбцы XF соответствуют столбцам любого другого набора данных предиктора, то есть X или данные, используемые для формирования апостериорного распределения в Mdl.

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

Данные предиктора для многофакторной линейной регрессии, заданные как numObservations-by- PriorMdl.NumPredictors числовая матрица. numObservations количество наблюдений и должно быть равно длине y.

Если Mdl является апостериорным распределением, затем столбцы X должен соответствовать столбцам данных предиктора, используемых для оценки апостериорной функции.

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

Данные отклика для многофакторной линейной регрессии, заданные как числовой вектор с numObservations элементы.

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

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

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

Пример: 'Sigma2',2 задает прогнозирование из условного прогнозирующего распределения при заданных нарушениях порядка отклонения из 2.
Опции для всех моделей, кроме эмпирических

свернуть все

Значение коэффициентов регрессии для прогнозирования из условного прогнозирующего распределения с учетом коэффициентов регрессии, заданных как разделенная разделенными запятой парами, состоящая из 'Beta' и (Mdl.Intercept + Mdl.NumPredictors) -by-1 числовой вектор. При использовании апостериорного распределения ,forecast прогнозы от π(y^|y,X,β=Beta), где y является y, X является X, и Beta - значение 'Beta'. Если Mdl.Intercept является true, затем Beta(1) соответствует точка пересечения модели. Все другие значения соответствуют переменным предиктора, которые составляют столбцы X.

Вы не можете задать Beta и Sigma2 одновременно.

По умолчанию, forecast не прогнозирует из условного прогнозирующего распределения, заданного β.

Пример: 'Beta',1:3

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

Значение прогнозирования отклонения нарушения порядка из условного прогнозирующего распределения с учетом отклонения нарушения порядка, заданное как разделенная разделенными запятой парами, состоящая из 'Sigma2' и положительный числовой скаляр. При использовании апостериорного распределения, forecast рисует из π(y^|y,X,σ2=Sigma2), где y является y, X является X, и Sigma2 - значение 'Sigma2'.

Вы не можете задать Sigma2 и Beta одновременно.

По умолчанию, forecast не вытекает из условного прогнозирующего апостериора σ2.

Пример: 'Sigma2',1

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

Опции для всех моделей, кроме сопряженных

свернуть все

Симуляция Монте-Карло скорректированный размер выборки, заданный как разделенная разделенными запятой парами, состоящая из 'NumDraws' и положительное целое число. forecast фактически рисует BurnInNumDraws*Thin выборки. Поэтому, forecast основывает оценки на NumDraws выборки. Для получения дополнительной информации о том, как forecast уменьшает полную выборку Монте-Карло, см. Алгоритмы.

Если Mdl является semiconjugateblm модель и вы задаете Beta или Sigma2, затем MATLAB® игнорирует NumDraws.

Пример: 'NumDraws',1e7

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

Опции для всех моделей, кроме сопряженных и эмпирических

свернуть все

Количество розыгрышей для удаления из начала выборки Монте-Карло для уменьшения переходных эффектов, заданное как разделенная разделенными запятой парами, состоящая из 'BurnIn' и неотрицательный скаляр. Для получения дополнительной информации о том, как forecast уменьшает полную выборку Монте-Карло, см. Алгоритмы.

Совет

Чтобы помочь вам указать соответствующий размер периода горения:

  1. Определите степень переходного поведения в выборке путем определения 'BurnIn',0.

  2. Симулируйте несколько тысяч наблюдений при помощи forecast.

  3. Нарисуйте графики трассировки.

Пример: 'BurnIn',0

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

Множитель размера скорректированного Монте-Карло, заданный как разделенная разделенными запятой парами, состоящая из 'Thin' и положительное целое число.

Фактический размер выборки Монте-Карло BurnIn + NumDraws*Thin. После отбрасывания горения, forecast отбрасывает каждый Thin1 рисует, а затем сохраняет следующий розыгрыш. Для получения дополнительной информации о том, как forecast уменьшает полную выборку Монте-Карло, см. Алгоритмы.

Совет

Чтобы уменьшить потенциальную большую последовательную корреляцию в выборке Монте-Карло или уменьшить потребление памяти рисунков, сохраненных в Mdl, задайте большое значение для Thin.

Пример: 'Thin',5

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

Начальные значения коэффициентов регрессии для выборки Монте-Карло (MCMC) марковской цепи, заданные как разделенная разделенными запятой парами, состоящая из 'BetaStart' и числовой вектор-столбец с (PriorMdl.Intercept + PriorMdl.NumPredictors) элементы. По умолчанию BetaStart - обычная оценка методом наименьших квадратов (OLS).

Совет

Хорошей практикой является запуск forecast несколько раз с использованием различных начальных значений параметра. Проверьте, что решения из каждого запуска сходятся к аналогичным значениям.

Пример: 'BetaStart',[1; 2; 3]

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

Начальные значения отклонения нарушения порядка для выборки MCMC, заданные как разделенная разделенными запятой парами, состоящая из 'Sigma2Start' и положительный числовой скаляр. По умолчанию Sigma2Start - остаточная средняя квадратичная невязка OLS.

Совет

Хорошей практикой является запуск forecast несколько раз с использованием различных начальных значений параметра. Проверьте, что решения из каждого запуска сходятся к аналогичным значениям.

Пример: 'Sigma2Start',4

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

Опции для пользовательских моделей

свернуть все

Репараметризация σ2 как логарифмический (σ2) во время апостериорной оценки и симуляции, заданные как разделенная разделенными запятой парами, состоящая из 'Reparameterize' и значение в этой таблице.

ЗначениеОписание
falseforecast не репараметризовывает σ2.
trueforecast репараметрирует σ2 как логарифмический (σ2). forecast преобразует результаты назад в исходную шкалу и не изменяет функциональную форму PriorMdl.LogPDF.

Совет

Если вы испытываете числовые нестабильности во время апостериорной оценки или симуляции σ2, затем задайте 'Reparameterize',true.

Пример: 'Reparameterize',true

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

Дискретизатор MCMC, заданный как разделенная разделенными запятой парами, состоящая из 'Sampler' и значение в этой таблице.

ЗначениеОписание
'slice'Пробоотборник среза
'metropolis'Случайная прогулка Metropolis sampler
'hmc'Гамильтониан Монте-Карло (HMC) семплер

Совет

  • Чтобы повысить качество рисок MCMC, настройте дискретизатор.

    1. Перед вызовом forecast, задайте параметры настройки и их значения при помощи sampleroptions. Для примера укажите ширину пробоотборника среза width, использовать:

      options = sampleroptions('Sampler',"slice",'Width',width);

    2. Укажите объект, содержащий спецификации параметров настройки, возвращенные sampleroptions при помощи 'Options' аргумент пары "имя-значение". Например, чтобы использовать спецификации параметров настройки в options, задайте:

      'Options',options

  • Если вы задаете sampler HMC, то лучшая практика состоит в том, чтобы предоставить градиент для некоторых переменных, по крайней мере. forecast сортирует численные расчеты любых отсутствующих частных производных (NaN значения) в векторе градиента.

Пример: 'Sampler',"hmc"

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

Опции сэмплера, заданные как разделенная разделенными запятой парами, состоящая из 'Options' и массив структур, возвращенный sampleroptions. Использование 'Options' для определения дискретизатора MCMC и его значений параметров настройки.

Пример: 'Options',sampleroptions('Sampler',"hmc")

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

Типичная ширина дискретизации-интервала вокруг текущего значения в маргинальных распределениях для дискретизатора среза, заданная как разделенная разделенными запятой парами, состоящая из 'Width' и положительный числовой скаляр или a (PriorMdl.Intercept + PriorMdl.NumPredictors + 1) -на-1 числовой вектор положительных значений. Первый элемент соответствует точке пересечения модели, если он существует в модели. Следующая PriorMdl.NumPredictors элементы соответствуют коэффициентам переменных предиктора, упорядоченных столбцами данных предиктора. Последний элемент соответствует отклонению модели.

  • Если Width является скаляром, тогда forecast применяется Width ко всем PriorMdl.NumPredictors + PriorMdl.Intercept + 1 маргинальные распределения.

  • Если Width является числовым вектором, тогда forecast применяет первый элемент к точке пересечения (если он существует), следующему PriorMdl.NumPredictors элементы коэффициентов регрессии, соответствующих переменным предиктора в X, и последний элемент отклонения нарушения порядка.

  • Если размер выборки (size(X,1)) меньше 100, тогда Width является 10 по умолчанию.

  • Если размер выборки не менее 100, то forecast устанавливает Width вектор соответствующих апостериорных стандартных отклонений по умолчанию, принимая диффузную предшествующую модель (diffuseblm).

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

forecast отправляет Width на slicesample функция. Для получения дополнительной информации см. slicesample.

Совет

  • Для максимальной гибкости задайте ширину пробоотборника среза width при помощи 'Options' аргумент пары "имя-значение". Для примера:

    'Options',sampleroptions('Sampler',"slice",'Width',width)

Пример: 'Width',[100*ones(3,1);10]

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

свернуть все

Прогнозные отклики (среднее значение прогнозирующего распределения), возвращенные как numPeriods-by-1 числовой вектор. Строки соответствуют строкам XF.

Ковариационная матрица прогнозирующего распределения, возвращенная как numPeriods-by- numPeriods числовая, симметричная, положительно определенная матрица. Строки и столбцы соответствуют строкам yF.

Чтобы получить вектор стандартных отклонений для прогнозируемых откликов, введите sqrt(diag(YFCov)).

Ограничения

Если Mdl является empiricalblm объект модели, тогда вы не можете задать Beta или Sigma2. Вы не можете предсказать из условных прогнозирующих распределений с помощью эмпирического предшествующего распределения.

Подробнее о

свернуть все

Байесовская линейная регрессионая модель

A Bayesian linear regression model обрабатывает параметры β и σ2 в модели многофакторной линейной регрессии (MLR) yt = xt β + εt как случайные переменные.

Для времен t = 1,..., T:

  • yt - наблюдаемая реакция.

  • xt является 1-бай- (p + 1) вектором-строкой наблюдаемых значений p предикторов. Чтобы разместить точку пересечения модели, x 1 t = 1 для всех t.

  • β является (p + 1) -на-1 вектор-столбец коэффициентов регрессии, соответствующих переменным, которые составляют столбцы xt.

  • εt является случайным нарушением порядка со средним значением нуля и Cov (ε) = σ2I T × T, в то время как ε является вектором T -by-1, содержащим все нарушения порядка. Эти предположения подразумевают, что вероятность данных является

    (β,σ2|y,x)=t=1Tϕ(yt;xtβ,σ2).

    ϕ (yt; xtβ, σ2) - Гауссова плотность вероятностей со средней xtβ и отклонением σ2 оценивается при yt;.

Прежде чем рассматривать данные, вы накладываете joint prior distribution предположение на (β, σ2). В байесовском анализе вы обновляете распределение параметров с помощью информации о параметрах, полученных из вероятности данных. Результатом является joint posterior distribution, σ2) или conditional posterior distributions параметров.

Совет

  • Симуляция Монте-Карло подвержена изменениям. Если forecast использует симуляцию Монте-Карло, тогда оценки и выводы могут варьироваться при вызове forecast несколько раз при, казалось бы, эквивалентных условиях. Чтобы воспроизвести результаты оценки, установите начальное число случайных чисел при помощи rng перед вызовом forecast.

  • Если forecast выдает ошибку при оценке апостериорного распределения с помощью пользовательской предыдущей модели, затем пытается настроить начальные значения параметров при помощи BetaStart или Sigma2Start, или попробуйте настроить объявленную функцию log previous, а затем восстановить модель. Ошибка может указать, что журнал предыдущего распределения –Inf при заданных начальных значениях.

  • Чтобы предсказать ответы из условного апостериорного прогнозирующего распределения аналитически неразрешимых моделей, кроме эмпирических моделей, передайте ваш предыдущий объект модели и данные выборки оценки к forecast. Затем задайте Beta аргумент пары "имя-значение" для прогноза из условного апостериора σ2, или задайте Sigma2 аргумент пары "имя-значение" для прогноза из условного апостериора β.

Алгоритмы

  • Каждый раз, когда forecast необходимо оценить апостериорное распределение (для примера, когда Mdl представляет собой предшествующее распределение, и вы поставляете X и y) и апостериор аналитически прослеживается, forecast оценивает решения закрытой формы для оценок Байеса. В противном случае, forecast прибегает к симуляции Монте-Карло для прогноза с помощью апостериорного прогнозирующего распределения. Для получения дополнительной информации см. Апостериорная оценка и вывод.

  • Этот рисунок иллюстрирует, как forecast уменьшает выборку Монте-Карло, используя значения NumDraws, Thin, и BurnIn. Прямоугольники представляют последовательные вытяжки из распределения. forecast удаляет белые прямоугольники из выборки Монте-Карло. Оставшиеся NumDraws чёрные прямоугольники составляют выборку Монте-Карло.

    Sample reduced by

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