Работа с временными рядами 2011–2026
Назначение и аудитория
Для аналитиков, которые строят длинные ряды исполнения или планов и должны учесть смену КБК, переходы методик (в т.ч. СГФ) и номинал vs реальные величины, не смешивая несопоставимые коды.
Входные данные
- Ряд наблюдений — пары «период → значение» с явным смыслом (касса, начисление, план); частота (месяц, квартал, год) не смешивается в одном столбце без дорасчёта.
- Годы действия кодов КБК — изменения классификации по годам и расшифровка КБК.
- Индекс для снятия номинала (при необходимости) — ИПЦ/макропоказатели ЦБ, карточка статистики ЦБ; согласуйте базу года и методику с официальным рядом.
- Справочники Минфина на каждый год ряда — открытые данные Минфина.
Инструменты
- Python 3 (stdlib:
datetime, арифметика; при необходимостиpandasдляresample). - Excel — для графиков и простых соотношений «номинал / индекс».
Шаги
- Зафиксируйте частоту и тип показателя (план/факт, касса/начисление).
- Приведите КБК к сопоставимому виду — через официальные таблицы соответствия года перехода или через агрегированный разрез (функция, ведомство), если построчное соответствие невозможно.
- Постройте непрерывный календарь периодов без пропусков или явно пометьте пропуски как
NA. - Для сравнения «через годы» в номинале добавьте столбец с индексом цен и пересчитайте в цены выбранного базисного года.
- Документируйте каждое сопоставление кодов и источник индекса.
Воспроизводимый пример
Учебный номинальный ряд по годам и пересчёт в условные цены 2011 года с помощью toy-CPI (не официальный ИПЦ; для боя подставьте ряд из ЦБ).
# Номинал, млрд руб. (учебные числа)
nominal_by_year = {2011: 100.0, 2012: 120.0, 2013: 135.0}
# Условный индекс цен, 2011 = 100
cpi_2011_100 = {2011: 100.0, 2012: 104.0, 2013: 110.0}
real_2011_prices = {}
for year, nom in nominal_by_year.items():
real_2011_prices[year] = nom / (cpi_2011_100[year] / 100.0)
print("В ценах 2011 г.:", real_2011_prices)
yoy_nominal = nominal_by_year[2013] / nominal_by_year[2012] - 1.0
print("Номинальный рост 2012→2013, %:", round(yoy_nominal * 100, 2))
Ожидаемо: В ценах 2011 г. для 2013 года около 135 / 1.1 ≈ 122.73, номинальный рост 2012→2013 — 12.5%.
Проверка результата
- Для toy-ряда
real_2011_prices[2011] == 100.0. - После пересчёта в цены 2011 г. рост 2012→2013 в «реале» ниже номинального 12.5% (смешение эффекта объёма и цен).
- На реальных данных — контрольные точки: сумма по подстатьям не превышает агрегат без двойного учёта после маппинга КБК.
Ограничения и типовые ошибки
- Склейка рядов с разной частотой (месяц + год в одной модели) без явного
resampleискажает динамику. - Один и тот же «номер КБК» в разные годы — разные смыслы; не делайте
JOINбез таблицы соответствия. - Официальный ИПЦ и ваш внутренний дефлятор должны быть явно названы; toy-CPI в примере только для иллюстрации формулы.
- СГФ-2014 и иные смены методик меняют сопоставимость агрегатов бюджета — см. изменения классификации.