Моделируйте коэффициенты регрессии и отклонение воздействия Байесовой модели линейной регрессии
[BetaSim,sigma2Sim]
= simulate(Mdl)
[BetaSim,sigma2Sim]
= simulate(Mdl,X,y)
[BetaSim,sigma2Sim]
= simulate(___,Name,Value)
[BetaSim,sigma2Sim,RegimeSim]
= simulate(___)
[
возвращает случайный вектор коэффициентов регрессии (BetaSim
,sigma2Sim
]
= simulate(Mdl
)BetaSim
) и случайное отклонение воздействия (sigma2Sim
), чертивший из Байесовой модели
Mdl
линейной регрессии β и σ 2.
[
чертит от крайних апостериорных распределений, произведенных или обновленных путем слияния данных о предикторе BetaSim
,sigma2Sim
]
= simulate(Mdl
,X
,y
)X
и соответствующие данные об ответе y
.
Если Mdl
является объединенной предшествующей моделью, то simulate
производит крайние апостериорные распределения путем обновления предшествующей модели с информацией о параметрах, которые это получает из данных.
Если Mdl
является крайней следующей моделью, то simulate
обновляет последующее поколение с информацией о параметрах, которые это получает из дополнительных данных. Вероятность полных данных состоит из дополнительных данных X
и y
и данные, которые создали Mdl
.
NaN
s в данных указывает на отсутствующие значения, которые simulate
удаляет при помощи мудрого списком удаления.
[
использование любая из комбинаций входных аргументов в предыдущих синтаксисах и дополнительных опциях задано одним или несколькими аргументами пары "имя-значение". Например, можно задать значение для β или σ 2, чтобы моделировать от апостериорного распределения conditional одного параметра, учитывая заданное значение другого параметра.BetaSim
,sigma2Sim
]
= simulate(___,Name,Value
)
[
также возвращается, чертит от скрытого распределения режима, если BetaSim
,sigma2Sim
,RegimeSim
]
= simulate(___)Mdl
является Байесовой моделью линейной регрессии для стохастического поискового выбора переменной (SSVS), то есть, если Mdl
является объектом модели mixsemiconjugateblm
или mixconjugateblm
.
simulate
не может чертить значения от improper distribution, то есть, распределение, плотность которого не объединяется к 1.
Если Mdl
является объектом модели empiricalblm
, то вы не можете задать Beta
или Sigma2
. Вы не можете моделировать от условных апостериорных распределений при помощи эмпирического распределения.
Каждый раз, когда simulate
должен оценить апостериорное распределение (например, когда Mdl
представляет предшествующее распределение, и вы предоставляете X
и y
), и следующее аналитически послушно, simulate
моделирует непосредственно от следующего. В противном случае simulate
обращается к симуляции Монте-Карло, чтобы оценить следующее. Для получения дополнительной информации смотрите Следующую Оценку и Вывод.
Если Mdl
является объединенной следующей моделью, то simulate
моделирует данные из него по-другому по сравнению с тем, когда Mdl
является объединенной предшествующей моделью, и вы предоставляете X
и y
. Поэтому, если вы устанавливаете тот же случайный seed и генерируете случайные значения оба пути, затем вы не можете получить те же значения. Однако соответствующие эмпирические распределения на основе достаточного числа ничьих эффективно эквивалентны.
Эти данные показывают, как simulate
уменьшает выборку при помощи значений NumDraws
, Thin
и BurnIn
.
Прямоугольники представляют последовательные ничьи от распределения. simulate
удаляет белые прямоугольники из выборки. Остающийся NumDraws
черные прямоугольники составляет выборку.
Если Mdl
является объектом модели semiconjugateblm
, то выборки simulate
от апостериорного распределения путем применения сэмплера Гиббса.
simulate
использует значение по умолчанию Sigma2Start
для σ 2 и чертит значение β от π (β |σ2, X, y).
simulate
чертит значение σ 2 от π (σ 2|β, X, y) при помощи ранее сгенерированного значения β.
Функция повторяет шаги 1 и 2 до сходимости. Чтобы оценить сходимость, постройте график трассировки выборки.
Если вы задаете BetaStart
, то simulate
чертит значение σ 2 от π (σ 2|β, X, y), чтобы запустить сэмплер Гиббса. simulate
не возвращает это сгенерированное значение σ 2.
Если Mdl
является объектом модели empiricalblm
, и вы не предоставляете X
и y
, то simulate
чертит от Mdl.BetaDraws
и Mdl.Sigma2Draws
. Если NumDraws
меньше чем или равен numel(Mdl.Sigma2Draws)
, то simulate
возвращает первые элементы NumDraws
Mdl.BetaDraws
и Mdl.Sigma2Draws
как случайные ничьи для соответствующего параметра. В противном случае simulate
случайным образом передискретизирует элементы NumDraws
от Mdl.BetaDraws
и Mdl.Sigma2Draws
.
Если Mdl
является объектом модели customblm
, то simulate
использует сэмплер MCMC, чтобы чертить от апостериорного распределения. В каждой итерации программное обеспечение конкатенирует текущие значения коэффициентов регрессии и отклонения воздействия в (Mdl.Intercept
+ Mdl.NumPredictors
+ 1)-by-1 вектор, и передает его Mdl.LogPDF
. Значение отклонения воздействия является последним элементом этого вектора.
Сэмплер HMC требует и логарифмической плотности и ее градиента. Градиентом должен быть (NumPredictors+Intercept+1)
-by-1 вектор. Если производные определенных параметров трудно вычислить, то, в соответствующих местоположениях градиента, значения NaN
предоставления вместо этого. simulate
заменяет значения NaN
на числовые производные.
Если Mdl
является lassoblm
, mixconjugateblm
или объект модели mixsemiconjugateblm
, и вы предоставляете X
и y
, то выборки simulate
от апостериорного распределения путем применения сэмплера Гиббса. Если вы не снабжаете данными, то выборки simulate
от аналитических, безусловных предшествующих дистрибутивов.
simulate
не возвращает начальные значения по умолчанию, которые он генерирует.
Если Mdl
является mixconjugateblm
или mixsemiconjugateblm
, то simulate
чертит от распределения режима сначала, учитывая текущее состояние цепочки (значения RegimeStart
, BetaStart
и Sigma2Start
). Если вы чертите одну выборку и не задаете значения для RegimeStart
, BetaStart
и Sigma2Start
, то simulate
использует значения по умолчанию и выдает предупреждение.
conjugateblm
| customblm
| diffuseblm
| empiricalblm
| lassoblm
| mixconjugateblm
| mixsemiconjugateblm
| semiconjugateblm