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.

\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

Figure contains an axes object. The axes object 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 периодов данных из оценки, таким образом, можно использовать их, чтобы предсказать действительный 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

Figure contains an axes object. The axes object 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 периодов данных из оценки, таким образом, можно использовать их, чтобы предсказать действительный 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

Figure contains an axes object. The axes object 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 периодов данных из оценки, таким образом, можно использовать их, чтобы предсказать действительный 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

Figure contains an axes object. The axes object 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- PriorMdl.NumPredictors числовая матрица. numPeriods определяет длину горизонта прогноза. Столбцы XF соответствуйте столбцам любого другого набора данных предиктора, то есть, X или данные раньше формировали апостериорное распределение в Mdl.

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

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

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

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

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

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

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

Задайте дополнительные разделенные запятой пары 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 yX X, и Beta значение 'Beta'. Если Mdl.Intercept true, затем Beta(1) соответствует точке пересечения модели. Все другие значения соответствуют переменным предикторам, которые составляют столбцы X.

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

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

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

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

Значение прогнозирования отклонения воздействия от условного прогнозирующего распределения, учитывая отклонение воздействия в виде разделенной запятой пары, состоящей из 'Sigma2' и положительный числовой скаляр. При использовании апостериорного распределения, forecast чертит от π(y^|y,X,σ2=Sigma2), где y yX 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 отбрасывает каждый Thin– 1 чертит, и затем сохраняет следующую ничью. Для получения дополнительной информации, на как 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- 1 числовой вектор. Строки соответствуют строкам XF.

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

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

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

Алгоритмы

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

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

    Sample reduced by

Введенный в R2017a