Моделируйте коэффициенты регрессии и отклонение воздействия Байесовой модели линейной регрессии
[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