Охота за финансовыми данными. Или как раздобыть историю инфляции в Китае
Давно уже хотел получить доступ к историческим данным по инфляции в Китае. Они много где есть, но, как правило, это либо платные данные, либо с сильным запозданием (база данных Всемирного банка), либо с небольшой глубиной истории.
Пришлось засучить рукава и начать гуглить … кто там занимается статистикой в КНР.
В свое время я думал, что официальный API нашего Центрального банка (на старинном SOAP) сложен и непонятен. Но я тогда еще не сталкивался с Бюро статистики Китая (National Bureau of Statistics of China - NBSC) …
У нашего ЦБ преимуществ, как минимум 2:
- Официальный API есть (как бы неудобен он ни был)
- По нему имеется документация (на английском языке тоже)
Бюро статистики Китая имеет англоязычную часть сайта … но даже через браузер получить нужные данные непросто. Открытого API нет в принципе. Понять, как работает API на бэкэнде NBSC, с ходу просто невозможно.
Почти детективная история
Скажу стразу, что если бы знал, с чем придется столкнуться, то вряд ли стал этим заниматься … Но меня вдохновила библиотека на GitHub Paul Natsuo Kishimoto. Эта библиотека хоть и не позволяет получить данные по CPI Китая, но содержит указания о том, как формируются запросы. Это было хорошим стартом …
Но дальше возникла существенная проблема. Как получить коды запросов? Никакой документации на этот счет нет. Пришлось учиться читать китайские IT форумы.
Оказывается, автоматический перевод страниц в Хроме справляется с китайскими иероглифами на 4+. Читать вполне можно. Таким образом стало понятно, где искать коды. Они отыскались прямо в JSON выдаче.
Это уже почти победа. Осталось немного переписать код на Python так, чтобы можно было формировать запросы на месячные данные. Если вы думаете, что синтаксис API простой для такого, казалось бы, элементарного запроса, то предлагаю взглянуть на один из URL:
Полировка данных
Итак, месячные данные получены вплоть до 2001 года. Но, спрашивается, почему глубина данных - 2001? Месячные данные за предыдущие периоды отсутствуют. За то есть статистика по скользящей 12-месячной инфляции. На первый взгляд кажется, что месячные данные потеряны, если имея только годовая инфляции. Но давайте взглянем поближе, на то, что происходит.
Последние данные по месячной инфляции – от января 2001 года. Как получить инфляцию в декабре 2000 года?
Информации вполне достаточно.
$$ I_{11-2001} = (x_{12-2000} + 1)\times(x_{1-2001} + 1)\times(x_{2-2001} + 1)\dots\times(x_{11-2001} + 1) - 1 $$
I - 12-месячная инфляция в ноябре 2001 года
x - значения инфляции за один месяц
Нам известны месячные данные с января по ноябрь 2001. Годовая инфляция за ноябрь 2001 тоже известна.
$$ x_{12-2000} = \frac{I_{11-2001}+1}{\left(x_{1-2001}+1\right)\dots(x_{11-2001}+1)} - 1 $$
Количество доступных данных месячной инфляции пополнилось декабрем 2000 года. Остается только повторить расчет для ноября и последующих месяцев вплоть до 1987 года. На самом деле можно «выжать» еще несколько месяцев до февраля 1986 года, так как эта информация «зашита» в годовых цифрах.
Для любопытных: реализация расчетов месячных данных из годовых на Python.
Сложности после загрузки официальных данных NSBC
Последняя неприятность ждала меня, когда все данные уже были скачены, а инфляция добавлена в перечень доступных данных API okama… Начал изучать прекрасные графики, и вдруг такое …
Выше график 12-месячной инфляции в Китае. Красота снова не получилась …
Снова приходится разбираться. Оказывает в официальных данных в июле 2007 стоимость потребительской корзины (CPI) равна нулю. Дефляция -100% … нашему бы ЦБ такие результаты.
И снова для восстановления реалистичных данных помогает уже проверенная формула расчета месячной инфляции через годовую. На этот раз потребовался всего один месяц – июль 2007.
После этого красота все-таки получилась. Можно пользоваться.
Данные через «человеческий» API и новая библиотека nbsc
Теперь актуальную историю месячной инфляции получить просто через API okama при помощи просто запроса:
http://api.okama.io:5000/api/ts/macro/CNY.INFL?first_date=2019-01-01&last_date=2020-01-01
На всякий случай всего в базе данных теперь инфляции 6 стран:
Страна | Код |
Россия | RUB.INFL |
Китай | CNY.INFL |
США | USD.INFL |
ЕС | EUR.INFL |
Великобритания | GBP.INFL |
Израиль | ILS.INFL |
Количество стран с данными по инфляции будет увеличиваться (не обещаю, что быстро). Их список тоже можно актуализировать через запрос API:
http://api.okama.io:5000/api/namespaces/INFL
Новый репо на GitHub - nbsc
Исходный код Python для получения и преобразования данных (после форка репо Paul Natsuo Kishimoto) теперь доступен через репозитарий nbsc:
https://github.com/mbk-dev/nbsc
В описании репозитария есть все известные мне коды финансовых данных для формирования запросов NBSC:
Репозитарий теперь используется в коде API okama.
Анализ данных инфляции через библиотеку okama на Python
Получить данные по инфляции Китая можно через API, но анализировать их можно через встроенные методы библиотеки okama.
После `import okama as ok`:
ok.cumulative_inflation | Временной ряд накопленной инфляции за выбранный период истории |
ok.annual_inflation_ts | Временой ряд инфляции за календарные годы |
ok. values_monthly | Временной ряд месячных значений инфляции |
ok. rolling_inflation | Временной ряд скользящей 12-месячной инфляции |
ok. purchasing_power_1000 | Покупательная способность 1000 денежных единиц за выбранный промежуток времени |
ok.describe() | Сводная статистика по инфляции за несколько выбранных промежутков в одной таблице |
Полная документация по методам класса Inflation.
Дальнейшие цели для охоты на данные
На очереди Индия … очень хочется верить, что со статистикой Индии все будет проще чем в Китае.
Похожие материалы:
- Статистика ключевой ставки Китая - LPR через API
- ЦБ избавляются от трежерис третий месяц подряд. Рекордное снижение индексов
- Релиз версии 1.2.0 финансовой библиотеки Okama для Python
- Okama: финансовая библиотека для Python и бесплатная база исторических данных
- Китай в инвестиционном портфеле. Индексные фонды КНР
- После третьей мировой войны выживут тараканы и EXCEL
- Инфляция и ключевая ставка ЦБ в январе 2024 года и прогноз на февраль
- Инфляция Vs. Девальвация
- Инфляция и ключевая ставка ЦБ в апреле 2023 года
- Инфляция обесценивает золото
- Хороший способ защиты от инфляции - знакомимся с ОФЗ-ИН
- О том как инфляция съедает деньги
- Инфляция и ключевая ставка ЦБ в феврале 2024 года и прогноз на март
- Инфляция и ключевая ставка ЦБ в июле 2022 года
- Рекордно низкая инфляция в марте 2023 года. Глазьев готовится к очередному наступлению на ЦБ
- Инфляция и ключевая ставка ЦБ в сентябре 2023 года
Комментарии