sampleroptions

Создайте опции сэмплера Цепи Маркова Монте-Карло (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'Случайный сэмплер Столицы обхода
'hmc'Сэмплер Гамильтонова Монте-Карло (HMC)

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

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

Опции сэмплера среза

свернуть все

Типичная ширина интервала выборки вокруг текущего значения в предельных распределениях для сэмплера среза, заданного как разделенная запятой пара, состоящая из 'Width' и положительный числовой скаляр или (intercept + numPredictors+ 1 )-by-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]

Случайные опции сэмплера столицы обхода

свернуть все

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

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

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

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

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

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

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

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

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

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

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

Опции сэмплера HMC

свернуть все

Метод для настройки размера шага, заданного как разделенная запятой пара, состоящая из '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

Для просмотра документации необходимо авторизоваться на сайте