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

Все алгоритмы контроля качества я бы разделил на несколько типов (возможно вы еще что-то добавите, будет интересный FAQ по данному вопросу):

1. Проверка «от дурака». Т.е .контроль данных на какие-то случайные значения, которые либо не могут существовать в принципе, либо отсутствуют те значения, которые должны быть.

Пример из банка, кредит физического лица составляет 700 млн.руб. Вероятнее всего эта ошибка появляется в результате того, что кто-то забыл поделить на 1000 руб. Т.е. указал как 700 000, но при этом уже само поле БД было в тыс. руб., вследствие чего произошла ошибка.

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

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

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

 2. Проверка данных на бизнес-логику.

Здесь помимо диапазонных проверок, можно делать трендовые проверки. Трендовые проверки позволяют выявлять выбросы в данных и попытаться разобраться с ними.

Давайте рассмотрим на примере: предположим, что вы собираете отчетность по продажам. В первый период 10 единиц, второй период 12, третий период 15 единиц, четвертый период 60 единиц. Вам нужно проверить данные за 4 период. Если построить линию тренда по первым трем периодам и сравнить с данными за четвертый, то вероятнее всего цифра в 60 единиц должна вызвать у вас сомнение. Какой диапазон чувствительности установить вы решаете исходя из вариации в данных по продажам. Отдельные выбросы должны быть объяснимы, например, сезонностью или проведением стимулирующих мероприятий. Но если не было ни того, ни другого, то вероятнее всего проверку стоит продолжить. При стимулирующих акциях иногда снижают стоимость на товары, в данном случае, можно проверить среднюю стоимость единицы. Если падает и натуральные показатели растут, то вероятнее всего было стимулирующее воздействие. Хотя в некоторых случаях это может быть не так. Т.е. закралась ошибка в натуральный показатель и при этом она совпала с периодом проведения стимулирующей кампании.

3. Емкостные или ресурсные ограничения. Если вы можете продать всего X товаров, за период вы поставили Y, то вероятно, что объем продаж не должен превышать суммарного значения обоих величин. Простая проверка на значение позволяет отсеять некорректные данные. Можно задать еще границы чувствительности и работать с данными, попадающими в верхний диапазон границы X+Y. Если у вас информация по остаткам, то арифметика должна работать. Если арифметика не работает, вероятнее всего какие-то данные не корректны, что требует пристального внимания.

Некоторые другие примеры:

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

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

Удачи вам! И корректных данных.