sampleroptions

Создайте опции сэмплера Цепи Маркова Монте-Карло (MCMC)

Синтаксис

options = sampleroptions
options = sampleroptions(Name,Value)

Описание

пример

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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)-by-(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