mini-kep / parser-rosstat-kep

Provide clean macroeconomic time series as CSV files at stable URL
12 stars 13 forks source link

review check procedure #151

Closed epogrebnyak closed 6 years ago

epogrebnyak commented 6 years ago

https://github.com/mini-kep/parser-rosstat-kep/blob/dev/src/kep/parsing_definition/checkpoints.py and https://github.com/mini-kep/parser-rosstat-kep/blob/dev/src/kep/vintage.py

ideas for work:

epogrebnyak commented 6 years ago

https://github.com/mini-kep/parser-rosstat-kep/blob/3ff0686fe12924ea60ea22677f4b5a814b407fbe/src/kep/parsing_definition/checkpoints.py#L3-L32

epogrebnyak commented 6 years ago

для проверки что должны делать? Я так понимаю, что функция validate должна кидать исключение, если обнаружены дополнительные столбцы в данных, которых нет в чекпойнтах, или, наоборот, если какие-то чекпойнты не использованы. Так? Либо же должны быть отдельные функции, которые возвращают список различий, к примеру?

Скорее второе.

  1. Нужна функция для проверки "Есть ли в фреймах переменные (столбцы), для которые нет проверочного значения" - это проверка. Это может быть warning или exception.

  2. Справочная функция - есть ли среди проверочных значений те, которые не понадобились для проверки? Это информация о том, что проверочные значения, возможно, устаревают, из-за пересмотра состава переменных. Это warning.

  3. В целом нужен набор правил, которые мы считаем "валидацией целостности" набора данных. @0nkery, можете предложить?

epogrebnyak commented 6 years ago

По №2 мы всегда используем все контрольные точки, дополнительная проверка не требуется.

flags = [is_found(df, c) for c in checkpoints]

epogrebnyak commented 6 years ago

Текущая цель валидации:

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

epogrebnyak commented 6 years ago

Правила контроля целостности набора данных (0.0.1)

Компоненты

Валидация (контрольные точки)

Сейчас:

Все контрольные точки есть в фреймах.

Требуется:

Для каждой переменной в каждой частоте есть одна непустая контрольная точка. Нет неиспользуемых контрольных точек.

Проблемы

  1. мы не знаем все ли переменные во фреймах охвачены контрольными точками

  2. нас удовлетворяют пустые значения в контрольной точке и в фрейме (нужны контрольные токи вне 1999 года для некоторых переменных)

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

Что еще можно проверять

0nkery commented 6 years ago
0nkery commented 6 years ago

Вариант решения задачи валидации переменных в релизах данных по нескольким контрольным точкам.

Если брать контрольную точку ближе по времени, ее значение может меняться через месяц или квартал ( было / не было данных + уточнили данные ).

Можно задать базовые контрольные точки, общие для всех релизов данных. В каждом отдельном релизе данных, при необходимости, можно указывать "переопределения" отдельных контрольных точек, которые объединяются с базовыми (перезаписывая отдельные контрольные точки). Полученная структура данных уже используется для валидации датафреймов.