Введение:

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

В этой статье мы рассмотрим ежемесячный набор данных о розничных ценах на продукты питания, чтобы проанализировать колебания цен в разных штатах Индии и получить представление о наилучшем времени для покупки определенных товаров. Мы будем использовать Python и его популярные библиотеки, такие как pandas, NumPy и matplotlib, для обработки, очистки и визуализации данных.

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

Затем мы приступаем к группировке данных по штатам и вычисляем среднее значение, медиану, стандартное отклонение, минимум и максимум розничной цены для каждого штата. Мы также вычисляем 25-й, 50-й и 75-й процентили и межквартильный диапазон (IQR).

Для обнаружения и удаления выбросов мы используем метод IQR. После очистки данных мы визуализируем распределение розничных цен с помощью коробчатых диаграмм и гистограмм. Мы проводим тесты на нормальность, такие как тест Шапиро-Уилка, тест Колмогорова-Смирнова и график QQ, чтобы оценить распределение данных.

Затем мы анализируем среднюю розничную цену по товарам в месяц, определяя лучшие месяцы для покупки каждого товара. Мы также изучаем географические различия в розничных ценах, вычисляя среднюю розничную цену в штате по каждому товару.

Наконец, мы изучаем цену в зависимости от региона и времени, чтобы определить лучшее время и регион для покупки конкретных товаров.

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

1. Предварительная обработка данных

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

  • Загрузите данные в pandas DataFrame.
  • Проверьте и обработайте пропущенные значения.
  • Удалите все дубликаты.
  • Рассчитать базовую статистику и описательную статистику

После чистки =›

Показанная статистика описывает распределение розничных цен на продукты в наборе данных. Вот краткое изложение основных статистических данных:

Среднее значение. Средняя розничная цена товаров, равная 83,857629.

Стандартное отклонение (стандартное): стандартное отклонение розничной цены, которое составляет 155,386310. Это измеряет степень изменчивости данных.

Большое стандартное отклонение означает, что данные разбросаны по широкому диапазону, а небольшое стандартное отклонение означает, что данные относительно близки к среднему значению.

  • Min: Минимальная розничная цена товара, равная 0,5.
  • 25-й процентиль: значение, которое отделяет нижние 25% данных от верхних 75%, что составляет 18,0.
  • 50-й процентиль (медиана): значение, которое отделяет нижние 50 % данных от верхних 50 %, что составляет 36,0.
  • 75-й процентиль: значение, которое отделяет нижние 75% данных от верхних 25%, что составляет 85,0.
  • Max: Максимальная розничная цена продуктов, которая составляет 20045,0.

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

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

В данном случае это означает, что в данных имеется большое количество значений, которые значительно выше или ниже большинства значений.

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

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

Новые измерения со стандартным отклонением ниже, чем раньше

Как мы видим, удаление выбросов оказывает значительное влияние на блочную диаграмму (ниже). Наличие выбросов может исказить представление данных и затруднить понимание распределения значений. Удаляя выбросы, ящичковая диаграмма становится более репрезентативной для базового распределения данных, и становится легче увидеть диапазон, медиану и разброс данных. IQR также становится более значимым, поскольку он рассчитывается на основе значений, не являющихся выбросами, что обеспечивает лучшую оценку разброса данных.

2. Преобразование данных

Как только выбросы будут удалены, мы сохраним очищенные данные в новый файл CSV, а затем выполним следующие преобразования: Создадим гистограмму розничных цен. Выполните тесты на нормальность, такие как тест Шапиро-Уилка, график QQ и тест Колмогорова-Смирнова.

2.1 Создание гистограммы розничных цен

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

Значение асимметрии 1,58 означает, что распределение розничных цен имеет положительную асимметрию, что указывает на то, что дешевых товаров больше, чем дорогих. В частности, хвост распределения длиннее справа (т. е. в направлении более высоких цен), чем слева. Это видно на гистограмме, где большая часть данных сосредоточена слева, а справа меньше наблюдений. Чем больше значение асимметрии, тем более асимметрично распределение.

2.2 Тест на нормальность

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

График QQ (график Quantile-Quantile) сравнивает распределение данных с нормальным распределением. Если точки падают на прямую линию, это говорит о нормальном распределении данных. В данном случае нет никакого выравнивания, с возможными выбросами. Мы можем заметить, что набор данных не является нормальным.

Кроме того, тест Колмогорова-Смирнова (тест КС) — это непараметрический тест, который используется для сравнения выборочного распределения с заданным распределением вероятностей. В случае проверки на нормальность указанное распределение является нормальным распределением с тем же средним значением и стандартным отклонением, что и выборочное распределение.

Тест KS работает путем сравнения эмпирической кумулятивной функции распределения (ECDF) выборочных данных с кумулятивной функцией распределения (CDF) указанного распределения. ECDF — это ступенчатая функция, которая показывает долю точек данных, которые меньше или равны заданному значению. CDF — это непрерывная функция, которая показывает вероятность того, что случайная величина меньше или равна заданному значению.

Статистика теста KS, обозначаемая D, представляет собой максимальное расстояние по вертикали между ECDF и CDF:
D = max|F(x) — S(x)|
, где F(x) — CDF указанного распределения, S(x) — это ECDF выборочных данных, а max представляет собой максимальное значение абсолютной разницы между двумя функциями.

Нулевая гипотеза теста KS заключается в том, что данные выборки взяты из указанного распределения. Альтернативная гипотеза состоит в том, что данные выборки не взяты из указанного распределения.

Чтобы выполнить тест KS, нам сначала нужно рассчитать ECDF выборочных данных и CDF указанного распределения. Затем мы можем рассчитать статистику теста KS, D и соответствующее значение p. Значение p — это вероятность получения тестовой статистики, столь же экстремальной, как и наблюдаемое значение, или более экстремальной, при условии, что нулевая гипотеза верна. Если p-значение меньше выбранного уровня значимости (обычно 0,05), мы отклоняем нулевую гипотезу и делаем вывод, что данные выборки не взяты из указанного распределения.

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

Наконец, тест Шапиро-Уилка. Это широко используемый статистический тест для оценки нормальности выборки данных. Тест основан на сравнении наблюдаемого распределения данных и теоретического нормального распределения. Нулевая гипотеза теста Шапиро-Уилка состоит в том, что данные поступают из нормального распределения. Если тестовая статистика близка к 1, а p-значение больше заданного уровня значимости (например, 0,05), мы можем принять нулевую гипотезу, что означает, что данные можно считать нормально распределенными.

Вот краткое объяснение теста:

  1. Выборка данных сначала сортируется в порядке возрастания.
  2. Вычисляются среднее значение и стандартное отклонение выборки.
  3. Набор коэффициентов, обозначенный как «а», рассчитывается из статистики ожидаемого порядка нормального распределения.
  4. Тестовая статистика W рассчитывается по следующей формуле:
  5. W = (Σ ai * (xi — среднее))² / Σ (xi — среднее)²
  6. где xi — отсортированные значения данных, ai — рассчитанные коэффициенты, а mean — выборочное среднее.
  7. Значение W находится в диапазоне от 0 до 1. Значение, близкое к 1, указывает на то, что выборка следует нормальному распределению, а значение, близкое к 0, предполагает отклонение от нормальности.
  8. Рассчитывается p-значение для тестовой статистики. Если p-значение меньше заданного уровня значимости (например, 0,05), мы отклоняем нулевую гипотезу и делаем вывод, что данные не получены из нормального распределения.

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

3 — Анализ данных и выводы

Мы проанализируем данные, чтобы получить представление и ответить на различные вопросы:

  • Рассчитайте среднюю розничную цену по товару в месяц.
  • Определите лучшие месяцы для покупки каждого товара на основе средней розничной цены.
  • Рассчитайте среднюю розничную цену на товар в штате.
  • Определите лучшие регионы и время для покупки каждого товара на основе средней розничной цены.

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

Шаг 1:

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

Шаг 2:

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

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

Шаг 3:

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

Шаг 4:

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

Вывод:

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

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

Счастливые покупки!

Эль Махди Эль Хамри