Анализ данных и прогнозирование в 1С – Общая статистика
Цитаты из ИТС («Руководство разработчика» — «Глава 14. Анализ данных и прогнозирование»):
«Механизм анализа данных и прогнозирования позволяет реализовывать в прикладных решениях различные средства для выявления закономерностей, которые обычно скрываются за большими объемами информации».
В механизме анализа данных и прогнозирования реализовано несколько типов анализа данных:
- Общая статистика
- Поиск ассоциаций
- Поиск последовательностей
- Кластерный анализ
- Дерево решений
Общая статистика — представляет собой механизм для сбора общей информации о данных, находящихся в полученном источнике данных. Этот тип анализа предназначен для предварительного исследования анализируемой информации. Анализ показывает ряд характеристик дискретных и непрерывных полей. При выводе отчета в табличный документ заполняются круговые диаграммы для отображения состава полей.
Типы переменных (данных) в статистике:
- Номинальные данные – данные в виде имени, ярлыка или условного кода. Пример, пол, мужской или женский.
- Порядковые данные – порядок данных, в котором большее значение, соответствует большему проявлению какого-либо признака. Могут быть ранжированы. Но интервал между значениями не может быть выражен количественно. Пример, степень ожога.
- Интервальные данные – данные расположены в осмысленном порядке, имеющие равный интервал между измерениями. Пример, температурная шкала.
- Непрерывные данные – могут принимать любое значение или в определенном диапазоне. Пример, рост, ожидается что он будет в диапазоне [150; 190].
- Дискретные данные – определенные значения, между которыми существуют четкие границы. Пример, количество детей, 1, 2, 3 ребенка, но не 3,5.
Меры центральной тенденции:
- Частота – как часто встречается (повторяется) значение в данных.
- Среднее – сумма всех значений деленное на их количество.
- Мода – чаще всего встречающиеся значения.
- Медиана – значение которое, делит упорядоченные множество пополам (значение из середины данных). Если значений четное количество, тогда используется среднее от двух ближайших значений.
Более подробнее см. источники информации, указанные в конце.
Меры изменчивости данных:
- Размах – разница между самым большим и самым маленьким значением.
- Квартили – три точки (значения) которые делят множество на четыре равные части.
- Межквартильный размах – отсекаются 25% самых маленьких и больших значений, для остальных считается размах, то есть размах для 50 % данных из середины.
- Отклонение – разность конкретного значения от среднего.
- Дисперсия – Сумма квадратов отклонений, деленная на их количество.
- Стандартное отклонение – квадратный корень из дисперсии.
Более подробнее см. источники информации, указанные в конце.
В качестве анализируемых данных, будет использоваться набор данных «Supermarket sales» — который представляет из себя, исторические данные о продажах в трех разных филиалах супермаркета, за 3 месяца.
Создана простая конфигурация, где основным объектом, является регистр сведений «Данные продаж», в который с помощью обработки «Загрузка данных из файла CSV», были загружены данные из анализируемого набора.
В наборе данных присутствуют следующие колонки:
Invoice id | Идентификатор счет-фактуры |
Branch | Филиал супермаркета (3 филиала, возможные значения A, B и C) |
City | Город |
Customer type | Тип клиента, «Members» клиент использующий членскую карту и «Normal», без членской карты |
Gender | Пол покупателя |
Product line | Вид номенклатуры, «Electronic accessories», «Fashion accessories», «Food and beverages», «Health and beauty», «Home and lifestyle», «Sports and travel» |
Unit price | Цена за единицу товара |
Quantity | Количество |
Tax | 5% налог |
Total | Сумма с налогом |
Date | Дата (с January 2019 по March 2019) |
Time | Время |
Payment | Вид оплаты (3 возможных оплаты — Cash, Credit card and Ewallet) |
COGS | Стоимость проданных товаров |
Gross margin percentage | Процент валовой прибыли |
Gross income | Валовый доход |
Rating | Рейтинг покупателя |
Для получения общей статистики, создана обработка «Анализ данных общая статистика», на форму которой, в табличный документ, выводится результат анализа.
Код обработки:
#Область ОбщаяСтатистика АнализДанныхОбщаяСтатистика = Новый АнализДанных; АнализДанныхОбщаяСтатистика.ТипАнализа = Тип("АнализДанныхОбщаяСтатистика"); Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | ДанныеПродаж.ДатаПокупки КАК ДатаПокупки, | ДанныеПродаж.ВремяПокупки КАК ВремяПокупки, | ДанныеПродаж.Филиал КАК Филиал, | ДанныеПродаж.Город КАК Город, | ДанныеПродаж.ТипКлиента КАК ТипКлиента, | ДанныеПродаж.Пол КАК Пол, | ДанныеПродаж.ВидНоменклатуры КАК ВидНоменклатуры, | ДанныеПродаж.ВидОплаты КАК ВидОплаты, | ДанныеПродаж.Цена КАК Цена, | ДанныеПродаж.Количество КАК Количество, | ДанныеПродаж.Сумма КАК Сумма, | ДанныеПродаж.Налог КАК Налог, | ДанныеПродаж.Стоимость КАК Стоимость, | ДанныеПродаж.ПроцентВаловойПрибыли КАК ПроцентВаловойПрибыли, | ДанныеПродаж.ВаловойДоход КАК ВаловойДоход, | ДанныеПродаж.РейтингКлиента КАК РейтингКлиента |ПОМЕСТИТЬ ВТ_ДанныеПродаж |ИЗ | РегистрСведений.ДанныеПродаж КАК ДанныеПродаж |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_ДанныеПродаж.ДатаПокупки КАК ДатаПокупки, | ВТ_ДанныеПродаж.ВремяПокупки КАК ВремяПокупки, | ВТ_ДанныеПродаж.Филиал КАК Филиал, | ВТ_ДанныеПродаж.Город КАК Город, | ВТ_ДанныеПродаж.ТипКлиента КАК ТипКлиента, | ВТ_ДанныеПродаж.Пол КАК Пол, | ВТ_ДанныеПродаж.ВидНоменклатуры КАК ВидНоменклатуры, | ВТ_ДанныеПродаж.ВидОплаты КАК ВидОплаты, | ВТ_ДанныеПродаж.Цена КАК Цена, | ВТ_ДанныеПродаж.Количество КАК Количество, | ВТ_ДанныеПродаж.Сумма КАК Сумма, | ВТ_ДанныеПродаж.Налог КАК Налог, | ВТ_ДанныеПродаж.Стоимость КАК Стоимость, | ВТ_ДанныеПродаж.ПроцентВаловойПрибыли КАК ПроцентВаловойПрибыли, | ВТ_ДанныеПродаж.ВаловойДоход КАК ВаловойДоход, | ВТ_ДанныеПродаж.РейтингКлиента КАК РейтингКлиента |ИЗ | ВТ_ДанныеПродаж КАК ВТ_ДанныеПродаж"; АнализДанныхОбщаяСтатистика.ИсточникДанных = Запрос.Выполнить(); РезультатАнализа = АнализДанныхОбщаяСтатистика.Выполнить(); ПостроительОтчетаАнализаДанных = Новый ПостроительОтчетаАнализаДанных(); ПостроительОтчетаАнализаДанных.Макет = Неопределено; ПостроительОтчетаАнализаДанных.ТипАнализа = Тип("АнализДанныхОбщаяСтатистика"); ПостроительОтчетаАнализаДанных.Вывести(РезультатАнализа, РезультатОбщаяСтатистика); РезультатОбщаяСтатистика.ПоказатьУровеньГруппировокСтрок(1); #КонецОбласти
Выполним и посмотрим на результат. Первым на очереди, общая статистика по непрерывным полям:
Из таблицы, можно получить, информацию о множестве интересных фактов, например, максимальное количество товаров в одной покупке 10 штук, при этом среднее значение 5,5100, медиана 5, при стандартном отклонении 2,9234. Это говорит о том, что чаще покупают множество товаров, нежели приходят за одним, при этом средний чек составил около 300 долларов, больше всего активны покупатели с рейтингом чуть выше 6 единиц, покупатели в основном лояльны.
Дискретные поля, показали условно равномерное распределение значений, без явных лидеров. Например, показатель «Филиал», различия незначительны:
Показатель «Вид номенклатуры»:
Для поиска интересных взаимосвязей, необходимо продолжить дальнейший анализ данных.
Используемые источники информации:
- Информационно-технологическое сопровождение (1С:ИТС).
- Курс «Введение в Data Science и машинное обучение».
- Книга «Статистика и котики» — Автор: Савельев Владимир.
- Книга «Статистика для всех» — Автор: Сара Бослаф.
Дополнительная информация:
Выгрузка базы данных (dt файл, 96 Кб) — используемая версия платформы: 1С:Предприятие 8.3 (8.3.17.1496).