«Subprime сдерживается» - Бернанке (март 2007 г.)

  • Чтобы получать периодические обновления прогнозов модели по электронной почте, щелкните здесь.
  • График прогноза рецессии в настоящее время размещен здесь.
  • Скрипт Python и документацию можно найти здесь.

СОДЕРЖАНИЕ

В двух словах

В этом проекте представлен подход машинного обучения для прогнозирования наступления рецессии в США на 6-месячный, 12-месячный и 24-месячный периоды времени. Модель прогнозирования использует несколько показателей занятости, инфляции, процентной ставки и рыночных показателей.

Определение проблемы

Проще говоря:

Можно ли предсказать время будущих рецессий в США, ища подсказки в экономических и рыночных данных?

Вот несколько интересных атрибутов этой проблемы:

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

  • Временной ряд: типичный для проекта, включающего финансовые данные. Это влияет на то, как выполняется перекрестная проверка (не следует выполнять простую K-кратную проверку).

Почему нужно решать эту проблему?

Это своевременная проблема, поскольку текущий бычий рынок стареет. Вооружившись здравым смыслом вероятности рецессии:

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

Основные предположения

Есть два основных теоретических предположения:

1) Рецессия в США показывает маркеры / ранние предупреждающие знаки.

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

2) Будущие рецессии будут похожи на исторические.

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

Что пробовали другие?

Сравнительный анализ / сравнение моделей

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

  • Модель Гуггенхайма. Данные о производительности модели не публикуются.
  • Модель ФРС Нью-Йорка. При более внимательном рассмотрении их модель построена так, чтобы ответить на вопрос «какова вероятность того, что США окажутся в рецессии через X месяцев?» , в то время как моя модель построена для ответа на вопрос «какова вероятность того, что в США будет рецессия в течение следующих X месяцев?». Дополнительные сведения см. В разделе Как пометить выходные данные класса ниже.
  • Модель Rabobank. По той же причине, по которой я не могу сравнить эффективность моей модели с моделью ФРС Нью-Йорка. Кроме того, модель Rabobank охватывает 17-месячный период времени, тогда как моя модель охватывает 6-месячный, 12-месячный и 24-месячный периоды времени.
  • Модель Wells Fargo Economics. Данные об эффективности модели не публикуются.

Получение данных

При получении данных мне нужно было учесть следующие моменты:

  • Экономические данные публикуются с разной периодичностью (еженедельно, ежемесячно, ежеквартально и т. д.). Чтобы сопоставить точки данных по времени, я решил использовать только те данные, которые можно собирать ежемесячно. В результате все прогнозы должны выполняться ежемесячно. Это означает, что мне пришлось отказаться от использования ряда ценных данных, таких как ВВП, поскольку они публикуются ежеквартально.
  • Даже при использовании только ежемесячных данных разные данные имеют разные даты выпуска в течение месяца. Чтобы контролировать это, все прогнозы выполняются с использованием самых последних данных, доступных по состоянию на 7-е число каждого месяца. В FRED API есть параметр, который может устанавливать это ограничение. РЕДАКТИРОВАТЬ (январь 2021 г.): код теперь извлекает данные по состоянию на 8-е число каждого месяца, чтобы учесть больше случаев крайних сроков.
  • Различная длина истории данных. Некоторые данные были опубликованы с 1900 года, в то время как другие данные относятся только к нескольким годам. Это означает, что мне пришлось исключить потенциально полезные данные , у которых просто не хватало истории.
  • Говоря об истории, мне нужно было достаточно данных, чтобы охватить как можно больше рецессий. В итоге полный набор данных включал 9 рецессий с 1955 года.
  • Экономические данные часто пересматриваются. Но FRED не предоставляет исходных цифр. Он предоставляет только пересмотренные цифры (независимо от того, как далеко постфактум были внесены эти изменения). Одной из альтернатив может быть ALFRED, который показывает числа, доступные на определенную винтажную дату, но роковой недостаток ALFRED заключается в том, что у него нет винтажей на каждую дату временного ряда. Придерживаясь самых последних пересмотренных цифр FRED, я подразумеваю, что исправления беспристрастны (то есть исправления с одинаковой вероятностью увеличат исходное значение или уменьшат его).

Источники данных

Из практических соображений я использовал данные из общественного достояния, доступные через FRED и Yahoo Finance. Я не использовал потенциально полезные данные, скрытые за платным доступом, такие как The Conference Board Leading Economic Index.

Выбор функции

Некоторые особенности выбора функций для конкретного проекта:

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

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

Общий план моего процесса выбора функций

  1. Определите набор данных для выполнения исследовательского анализа данных (с августа 1955 г. по январь 1972 г.), чтобы гарантировать отсутствие пересечения с периодами перекрестной проверки.
  2. Организуйте потенциальные функции в сегменты на основе экономических / теоретических характеристик (знания предметной области).
  3. Постройте парные корреляции между каждой отдельной функцией и каждым типом выходных данных (на 6 месяцев вперед, 12 месяцев, 24 месяца вперед), используя только набор исследовательских данных (не заглядывать вперед!).
  4. Последовательно перемещайтесь от сегмента к сегменту функций, чтобы в каждом сегменте был хотя бы один элемент в окончательном наборе данных. Для разрешения конфликтов выберите объекты, которые имеют низкую корреляцию с объектами, которые уже были «приняты» в окончательный набор данных.

Вот как это было:

Сначала выберите 1 функцию трудоустройства

Я учел 3-месячное изменение количества рабочих мест вне сельского хозяйства (%), 12-месячное изменение количества несельскохозяйственных рабочих мест (%) и разницу между 3-месячным изменением и 12-месячным изменением . Оказалось, что разница между 3-месячным изменением и 12-месячным изменением была лучшим предсказателем (из 3-х кандидатов) в исследовательском наборе данных, поэтому я выбрал это в качестве своей функции трудоустройства.

Выберите 1 функцию денежно-кредитной политики

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

Некоторые люди считают, что ФРС может влиять на экономическую активность, устанавливая границы для ставки по федеральным фондам.

Выберите 1 функцию инфляции

Инфляция имеет более сложную связь с деловыми циклами, поскольку она может происходить как в периоды быстрого роста, так и в периоды сокращения (стагфляция). Но между инфляцией и другими характеристиками могут быть эффекты более высокого порядка, поэтому стоит включить их независимо.

Индекс потребительских цен (ИПЦ) - широко используемый показатель инфляции. Я учел изменение CPI за 3 месяца (%), изменение CPI за 12 месяцев (%) и разницу между изменением за 3 месяца и изменением за 12 месяцев. Все кандидаты имели низкую корреляцию с функцией "Занятость" и "Монетарной политикой", поэтому я выбрал 3-месячное изменение ИПЦ в качестве функции инфляции, поскольку она имела немного более высокую корреляцию с выходными метками. в исследовательском наборе данных.

Выберите особенности рынка облигаций

Я хотел бы использовать здесь какой-либо индекс кредитного спреда (инвестиционного уровня или высокой доходности), но не смог найти индекс кредитного спреда с данными, относящимися к 1955 году.

Поэтому вместо этого я начал смотреть на ставки казначейства. Казначейские облигации как «безрисковый» класс активов играют важную роль в глобальной структуре распределения активов. Изменения казначейских ставок могут указывать на изменение ожиданий в отношении экономических возможностей и рыночного риска.

Я учел спред между 10-летними и 3-месячными казначейскими ставками, поскольку наклон кривой доходности имеет приличный исторический послужной список для заблаговременного прогнозирования рецессий. Есть несколько теоретических объяснений этого явления. Одно из этих объяснений состоит в том, что, если инвесторы видят на горизонте «плохие времена», они направляют деньги от рискованных активов в более долгосрочные казначейские обязательства, чтобы зафиксировать «безрисковую» прибыль в более длительных временных рамках.

Выбрав 10-летний и 3-месячный казначейский спрэд в качестве первого индикатора, я рассмотрел 3-месячную ставку казначейства (изменение за 12 месяцев) как 12-месячное изменение в Десятилетний и трехмесячный казначейский спрэд и 10-летняя казначейская ставка (изменение за 12 месяцев). Я отклонил первых двух кандидатов, поскольку они были чрезвычайно коррелированы (90%) с особенностью денежно-кредитной политики. Я решил выбрать 10-летнюю казначейскую ставку (изменение за 12 месяцев) в качестве второй характеристики рынка облигаций, поскольку она может служить индикатором долгосрочных ожиданий роста.

Выберите 1 функцию фондового рынка

Фондовые рынки управляются текущим дисконтированием будущих ожиданий, поэтому они считаются опережающими индикаторами. Я учел 3-месячное изменение индекса S&P 500, 12-месячное изменение индекса S&P 500 и разницу между 3-месячным изменением и 12-месячным изменением в S&P. 500 Индекс. Последние 2 кандидата имели высокую корреляцию с выходными метками, но я выбрал 12-месячное изменение индекса S&P 500, поскольку его легче интерпретировать.

Разработка процесса тестирования

При разработке тестов мне пришлось учесть следующие моменты:

Временная последовательность? Тогда никакой перекрестной проверки K-Fold

Поскольку базовый прогноз является временным рядом, необходимо проводить перекрестную проверку модели и прогнозирование в режиме реального времени (т.е. только с использованием данных, которые были доступны в каждый момент времени!). Перекрестная проверка K-Fold нарушит этот принцип.

Как определяются рецессии?

Комитет по датировке деловых циклов Национального бюро экономических исследований (НБЭИ) называет пиковые и минимальные даты для деловых циклов. Я рассматривал месяцы между пиком и спадом, определенным NBER, как месяцы рецессии для Соединенных Штатов. Но здесь есть огромная проблема:

NBER объявляет «пик» и «спад» через несколько месяцев (иногда лет) после факта!

Это означает, что нельзя маркировать выходы по одному периоду за раз! Таким образом, чтобы развернуть предсказатель рецессии любого типа, необходимо повторно обучать модель при каждом официальном объявлении о «низком уровне» NBER (после окончания рецессии). Следовательно, нужно использовать тот же подход во время тестирования на истории!

Если следовать этому подходу, есть 5 возможных тестов для запуска (пары пик-минимум), каждый с датами объявления NBER:

Для каждого теста обучающий набор начинается в августе 1955 г. и становится длиннее с каждым последующим тестом. Точно так же каждый набор перекрестной проверки начинается в январе 1972 и становится длиннее с каждым последующим тестом.

Как пометить выходные данные класса?

Поначалу это кажется простым: рецессия = 1, без рецессии = 0. Это верно, но этого недостаточно, поскольку это относится к желаемому объему модели. Чтобы определить процесс маркировки, нужно выяснить, на какой вопрос нужно ответить.

Is it:

Какова вероятность того, что в США через X месяцев наступит рецессия?

Если кто-то хочет ответить на этот вопрос, он должен спрогнозировать как начало, так и конец рецессии. Вероятности, предсказанные моделью, должны начать снижаться до того, как рецессия действительно закончится. Что и говорить, это довольно героическая задача.

Еще один вопрос, который можно задать:

Какова вероятность того, что в течение следующих X месяцев в США будет рецессия?

Этот вопрос предсказывает начало рецессии, но только «сейчас» указывает на ее окончание. Вероятности, предсказанные моделью, должны начать падать только после окончания рецессии. Эта задача менее идеалистична, но все же позволяет участникам рынка подготовиться к рыночным вершинам.

Таким образом, все месяцы, находящиеся в периоде рецессии, получат метку «1». Кроме того, X месяцев (где X = 6 для предсказателя на 6 месяцев вперед, X = 12 для предсказателя на 12 месяцев вперед и т. Д.), Предшествующие каждому началу рецессии, также получат метку «1». Все остальные месяцы будут отмечены знаком «0».

Результаты теста

Я рассмотрел несколько моделей и провел вышеупомянутые 5 тестов на каждой модели. Как указывалось ранее, вся перекрестная проверка и прогнозирование выполнялись в режиме реального времени (без обмана!) только с использованием данных, которые были доступны в каждый исторический момент времени.

Рассмотренные модели

Я рассмотрел следующие 6 отдельных моделей: K ближайших соседей, регуляризованная линейная регрессия (эластичная сеть), наивный байесовский алгоритм, машины опорных векторов, гауссовский процесс и XGBoost. Я настроил гиперпараметры через поиск по сетке на ошибку перекрестной проверки. Как упоминалось ранее:

Для каждого теста обучающий набор начинается в августе 1955 г. и становится длиннее с каждым последующим тестом. Точно так же каждый набор перекрестной проверки начинается в январе 1972 и становится длиннее с каждым последующим тестом.

Кроме того, я протестировал 2 ансамблевые модели из 6 отдельных моделей, представленных выше:

  • Модель общего среднего, которая одинаково взвешивает прогнозы каждой отдельной модели.
  • Модель взвешенного среднего, которая взвешивает прогнозы каждой отдельной модели на основе ошибки перекрестной проверки каждой отдельной модели.

Я также протестировал составной ансамбль, обучив модель линейной регрессии на предсказаниях перекрестной проверки каждой отдельной модели. Этот подход привел к ужасным результатам. Мое интуитивное объяснение состоит в том, что набор данных слишком мал для обучения мощного составного ансамбля. Доступных прогнозов перекрестной проверки просто не хватает!

Выбор метрики ошибки

Какую метрику ошибок следует использовать для количественной оценки ошибки прогноза? Поскольку это проблема классификации, на ум приходят такие показатели, как точность, предсказание / отзыв и оценка F1 (обо всем этом читайте здесь). Однако ни один из этих показателей не подходит для этой конкретной проблемы, поскольку прогнозируемый выходной класс (0 или 1) не так важен, как прогнозируемая вероятность Быть в каждом классе!

Вместо этого я использовал взвешенную логарифмическую потерю в качестве метрики ошибки. Он учитывает расстояние между прогнозируемой вероятностью класса = 1 и фактическим значением класса (1 или 0) . Log-loss назначает экспоненциально более тяжелый штраф за большие расхождения между прогнозируемыми вероятностями и фактическими выходными данными класса.

Поправка на несбалансированность классов

Во время обучения модели: для некоторых моделей (Elastic Net, Support Vector Machines и XGBoost) есть встроенные параметры для установки весов классов. Я установил эти параметры таким образом, чтобы оба класса одинаково влияли на функцию потерь при обучении модели.

Во время перекрестной проверки модели: Используя реализацию log-loss в scikit-learn, я могу скорректировать дисбаланс классов выборки (с помощью аргумента sample_weight) так, чтобы оба класса имели равное влияние на общий значения потерь журнала для перекрестной проверки модели.

Сглаживание прогнозов

Необработанные вероятностные прогнозы, как правило, непостоянны, например:

Поэтому я применил экспоненциальное сглаживание к необработанным предсказаниям вероятности. Я выбрал весовой коэффициент (для экспоненциального сглаживания) так, чтобы период полураспада каждого прогноза составлял 3 периода:

Окончательная модель

В итоге я выбрал машину опорных векторов в качестве окончательной модели развертывания. Лог-потери для 8 моделей (6 отдельных моделей и 2 ансамбля) за 3 периода времени приведены ниже:

Проницательные читатели могут заметить, что машина опорных векторов (SVM) не показывает лучших результатов во всех трех временных рамках.

Почему я не выбрал «самую эффективную» модель?

Одно слово: рассказывание историй.

Чтобы уточнить детали, просмотрите параллельное сравнение прогнозов Elastic Net, Weighted Average и Support Vector Machine на 6-месячный период времени:

Модели Elastic Net и Weighted Average лучше, чем SVM (на основе взвешенных логарифмических потерь), потому что они предсказывают более высокую вероятность рецессии в целом! По сути, они имеют более высокую тенденцию к «ложным срабатываниям», чем SVM, хотя имеют несколько меньшую тенденцию к «ложным отрицаниям», чем SVM.

Эта асимметрия является ключом к отказу от выбора «наиболее эффективной» модели. Модели (эластичная сеть, средневзвешенное значение), которые указывают на более высокую вероятность рецессии в ближайшем будущем, даже в течение длительных периодов экономического роста, легче подобрать. дискредитировать как «паникера» и продать будет труднее. С другой стороны, модель (SVM), которая указывает шансы рецессии ближе к 0% в хорошие времена, но может также резко возрастать (хотя и не так высоко, как модели «паникеров») в периоды рецессии, будет труднее дискредитировать.

Поэтому я выбрал модель SVM не потому, что она была «самой эффективной» с точки зрения статистики, а потому, что она рассказывает историю, которая больше соответствует тому, как люди воспринимают экономические условия!

Диаграмма размещена здесь отображает прогнозы модели SVM, обновляемые ежемесячно.

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

Особая благодарность Джейсону Браунли за его статью о процессе прикладного машинного обучения.