Симулируйте коэффициенты регрессии и отклонение воздействия Байесовой модели линейной регрессии
[
возвращает случайный вектор из коэффициентов регрессии (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
mixconjugateblm
или mixsemiconjugateblm
объект модели.
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 и чертит значение β от π (β |σ2x, 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)
- 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
| empiricalblm
| semiconjugateblm
| diffuseblm
| mixconjugateblm
| mixsemiconjugateblm
| lassoblm