Реализация байесовской линейной регрессии

Econometrics Toolbox™ включает автономную среду, которая позволяет реализовать линейную регрессию Байеса. Среда содержит две группы предыдущих моделей для коэффициентов регрессии β и отклонения нарушения порядка σ2:

  • Стандартные байесовские модели предшествующей линейной регрессии - пять предшествующих объектов модели в этой группе варьируются от простой сопряженной модели normal-reverse-gamma previous до гибких предшествующих моделей, заданных извлечениями из предыдущих распределений или пользовательской функции. Хотя стандартные предыдущие модели могут служить нескольким целям, они лучше всего подходят для апостериорной оценки, симуляции (от сустава или, для большинства моделей, условного апостериора) и прогнозирования из апостериорного прогнозирующего распределения.

  • Байесовские предшествующие модели для выбора переменной предиктора - Модели в этой группе могут выполнять регрессию Байесовского лассо или выбор переменной стохастического поиска (SSVS). Они лучше всего подходят для апостериорной оценки, во время которой происходит алгоритм выбора предиктора. Получившаяся апостериорная модель представлена рисунками из сэмплера Гиббса (эмпирического объекта модели), и сводные данные оценок содержат результаты из алгоритма выбора предиктора. Процедура оценки не удаляет незначительные или избыточные переменные для вас, но коэффициенты хорошо настроенной модели близки к нулю. Поэтому, как и в стандартных моделях, можно моделировать рисования из апостериорного распределения или прогноза из апостериорного прогнозирующего распределения, не удаляя никаких переменных.

Общий рабочий процесс оценки функций апостериорных распределений, а затем прогнозирования откликов по новым данным предиктора:

  1. Использовать bayeslm создать предыдущий объект модели, который представляет ваши предположения о распределении или предыдущем объекте модели, который подходит для выбора предиктора.

  2. Передайте объект предыдущей модели и предиктор и данные отклика в estimate функция. По умолчанию estimate возвращает объект модели, который представляет апостериорное распределение.

  3. Передайте объект модели, представляющий апостериорное распределение forecast.

Для получения дополнительной информации о стандартном рабочем процессе линейной регрессии Байеса, смотрите Рабочий процесс для стандартных байесовских линейных регрессионных моделей, и для выбора байесовского предиктора, смотрите Рабочий процесс для выбора байесовского предиктора.

Рабочий процесс для стандартных байесовских линейных регрессионых моделей

Следующая процедура описывает рабочий процесс оценки функций апостериорных распределений, а затем прогнозирует ответы по данным предиктора.

  1. Выберите предварительное распределение соединений для (β, σ2). Затем, используя bayeslm, создайте объект модели линейной регрессии Байеса, который полностью задает ваши убеждения относительно предшествующего распределения соединений. Эта таблица содержит доступные объекты предыдущей модели.

    Объект моделиПредварительное распределение соединений (β, σ2)Когда создавать
    conjugateblm
    • π (β | σ2) Гауссов со средним Mu и ковариационные σ2V.

    • π (σ2) - обратная гамма с формой A и масштабные B.

    Создайте этот объект модели, когда все из следующих значений будут true:

    • Вы достаточно уверены, что параметры имеют соответствующее соединение до, и что β зависит от σ2.

    • Вы хотите включить свои предыдущие знания о предшествующем среднем и ковариации β, а также о форме и шкале σ2.

    • Вам нужны аналитические формы для маргинальных и условных апостериоров, которые являются нормально-обратными гамма-сопряженными распределениями для обоих типов.

    semiconjugateblm
    • π (β) Гауссов со средним Mu и ковариационные V.

    • π (σ2) - обратная гамма с формой A и масштабные B.

    • β и σ2 являются независимыми.

    Создайте этот объект модели, когда все из следующих значений будут true:

    • Вы достаточно уверены, что параметры имеют соответствующее соединение до, и что β и σ2 являются независимыми.

    • Вы хотите включить свои предыдущие знания о предшествующем среднем и ковариации β, а также о форме и шкале σ2.

    • Вам нужны аналитические формы для условных апостериоров, которые являются нормально-обратными-гамма-сопряженными условными распределениями.

    diffuseblmπ(β,σ2)1σ2.

    Создайте этот объект модели, когда все из следующих значений будут true:

    • Вы хотите, чтобы на апостериор больше влияла информация в данных, чем предыдущая.

    • Предшествующее распределение соединений обратно пропорционально σ2 (Jeffreys noninformative prior [2]).

    • Вам нужны аналитические формы для маргинальных и условных апостериоров, которые являются нормально-обратными гамма-сопряженными распределениями для обоих типов.

    customblmУказатель на функцию пользовательской функции, которая вычисляет журнал предыдущего распределения соединений.Создайте этот объект модели, когда вы хотите задать журнал предыдущего распределения соединений. Данная спецификация обеспечивает максимальную гибкость.

  2. Учитывая данные, оцените функции апостериорных распределений. Функции, которые будут использоваться в этом шаге, зависят от целей анализа.

    ФункцияЦели
    estimate
    • Получите апостериорный объект модели для прогнозирования. Апостериорные объекты модели включают:

      • Оценки среднего и ковариационной матрицы маргинального апостериорного π (β | y, x) и среднего и дисперсии π (σ2| y, x).

      • Маргинальные апостериоры и их значения параметров. Аналитические решения доступны для conjugateblm и diffuseblm предыдущие модели. Для всех других предыдущих моделей estimate необходимо использовать выборку Монте-Карло.

      • 95% равноправных, достоверных интервалов. Для неаналитических апостериоров 95% равными достоверными интервалами являются 0,025-квантиль и 0,975-квантиль сохранённой выборки Монте-Карло.

    • Оцените среднее значение и ковариацию условного π распределения (β | σ2, y, x), то есть реализуйте линейную регрессию с σ2 удерживаемый фиксированный.

    • Обновите существующее апостериорное распределение на основе новых данных.

    simulate
    • Аппроксимируйте ожидаемое значение функции параметров относительно апостериорной π соединения (β, σ2| y, x). То есть нарисуйте несколько выборок (β, σ2) из их апостериорной части сустава, применить функцию к каждому рисунку, а затем вычислить среднее значение преобразованных рисунков.

    • Рисуйте из условных апостериорных распределений π (β | σ2y, x) и π2| β, y, x). Этот выбор удобен для запуска марковской цепи Monte Carlo (MCMC), такой как Gibbs sampler.

    Если у вас есть пользовательская предыдущая модель (customblm объект), затем выберите марковскую цепь Monte Carlo (MCMC) sampler при вызове estimate или simulate. Эта таблица содержит список поддерживаемых выборок MCMC. Выбрав семплер, сначала попробуйте значения параметров настройки по умолчанию.

    Пробоотборник MCMCНастройка использованияОписание
    Гамильтониан Монте-Карло (HMC)'Sampler',"hmc"

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

    Чтобы увеличить скорость дискретизации, укажите градиент PDF журнала для всех или некоторых параметров.

    Случайная прогулка Metropolis'Sampler',"metropolis"

    Если размер выборки достаточно велик, и предыдущий не доминирует над вероятностью, попробуйте этот выборщик.

    Поддерживаемые распределения предложений являются многомерными нормальными и многомерными распределениями t.

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

    Срез'Sampler',"slice" (по умолчанию)Чтобы достичь адекватного смешения и сходимости, тщательно настройте типовую ширину интервала дискретизации. Значения зависят от приложения.

    После оценки неаналитического апостериора с помощью MCMC sampler, исследуйте апостериорные или условные апостериорные вытяжки для адекватного смешивания. Для получения дополнительной информации см. «Апостериорная оценка и диагностика симуляции».

    Если качество выборок не удовлетворительно, создайте структуру опций дискретизатора при помощи sampleroptions, что позволяет вам задать значения параметров настройки, соответствующие дискретизатору. Для примера, чтобы задать выборку Metropolis случайной прогулки, которая использует многомерное распределение t предложений с 5 степенями свободы, введите:

    options = sampleroptions('Sampler',"metropolis",'Distribution',"mvt",...
         'DegreeOfFreedom',5)
    После того, как вы создаете структуру опций дискретизатора, задайте ее при вызове estimate или simulate при помощи 'Options' аргумент пары "имя-значение".

  3. Прогнозные отклики с учетом новых данных предиктора с использованием forecast. The forecast функция создает прогнозы из апостериорного прогнозирующего распределения. Аналитические апостериорные прогнозирующие распределения доступны для conjugateblm и diffuseblm предыдущие модели. Для всех других предыдущих моделей forecast прибегает к выборке Монте-Карло. Как и в случае с оценкой и симуляцией, можно выбрать дискретизатор MCMC для customblm модели. Если forecast использует MCMC sampler, вы должны проверить апостериорные или условные апостериорные рисунки для адекватного смешивания.

Рабочий процесс для выбора байесова предиктора

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

  1. Econometrics Toolbox поддерживает два алгоритма выбора байесовских предикторов: байесовскую регрессию лассо и SSVS. Выберите алгоритм выбора предиктора, который подразумевает предшествующее распределение соединений для (β, σ2). Затем, используя bayeslm, создайте Байесову линейную регрессию, предшествующую объекту модели, которая выполняет выбранный алгоритм выбора предиктора и опционально задает значение параметров настройки. Эта таблица содержит доступные объекты предыдущей модели для выбора предиктора. Для получения дополнительной информации о формах предыдущих распределений, см. Апостериорная оценка и вывод.

    Объект моделиАлгоритм выбора предиктораПараметр настройкиКогда создавать
    mixconjugateblmSSVS [1]
    • Гауссовы отклонения смеси, заданные 'V' аргумент пары "имя-значение". Задайте двухколоночную положительную матрицу.

    • Первый столбец содержит отклонения для компонента включения переменной.

      • Задайте относительно большие значения.

      • Значения приписывают более высокую вероятность коэффициентам дальше от 0.

    • Второй столбец содержит отклонения для компонента исключения переменной.

      • Задайте относительно маленькие значения.

      • Значения приписывают более высокую вероятность коэффициентам, близким к 0.

    • Предшествующее отклонение β является функцией σ2.

    • Вам нужны апостериорные оценки вероятности того, что переменная включена в модель.

    mixsemiconjugateblmSSVSТо же, что и mixconjugateblm

    • β и σ2 являются независимыми, априори.

    • Вам нужны апостериорные оценки вероятности того, что переменная включена в модель.

    lassoblmБайесовская регрессия лассо [3]

    • λ, заданная 'Lambda' аргумент пары "имя-значение". Можно задать положительную скалярную величину или вектор.

    • Большие значения указывают на большую регуляризацию, что подразумевает, что предшествующее β плотно около нуля.

    • Если предиктор переменных отличаться по шкале порядками величины, то подайте вектор усадок, где элементы соответствуют коэффициентам.

    Вы хотите заставить незначительные и избыточные переменные предиктора иметь коэффициенты с апостериорным режимом нуля и довольно плотными 95% апостериорными достоверными интервалами вокруг этого режима.

  2. Поскольку алгоритмы выбора предиктора могут быть чувствительны к различным шкалам переменных предиктора (в частности, регрессия Байесова лассо), определите шкалу предикторов, передав данные в boxplot, или путем оценки их средств и стандартных отклонений при помощи mean и std, соответственно.

  3. Для предыдущих моделей SSVS постройте графики предыдущих распределений коэффициентов с помощью plot. Графики дают вам представление о том, как балансируют плотности двух Гауссовых компонентов. Вы можете настроить отклонения коэффициента с помощью записи через точку. Для примера приписать предыдущие отклонения 1000 и 0,1 компонентам переменного включения и переменного исключения, соответственно, для коэффициентного j, введите:

    PriorMdl.V(j,:) = [1000 0.1];
    Для получения дополнительной информации об указании V, см. [1].

    Для lasso previor моделей определите regularization path, то есть ряд значений для λ, которые итератируются во время апостериорной оценки. Значения зависят от данных.

    • Если переменные-предикторы имеют сходные шкалы, задайте левый контур, которая принудительно вводит большинство переменных в модель (то есть атрибут почти не имеет штрафа), задайте правый контур, которая заставляет почти все коэффициенты к 0, и задайте достаточное количество значений между контурами, чтобы адекватно искать пространство. По умолчанию программа атрибутирует усадку 0.01 на точку пересечения и 1 ко всем коэффициентам.

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

      Например, предположим, что регрессионая модель имеет три предиктора. Первые два предиктора имеют сходные шкалы, но третий предиктор имеет шкалу, которая на 3 порядка больше. Предположим, что 100-элементный путь регуляризации находится в векторе 1 на 100 Lambda. Чтобы создать матрицу значений усадки, введите следующий код:

      p = 3               % Number of predictors
      numcoeffs = p + 1;  % Number of coefficients, intercept and predictors
      LambdaMat = repmat(Lambda,4,1);
      LambdaMat(4,:) = 1e3*LambdaMat(4,:);
      

      Для получения дополнительной информации об указании λ см. [3].

  4. В for цикл, передайте предиктор и данные отклика в estimate для оценки функций апостериорных распределений для каждого значения параметра настройки. Для каждой итерации сохраните объект апостериорной модели и сводную таблицу оценок в массиве ячеек. estimate использует семплер Гиббса для последовательной выборки из полных обусловленности (см. «Аналитически отслеживаемые апостериоры»). Вы можете изменить аспекты семплера Гиббса, такие как коэффициент утончения, используя доступные опции.

    Апостериорные модели (empiricalblm объекты модели) хранить рисунки из полных обусловленности, среди прочего.

    Сводные таблицы оценок MATLAB® таблицы, которые включают:

    • Оценки среднего (Mean) и ковариационная матрица (Covariances) краевого апостериорного π (β | y, x), и среднего значения и дисперсии π (σ2| y, x).

    • 95% равноправных, надежных интервалов (CI95), которые являются 0,025-квантилем и 0,975-квантилем сохранённой выборки Монте-Карло.

    • Апостериорные вероятности включения переменной (Regime) только для предыдущих моделей SSVS. Значения ниже порога, который вы определяете, указывают, что соответствующий предиктор незначителен или избыточен.

    Несмотря на то, что вы оцениваете несколько апостериорных моделей, хорошей практикой является просмотр апостериорных рисунков для адекватного смешения, особенно для моделей, оцененных с использованием контуров значений параметров настройки. Для получения дополнительной информации см. «Апостериорная оценка и диагностика симуляции».

  5. Определите наиболее эффективную апостериорную модель. Двумя примерами являются:

    • Выберите самую простую модель, которая минимизирует среднюю квадратичную невязку (MSE, средство Sigma2) среди всех апостериорных моделей. Этот метод прост, но получившиеся модели могут плохо обобщиться.

    • Выберите самую простую модель, которая минимизирует MSE прогноза.

      1. Разделите данные на оценочные и прогнозные выборки.

      2. Для всех выбранных значений параметров настройки оцените апостериорное распределение с помощью выборочных данных оценки.

      3. Вычислите MSE прогноза с помощью выборки прогноза и откликов, предсказанных с помощью апостериорного прогнозирующего распределения.

  6. Прогнозные отклики, данные новых предикторов с использованием forecast. The forecast функция создает прогнозы из апостериорного прогнозирующего распределения путем реализации семплера Гиббса. Осмотрите вытяжки на предмет адекватного перемешивания.

Ссылки

[1] Джордж, Э. И. и Р. Э. Маккаллох. «Выбор переменной через выборку Гиббса». Журнал Американской статистической ассоциации. Том 88, № 423, 1993, с. 881-889.

[2] Marin, J. M., and C. P. Robert. Байесовское ядро: практический подход к вычислительной байесовской статистике. Нью-Йорк: Springer Science + Business Media, LLC, 2007 .

[3] Парк, Т. и Г. Казелла. «Байесовский лассо». Журнал Американской статистической ассоциации. Том 103, № 482, 2008, стр. 681-686.

См. также

Функции

Объекты

Похожие темы