exponenta event banner

прогноз

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

Описание

пример

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) использует любую из комбинаций входных аргументов в предыдущих синтаксисах и дополнительных параметрах, заданных одним или несколькими аргументами пары имя-значение. Например, для прогноза из условного прогностического распределения одного параметра можно задать значение β или start2, учитывая заданное значение другого параметра.

пример

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

Примеры

свернуть все

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

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

Для всех t δ t - это ряд независимых гауссовых возмущений со средним значением 0 и дисперсией start2.

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

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

  • σ2∼IG (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 объект модели, который содержит апостериорные распределения β и start2.

Прогнозные ответы с использованием апостериорного прогностического распределения и будущих данных предиктора 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 является лучшей из сравниваемых моделей.

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

Создайте предыдущую модель normal-inverse-gamma semaconjugate для параметров линейной регрессии. Укажите количество предикторов 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 'start2, γ k = γkσVk1Z1 + (1-γ k) σVk2Z2, где Z1 и Z2 - независимые, стандартные нормальные случайные величины. Поэтому коэффициенты имеют гауссово распределение смеси. Предположим, что все коэффициенты условно независимы, априори, но они зависят от дисперсии возмущений.

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

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

Выполнить выбор переменной стохастического поиска (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.

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

Создайте предыдущую модель normal-inverse-gamma semaconjugate для параметров линейной регрессии. Укажите количество предикторов 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.

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

Создайте предыдущую модель normal-inverse-gamma semaconjugate для параметров линейной регрессии. Укажите количество предикторов 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Независимая модель Gaussian-mixe-inverse-gamma semaconjugate для выбора переменных предсказателя SSVS, возвращаемая bayeslm
lassoblmМодель регрессии байесовского лассо, возвращенная bayeslm

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

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

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

Данные предиктора для модели множественной линейной регрессии, указанной как numObservationsоколо-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) -по-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, start2 = Sigma2 ), гдеy является y, X является X, и Sigma2 - значение 'Sigma2'.

Невозможно указать Sigma2 и Beta одновременно.

По умолчанию forecast не черпает из условного прогностического заднепроверка («progective posterior»)

Пример: '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 - остаточная среднеквадратическая ошибка ОЛС.

Совет

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

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

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

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

свернуть все

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

СтоимостьОписание
falseforecast не производит репараметризацию,
trueforecast репараметризует start2 как log (start2 ).forecast преобразует результаты обратно в исходный масштаб и не изменяет функциональную форму PriorMdl.LogPDF.

Совет

Если вы испытываете числовые неустойчивости при апостериорной оценке или моделировании start2, то укажите 'Reparameterize',true.

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

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

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

СтоимостьОписание
'slice'Пробоотборник срезов
'metropolis'Выборка Random Walk Metropolis
'hmc'Гамильтонианский образец Монте-Карло (HMC)

Совет

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

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

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

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

      'Options',options

  • Если указан образец 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-по-1 числовой вектор. Строки соответствуют строкам XF.

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

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

Ограничения

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

Подробнее

свернуть все

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

Байесовская модель линейной регрессии рассматривает параметры β и start2 в модели множественной линейной регрессии (MLR) yt = xtβ + αt как случайные величины.

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

  • yt - наблюдаемый ответ.

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

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

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

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

    (yt; xtβ, start2) - гауссова плотность вероятности со средним значением xtβ и дисперсией start2, оцениваемой при yt;.

Перед рассмотрением данных необходимо наложить совместное предварительное предположение о распределении на (β, start2). В байесовском анализе выполняется обновление распределения параметров с использованием информации о параметрах, полученных из вероятности получения данных. Результатом является совместное апостериорное распределение (β, start2) или условное апостериорное распределение параметров.

Совет

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

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

  • Для прогнозируемых ответов от условного апостериорного прогностического распределения аналитически труднореализуемых моделей, за исключением эмпирических моделей, передайте свой предыдущий объект модели и данные выборки оценки в forecast. Затем укажите Beta аргумент пары «имя-значение» для прогнозирования из условного заднебокового значения Sigma2 аргумент пары «имя-значение» для прогнозирования из условной задней части β.

Алгоритмы

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

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

    Sample reduced by

Представлен в R2017a