Введение 5
1 Постановка задачи и выбор оптимального способа ее решения 8
1.1 Анализ деятельности заказчика и описание задачи работы 8
1.2 Анализ и выбор математического метода для решения задачи 11
1.3 Анализ и выбор технологии для решения задачи 13
2 Проектирование приложения для прогнозирования продаж на основе
принципов регрессионного анализа 16
2.1 Описание этапов проектирования приложения 16
2.2 Основы регрессионного анализа 20
2.3 Построение регрессионной модели задачи 25
3 Реализация приложения для прогнозирования продаж на основе принципов
регрессионного анализа 30
3.1 Реализация алгоритма регрессионного анализа 30
3.2 Разработка пользовательского интерфейса 38
Заключение 42
Список используемой литературы 44
Приложение А Функциональная модель главного модуля 47
Приложение Б Фрагмент кода 48
Одна из важных составляющих успеха бизнеса - планирование объема продаж. Выполненный правильно прогноз делает процесс ведения бизнеса эффективнее, и самое главное - позволяет контролировать и оптимизировать расходы.
Большинство организаций используют автоматизированные системы для ведения учета продаж, однако чаще всего эти системы являются примитивными с точки зрения прогнозирования: их функционал рассчитан на закрытие экономических вопросов, например, выдачу чеков клиентам и сдачу налоговой и бухгалтерской отчетности в контролирующие органы. Примером таких систем являются решения от компании 1С, в конфигурациях есть подсистема «Планирование», в которой реализованы отчеты планов продаж, однако анализируемый для прогнозирования объем данных таких отчетов достаточно плоский: подсистема учитывает только данные о продажах, прошедшие через базу 1С, без учета внешних факторов.
Заказчиком программного продукта для прогнозирования объема продаж выступило общество с ограниченной ответственностью «Парк Горького». Это достаточно молодая компания, которая работает на рынке развлечений с 2015 года. Территориально ООО «Парк Горького» находится в г.Сызрань, основным видом деятельности организации является оказание услуг по пользованию аттракционами и прокату развлекательного оборудования. Деятельность парка аттракционов носит сезонный характер, поэтому получить максимальную прибыль необходимо в сжатые сроки. Вдобавок по требованиям техники безопасности аттракционы не могут работать в непогоду, что также накладывает ограничения на период получения дохода организацией.
К вопросу анализа данных для прогнозирования: с каждым годом объем данных растет. По прогнозам компании International Data Corporation объем данных всего мира к 2025 году увеличится в 10 раз и составит 163 зеттабайт. В силу того, что измерений для анализа может быть сколько угодно, применение типовых инструментов делает прогноз на основе анализа этих данных плоским и менее качественным.
В случае с ООО «Парк Горького» прогнозирование объема продаж может осуществляться в разрезе погодных условий. Причем, есть две составляющих анализа в разрезе погоды - температура и уровень ясности неба. В дождь запрещена как эксплуатация самих аттракционов, так и сами люди не захотят гулять под открытым небом. Температура теплого периода, как правило, не накладывает ограничений на эксплуатацию аттракционов, но имеет вполне логичное влияние на количество посетителей парка: в знойную погоду люди больше захотят провести время там, где прохладнее, а в холодную - там, где теплее.
Таким образом, разработка программного продукта для прогнозирования объема продаж является актуальной, т.к. прогнозирование финансовых результатов и, соответственно, количества посетителей парка аттракциона необходимо для планирования объема закупок и вызова сотрудников со сдельной оплатой труда. На объем продаж парка аттракционов влияет фактор погодных условий - в плохую погоду никто не захочет гулять в парке, а также фактор дня недели - в выходные дни посетителей больше, чем в будние.
Целью данной работы является реализация алгоритма прогнозирования продаж для парка развлечений.
Для достижения цели необходимо выполнить следующие задачи:
- проанализировать деятельность ООО «Парк Горького»;
- выгрузить из используемой системы данные о продажах;
- провести сравнение математических методов анализа данных;
- выбрать метод для анализа продаж;
- реализовать выбранный метод для выгруженных данных продаж;
- спроектировать пользовательский интерфейс программы;
- реализовать вывод результатов прогноза в разработанном интерфейсе пользователя;
- сделать выводы по проделанной работе.
Объектом исследования данной работы является парк аттракционов ООО «Парк Горького», деятельность которого связана с оказанием услуг по пользованию аттракционов и прокату оборудования.
Предмет исследования работы - выявление зависимости погодных условий и дня недели на объем продаж.
Работа состоит из трех разделов. В первом разделе подробно описывается поставленная задача, рассматриваются с теоретической точки зрения методы решения задачи, выполняется анализ существующих разработанных решений поставленной задачи, обосновываются математический метод решения задачи и технология для реализации этого метода.
Во втором разделе выбранный математический метод рассматривается детально, происходит построение модели задачи, выполняется проектирование структуры программного продукта и пользовательского интерфейса.
В третьем разделе описывается ход разработки программного продукта с разбивкой на две составляющие: реализация самого метода прогнозирования и реализация пользовательского интерфейса, согласно спроектированному в предыдущем разделе макету.
В процессе выполнения выпускной квалификационной работы продемонстрировано обладание такими компетенциями, как готовность анализировать проблемы и направления развития технологий программирования, готовность использовать навыки проектирования, реализации и анализа эффективности программного обеспечения для решения задач в различных предметных областях, готовность к разработке модулирующих алгоритмов и реализации их.
Для любой коммерческой организации получение прибыли и минимизация издержек являются важными задачами. Для парка аттракционов ООО «Парк Горького» эта задача также является значимой, учитывая тот факт, что период деятельности парка ограничен теплым временем года. Погодные условия накладывают ограничения в целом на возможность работы, а день недели может как влиять на выручку положительно, если это выходной день, так и отрицательно, если это будний день. Именно эти факторы были предложены заказчиком в качестве входных параметров приложения прогнозирования объема продаж.
В работе был проведен анализ предметной области, выбраны и обоснованы математический метод прогноза и технология реализации, реализован алгоритм множественной линейной регрессии, позволяющий не только обрабатывать предложенные в настоящее время заказчиком факторы, но обрабатывать дополнительные параметры. Если количество параметров будет увеличено, то будет необходимо передать такие параметры в функцию построения уравнения линейной регрессии. Для понятного вывода информации об уровне продаж в будущем периоде был разработан пользовательский интерфейс.
Данные о погоде в ретроспективном периоде были получены парсингом дневника погоды, размещенном на сайте Gismeteo, источником погоды будущего периода является Яндекс.Погода, подключение к сервису выполнено с помощью API.
Также в работе были использованы нотация IDEF0 для построения функциональных моделей приложения и нотация UML для описания диаграммы компонентов.
Приложение написано на языке программирования Python, при выборе языка был проведен сравнительный анализ технологий, которые применяются для решения похожих задач. В результате этого анализа по соотношению производительности к удобству использования выл выбран Python. Пользовательский интерфейс был реализован с помощью технологии QT, которая имеет поддержку с Python.
Исполняемый файл приложения был скомпилирован для операционной системы Windows, но также может быть скомпилирован для Unix-подобных систем.
В результате было разработано кроссплатформенное приложение для прогноза продаж на примере ООО «Парк Горького». Таким образом, цель бакалаврской работы можно считать достигнутой.
1. ГОСТ 34.601-90. Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Стадии создания. М. : Издательство стандартов, 2009. 6 с.
2. ГОСТ 19.404-79. Единая система программной документации. Пояснительная записка. Требования к содержанию и оформлению. М. : Издательство стандартов, 2010. 3 с.
3. Бейдер Д. Чистый Python. Тонкости программирования для профи. Санкт-Петербург : Изд. дом «Питер», 2018. 288 с.
4. Васильев А. Python на примерах. Практический курс. М : Наука и техника, 2018. 432 с.
5. Дерр В.Я. Теория вероятностей и математическая статистика : учеб. пособие. М: Астрель, 2021. 596 с.
6. Дрейпер Н., Смит Г. Прикладной регрессионный анализ. Множественная регрессия. Applied Regression Analysis. М. : «Диалектика», 2007. 912 с.
7. Иванов Б.Н. Теория вероятностей и математическая статистика : учеб. пособие. М : Издательство «Лань», 2019. 224 с.
8. Маккинни У. Python и анализ данных. М. : ДМК-Пресс, 2019. 540 с.
9. Максимов Ю.Д. Вероятностные разделы математики. Санкт- Петербург : «Иван Фёдоров», 2001. 592 с.
10. Мюллер А., Гвидо С. Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными. Introduction to Machine Learning with Python: A Guide for Data Scientists. М. : Вильямс, 2017. 480 с.
11. Натан А. А., Горбачёв О. Г., Гуз С. А. Математическая статистика. : учеб. пособие. М.: МЗ Пресс МФТИ, 2004. 412 с.
12. Персиваль Г. Python. Разработка на основе тестирования. М : ДМК-Пресс, 2018. 622 с.
13. Плас Д.В. Python для сложных задач. Наука о данных и машинное обучение. Python Data Science Handbook: Essential Tools for Working with Data. Санкт-Петербург : Питер, 2017. 576 с.
14. Прохоренок Н., Дронов В. Python 3. Самое необходимое, 2-е изд. Санкт-Петербург : БХВ-Петербург, 2019. 608 с.
15. Радченко С. Г. Методология регрессионного анализа. К. : «Корнийчук», 2011. 376 с.
16. Рамальо Л. Python. К вершинам мастерства : [рус.] = Fluent Python. O’Reilly, 2015 : [пер. с англ.]. М : ДМК Пресс, 2016. 194 с.
17. Рейтц К., Шлюссер Т. Автостопом по Python. Санкт-Петербург : Издательский дом «Питер», 2017. 308 с.
18. Фёрстер Э., Рёнц Б. Методы корреляционного и регрессионного анализа. М.: Финансы и статистика, 1981. 302 с.
19. Шолле Ф. Глубокое обучение на Python. Санкт-Петербург : Питер, 2018. 400 с.
20. Adawadkar K. Python Programming - Applications and Future // International Journal of Advance Engineering and Research Development. 2017. P. 1-4.
21. Albalooshi F., Mahmood A. A Comparative Study on the Effect of Multiple Inheritance Mechanism in Java, C++, and Python on Complexity and Reusability of Code // International Journal of Advanced Computer Science and Applications (IJACSA). 2017. P. 33-37.
22. Beazley D.M. Python Essential Reference. Boston : Addison-Wesley Professional, 2009. 717 с.
23. Ekmekci B., McAnany C.E., Mura C. An Introduction to Programming for Bioscientists: A Python-Based Primer // PLOS Computational Biology. 2016. P. 110-114.
24. Fua P., Lis K. Comparing Python, Go, and C++ on the N-Queens Problem // Computer Vision Laboratory, EPFL. 2020. P. 18-19.
25. Muller E., Bednar J.A., Diesmann M., Gewaltig M., Hines M. Python in neuroscience // Frontiers in Neuroinformatics. 2015. P. 165-167.
26. Ozgur C., Colliau T., Rogers G., Hughes Z., Myer-Tyson E. MatLab vs. Python vs. R // Journal of Data Science. 2017. P. 355—372.
27. Peschke R., Nishimura K., Varner G. ARGG-HDL: A High Level Python BasedObject-Oriented HDL Framework // IEEE Transactions on Nuclear Science. 2020. P. 28-30.
28. Rana Y. Python: Simple though an Important Programming language // International Research Journal of Engineering and Technology (IRJET). 2019. P. 1856—1858.