exponenta event banner

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 и отображает сведения о настройке размера шага во время моделирования.
Выбрать образец

свернуть все

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

СтоимостьОписание
'slice'Пробоотборник срезов
'metropolis'Выборка Random Walk Metropolis
'hmc'Гамильтонианский образец Монте-Карло (HMC)

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

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

Параметры Slice Sampler

свернуть все

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

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

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

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

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

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

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

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

свернуть все

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

Представлен в R2017b