прогноз

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

Синтаксис

yF = forecast(Mdl,XF)
yF = forecast(Mdl,XF,X,y)
yF = forecast(___,Name,Value)
[yF,YFCov] = forecast(___)

Описание

пример

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

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

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

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

NaN s в данных указывает на отсутствующие значения, которые 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.

\forall 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 периодов данных из оценки, таким образом, можно использовать их, чтобы предсказать действительный GNP.

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

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 периодов данных из оценки, таким образом, можно использовать их, чтобы предсказать действительный GNP. Выключите отображение оценки.

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

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 периодов данных из оценки, таким образом, можно использовать их, чтобы предсказать действительный GNP. Выключите отображение оценки.

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

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

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

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),

\forall 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

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

свернуть все

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

Объект моделиОписание
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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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 на самом деле чертит BurnIn – выборки NumDraws* 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

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

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

ЗначениеОписание
'slice'Сэмплер среза
'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' и положительного числового скаляра или (PriorMdl.Intercept + PriorMdl.NumPredictors + 1)-by-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. Вы не можете предсказать от условных прогнозирующих дистрибутивов при помощи эмпирического предшествующего распределения.

Больше о

свернуть все

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

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

В течение многих времен t = 1..., T:

  • yt является наблюдаемым ответом.

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

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

  • εt является случайным воздействием со средним значением нуля и Cov (ε) = σ 2IT×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 многократно при на вид эквивалентных условиях. Чтобы воспроизвести результаты оценки, прежде, чем вызвать forecast, устанавливают seed случайных чисел при помощи rng.

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

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

Алгоритмы

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

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

    Прямоугольники представляют последовательные ничьи от распределения. forecast удаляет белые прямоугольники из выборки Монте-Карло. Остающийся NumDraws черные прямоугольники составляет выборку Монте-Карло.

Введенный в R2017a