sampleroptions

Создайте марковскую цепочку Monte Carlo (MCMC) опций

Описание

пример

options = sampleroptions создает структуру опций сэмплера с опциями по умолчанию для сэмплера MCMC, используемого для извлечения из апостериорного распределения байесовской модели линейной регрессии с пользовательским предшествующим распределением соединений (customblm объект модели).

пример

options = sampleroptions(Name,Value) использует дополнительные опции, заданные одним или несколькими Name,Value аргументы в виде пар. Для примера, 'Sampler','hmc','StepSizeTuningMethod','none' задает выборку из апостериорной функции с помощью гамильтоновского семплера Монте-Карло и без метода настройки шагового размера.

Примеры

свернуть все

Предположим, что вы планируете оценить, моделировать или предсказать байесовскую линейную регрессионую модель, которая имеет пользовательское предшествующее распределение соединений. В этом случае MATLAB ® прибегает к выборке MCMC для апостериорной симуляции и оценки. Можно выбрать сэмплер и настроить его параметры с помощью структуры опций сэмплера.

Создайте структуру опций семплера по умолчанию.

options = sampleroptions
options = struct with fields:
    Sampler: 'Slice'
      Width: []

options задает семплер среза, и его типичная ширина пуста. Пустая ширина указывает на использование ширины по умолчанию для апостериорной выборки.

Задайте типовую ширину 10 для пробоотборника среза.

options.Width = 10
options = struct with fields:
    Sampler: 'Slice'
      Width: 10

Чтобы реализовать выборку среза с шириной выборки 10 для апостериорной оценки, создайте customblm модель, а затем задайте структуру опций дискретизатора options при помощи 'Options' Аргумент пары "имя-значение" из estimate, simulate, или forecast.

Чтобы задать другой сэмплер MCMC, создайте новую структуру опций сэмплера.

Предположим, что вы планируете оценить, смоделировать или спрогнозировать байесовскую линейную регрессионую модель, которая имеет пользовательское предшествующее распределение соединений, и вы хотите реализовать гамильтоновый семплер Монте-Карло (HMC).

Создайте структуру опций дискретизатора, которая задает выборку с помощью HMC-дискретизатора. Задайте уровень подробностей 1.

options = sampleroptions('Sampler','hmc','VerbosityLevel',1)
options = struct with fields:
                        Sampler: 'HMC'
           StepSizeTuningMethod: 'dual-averaging'
         MassVectorTuningMethod: 'iterative-sampling'
    NumStepSizeTuningIterations: 100
          TargetAcceptanceRatio: 0.6500
                  NumStepsLimit: 2000
                 VerbosityLevel: 1
                       NumPrint: 100

options представляет собой массив структур, и список его полей отображается в командной строке. Поля являются параметрами настройки дискретизатора. Все значения являются значениями по умолчанию для HMC-дискретизатора, кроме VerbosityLevel.

Можно также настроить значения полей в командной строке с помощью записи через точку. Для примера измените целевой коэффициент приемки на 0,75.

options.TargetAcceptanceRatio = 0.75
options = struct with fields:
                        Sampler: 'HMC'
           StepSizeTuningMethod: 'dual-averaging'
         MassVectorTuningMethod: 'iterative-sampling'
    NumStepSizeTuningIterations: 100
          TargetAcceptanceRatio: 0.7500
                  NumStepsLimit: 2000
                 VerbosityLevel: 1
                       NumPrint: 100

Для реализации HMC-дискретизатора создайте customblm модель, а затем задайте структуру опций дискретизатора options при помощи 'Options' Аргумент пары "имя-значение" из estimate, simulate, или forecast.

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

свернуть все

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Sampler','hmc','VerbosityLevel',1 задает семплер HMC и отображает детали настройки размера шага во время симуляции.
Выберите Sampler

свернуть все

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

ЗначениеОписание
'slice'Пробоотборник среза
'metropolis'Случайная прогулка Metropolis sampler
'hmc'Гамильтониан Монте-Карло (HMC) семплер

Пример: 'Sampler','hmc'

Типы данных: char | string

Опции пробоотборника среза

свернуть все

Типичная ширина дискретизации-интервала вокруг текущего значения в маргинальных распределениях для дискретизатора среза, заданная как разделенная разделенными запятой парами, состоящая из 'Width' и положительный числовой скаляр или an (intercept + numPredictors + 1) -на-1 числовой вектор положительных значений. numPredictors количество переменных предиктора (столбцы в данных предиктора) и intercept является 1 когда модель содержит точку пересечения, и 0 в противном случае. Первый элемент Width соответствует точке пересечения модели, если он существует в модели. Порядок следующего numPredictors элементы соответствуют порядку переменных предиктора в данных предиктора. Последний элемент соответствует отклонению модели.

  • Если Width является скаляром, затем MATLAB® применяется Width ко всем intercept + numPredictors + 1 маргинальные распределения.

  • Если Width является числовым вектором, затем MATLAB применяет первый элемент к точке пересечения (если он существует), следующему numPredictors элементы коэффициентов регрессии, соответствующих переменным предиктора в X, и последний элемент отклонения нарушения порядка.

  • Если размер выборки (количество строк в данных предиктора) меньше 100, затем Width является 10 по умолчанию.

  • Если размер выборки не менее 100, то по умолчанию MATLAB устанавливает Width к вектору соответствующих апостериорных стандартных отклонений, принимая диффузную предшествующую модель (diffuseblm).

MATLAB отправляет Width на slicesample функция. Для получения дополнительной информации см. slicesample.

Совет

Типичная ширина дискретизатора среза не влияет на сходимость выборки MCMC. Однако это влияет на количество необходимых вычислений функции, то есть на эффективность алгоритма. Если ширина слишком мала, то алгоритм может реализовать чрезмерное количество вычислений функции, чтобы определить соответствующую ширину выборки. Если ширина слишком велика, то алгоритму, возможно, придется уменьшить ширину до соответствующего размера, что требует вычислений функции.

Пример: 'Width',[100*ones(3,1);10]

Опции выборщика Random Walk Metropolis

свернуть все

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

ЗначениеОписание
'mvn'Многомерное нормальное распределение. Чтобы настроить семплер, задайте его ковариационную матрицу с помощью 'ScaleMatrix' аргумент пары "имя-значение".
'mvt'Многомерное распределение t. Чтобы настроить семплер, задайте его ковариационную матрицу или степени свободы (или обе) с помощью 'ScaleMatrix' или 'DegreeOfFreedom' аргумент пары "имя-значение", соответственно.

Пример: 'Distribution','mvt'

Типы данных: string | char

Матрица шкалы распределения предложения, заданная как разделенная разделенными запятой парами, состоящая из 'ScaleMatrix' и (intercept + numPredictors + 1)-by- (intercept + numPredictors + 1) симметричная, положительно определенная, числовая матрица. Значение строк и столбцов см. в разделе 'Width'.

По умолчанию ScaleMatrix - апостериорная ковариационная матрица коэффициентов регрессии (Beta) и отклонение модели (Sigma2) принимая диффузную модель.

Пример: 'ScaleMatrix',eye(intercept + numPredictors + 1)

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

Распределение предложений степеней свободы в виде разделенной запятой пары, состоящей из 'DegreeOfFreedom' и положительная скалярная величина. Если 'Distribution' является 'mvn', затем sampleroptions игнорирует DegreeOfFreedom.

Пример: 'DegreeOfFreedom',3

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

Опции HMC Sampler

свернуть все

Метод настройки размера шага, заданный как разделенная разделенными запятой парами, состоящая из 'StepSizeTuningMethod' и 'dual-averaging' или 'none'. Для получения дополнительной информации смотрите 'StepSizeTuningMethod'.

Пример: 'StepSizeTuningMethod','none'

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

Метод настройки вектора масс, заданный как разделенная запятыми пара, состоящая из 'MassVectorTuningMethod' и 'iterative-sampling', 'hessian', или 'none'. Для получения дополнительной информации смотрите 'MassVectorTuningMethod'.

Пример: 'MassVectorTuningMethod','hessian'

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

Количество итераций для настройки размера шага, заданное как разделенная разделенными запятой парами, состоящая из 'NumStepSizeTuningIterations' и положительное целое число. Для получения дополнительной информации смотрите 'NumStepSizeTuningIterations'.

Пример: 'NumStepSizeTuningIterations',200

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

Целевой коэффициент принятия, заданный как разделенная разделенными запятой парами, состоящая из 'TargetAcceptanceRatio' и скаляр из 0 через 1. Для получения дополнительной информации смотрите 'TargetAcceptanceRatio'.

Пример: 'TargetAcceptanceRatio',0.5

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

Максимальное количество шагов чехарды, заданное как разделенная разделенными запятой парами, состоящая из 'NumStepsLimit' и положительное целое число. Для получения дополнительной информации смотрите 'NumStepsLimit'.

Пример: 'NumStepsLimit',5000

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

Уровень подробностей окна Command Window, заданный как разделенная разделенными запятой парами, состоящая из 'VerbosityLevel' и неотрицательное целое число. Для получения дополнительной информации смотрите 'VerbosityLevel'.

Пример: 'VerbosityLevel',1

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

Подробная выходная частота, заданная как разделенная разделенными запятой парами, состоящая из 'NumPrint' и положительное целое число. Для получения дополнительной информации смотрите 'NumPrint'.

Пример: 'NumPrint',10

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

Выходные аргументы

свернуть все

Опции сэмплера для байесовской линейной регрессионой модели с пользовательским предшествующим распределением, возвращенные как массив структур. После создания структуры опций сэмплера можно настроить значения параметров настройки, кроме сэмплера, используя запись через точку.

Введенный в R2017b