Может ли hh.индекс предсказать безработицу? Я проверил на данных за семь лет - QubStore

Может ли hh.индекс предсказать безработицу? Я проверил на данных за семь лет

Содержание статьи

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

Но если открыть данные hh.ru, то там всё достаточно бурно. В июне 2024 года hh.индекс составлял 3,1 резюме на одну вакансию. Через год он вырос до 5,5, а в июне 2026 года достиг 8,3. В марте показатель вообще поднимался до 11,4 — это вообще показатель высокой конкуренции соискателей. 

И вот я задумался, получается странно: искать работу становится заметно сложнее, вакансий относительно кандидатов меньше, а официальная безработица почти не двигается.

Я решил покопаться в этом вопросе и посмотреть, а может ли hh.индекс действительно показывать охлаждение рынка раньше Росстата?

Для исследования я собрал помесячные данные hh.ru и Росстата, также провёл небольшой backtest.

Какие данные использовал

Основой стал помесячный ряд hh.индекса с января 2019 по июнь 2026 года — всего 90 месяцев.

Сам hh.индекс считается довольно просто:
среднее число активных резюме / среднее число активных вакансий.

Низкое значение означает, что работодателей много, а кандидатов относительно мало. Высокое — что соискателей на одну вакансию становится больше.

По классификации hh.ru значения от 4 до 7,9 соответствуют умеренной конкуренции. Всё, что выше 7,9, уже относится к высокой конкуренции за рабочие места.

Безработицу взял доступную по май 2026 года.

Безработица отвечает на вопрос: сколько людей не имеют работы, ищут её и готовы приступить. А hh.индекс отвечает вопрос: сколько активных резюме приходится на одну активную вакансию на платформе. И хотим мы того или нет, но hh сейчас занимает очень заметное место на российском рынке труда.

Человек может работать, обновить резюме и начать искать новое место. В безработные он при этом не попадёт, но конкуренцию за вакансии уже увеличит.

Динамика основных показателей

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

После этого рынок развернулся вообще в противоположную сторону. В 2022-2024 годах безработица снижалась, а работников не хватало, и при этом hh.индекс частенько находился в зоне дефицита кандидатов.

Но потом что-то начало ломаться.

Рисунок 1. Динамика hh.индекса и уровня безработицы, январь 2019 – июнь 2026

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

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

А вот hh.индекс может измениться намного раньше:

  • сами компании могут сокращать или замораживать найм;

  • работающие кандидаты могут просто быть более активны на рынке (в период весны это наблюдается достаточно отчетливо);

  • число новых может снижаться быстрее, чем это будет заметно в занятости (найм покрывает только текучесть, штат не расширяется);

  • люди дольше ищут новое место, не увольняясь со старого.

То есть, идея в том, что рынок может стать гораздо менее комфортным для кандидата еще задолго до того, как это отразится в официальной безработице.

Действительно ли hh.индекс опережает безработицу

Дальше я посчитал лаговые корреляции. Логика здесь проста – мы сравниваем изменение hh.индекса сегодня с изменением безработицы:

  • в том же месяце;

  • через месяц;

  • через три месяца;

  • через шесть месяцев и так далее.

Если максимальная связь возникает при положительном лаге, можно предположить, что индекс меняется раньше официальной безработицы.

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

Может ли hh.индекс предсказать безработицу? Я проверил на данных за семь лет

Рисунок 2. Наивная оценка лаговой связи на годовых изменениях

На графике действительно появился некоторый опережающий профиль. Связь постепенно усиливалась от нулевого лага к диапазону примерно 4-7 месяцев.

Я хотел как-то здесь остановится и написать вывод в стиле «Сенсация! hh индекс предсказывает безработицу за полгода! Чтобы узнать безработицу в следующем году нужно всего лишь…». Но это было бы слишком просто, в этом было бы мало аналитики. И ведь мы помним, что корреляция, рассчитанная на всей истории, ещё не означает, что показатель помогает прогнозировать новые данные.

Да и я очевидно допустил некоторую методологическую ошибку.

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

Поэтому перед основным анализом мне нужно было проверить стационарность рядов с помощью тестов ADF и KPSS.

Результат показал, что безработица нестационарна, да и результаты для hh.индекса неоднозначны. К тому же, даже годовое изменение hh.индекса не прошло проверку на стационарность.

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

Может ли hh.индекс предсказать безработицу? Я проверил на данных за семь лет

Рисунок 3. Стационарность (уже после заметил что словоне влезло — «выше линии = отклоняем единичный корень»)

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

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

И вот, после всех этих расчетов, результат оказался незначимым:

глобальный p-value составил 0,269.

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

Может ли hh.индекс предсказать безработицу? Я проверил на данных за семь лет

Рисунок 3. Лаговые корреляции на двух преобразованиях

Дополнительно я проверил чувствительность результата к разным периодам. И здесь лучший лаг постоянно менялся. На одной подвыборке сильнее выглядел один сдвиг, на другой — уже совершенно другой. Устойчивого временного окна не получилось найти.

Тест Грейнджера на первых разностях тоже не подтвердил опережение. После поправки на множественные сравнения ни один из лагов от одного до шести месяцев не оказался значимым.

Поэтому вывод у меня получается такой:

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

Сенсация отменяется, эх.

Корреляция ещё не прогноз

Даже если бы лаговая корреляция оказалась статистически значимой, этого всё равно было бы мало. Ведь корреляция — это полезная мера связи, но она вообще не доказывает причинность и не показывает, сможет ли индикатор работать на новых данных.

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

Поэтому следующим этапом стал backtest.

Проверяем прогноз

Для проверки я использовал expanding-window backtest. Идея также максимально простая: модель каждый раз видит только прошлые данные, обучается на этой самой истории, потом прогнозирует следующий месяц, получает реальное значение и добавляет его в выборку, и процесс повторяется. Никакого случайного перемешивания месяцев здесь нет.

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

Ну и сравнивал три подхода.

Первый — наивный прогноз: безработица останется на уровне последнего известного месяца.

Второй — авторегрессионная модель, использующая прошлую динамику самой безработицы.

Третий — та же модель, но уже с добавлением изменений hh.индекса.

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

Дополнительно я проверил устойчивость результата на разных временных отрезках. Лучший лаг менялся в зависимости от периода: то есть на одних подвыборках максимальная связь наблюдалась без сдвига, а на других — при лаге шесть месяцев. И также устойчивого временного окна не получилось найти.

Ошибки моделей на разных горизонтах оказались такими:

Может ли hh.индекс предсказать безработицу? Я проверил на данных за семь лет

Таблица 1. Сравнение точности прогноза безработицы на горизонтах 1, 3 и 6 месяцев

На горизонте одного месяца лучше всех оказался вообще наивный прогноз. На 3 и 6 — авторегрессионная модель без hh.индекса. А добавление индекса таки ухудшило прогноз на всех трёх горизонтах.

То есть, и тут получился отрицательный результат.

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

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

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

И получается, что рост активности работающих соискателей совершенно не обязан превращаться в рост безработицы.

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

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

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

Что происходит в 2026 году

Особенно хорошо расхождение показателей видно в первой половине 2026 года. Там рост конкуренции происходил сразу с двух сторон:

  • число вакансий сокращалось;

  • число активных резюме увеличивалось.

В марте 2026 года число активных вакансий было на 27% ниже, чем годом ранее, а число резюме — на 41% выше. И индекс достиг 11,4. Затем к июню рынок немного отыграл назад: индекс снизился до 8,3. Но вакансий всё равно было на 17% меньше, чем годом ранее, а активных резюме — на 26% больше.

Может ли hh.индекс предсказать безработицу? Я проверил на данных за семь лет

Рисунок 5. Изменение среднего числа активных вакансий и резюме год к году

То есть в 2026 году работодатели снижали спрос на новых сотрудников, а кандидаты становились активнее.

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

Что в итоге

Начальный вопрос исследования звучал так:

Может ли hh.индекс заранее показывать изменение официальной безработицы?

После всех проверок мой ответ будет такой: hh.индекс не доказал способность улучшать прогноз официальной безработицы. Фиксированный лаг не подтвердился, тест Грейнджера также не показал опережающей связи. К тому же, добавление hh.индекса ухудшило прогноз безработицы на горизонтах одного, трёх и шести месяцев.

Я регулярно разбираю такие темы в своём Telegram‑канале, если вам интересно глубже понимать аналитику, экономику и рынок труда, там регулярно выходят короткие заметки и обзоры актуальных событий.

Ссылка на основную публикацию