Чистые данные, исследование данных с помощью R

Описание данных (Ссылка на набор данных)

Данные относятся к историческим продажам 45 магазинов Walmart, расположенных в разных регионах, с общим количеством наблюдений 537 тыс.
Файл содержит дополнительные данные, связанные с деятельностью магазина, отдела и региона в указанные даты, а также характеристики магазинов Walmart, такие как скидки, которые предшествуют важным праздникам, четыре крупнейших из которых – Суперкубок, День труда и День благодарения. и Рождество.
Недели, включающие эти праздничные дни, оцениваются в пять раз выше, чем недели без праздничных дней.

Данные содержат следующие признаки:
● Магазин — номер магазина
● Дата — неделя
● Температура — средняя температура в регионе
● Fuel_Price — стоимость топлива в регион
● MarkDown1–5 — анонимные данные о рекламных скидках, которые проводит Walmart. Данные MarkDown доступны только после ноября 2011 г. и доступны не для всех магазинов постоянно. Любое отсутствующее значение помечается NA.
● ИПЦ — индекс потребительских цен
● Безработица — уровень безработицы
● IsHoliday — является ли неделя праздничной неделей

Импорт данных

walmart_train ‹- read_csv('Walmart_trainig_file.csv')

Чистые данные

colSums(is.na(walmart_train)) #проверить отсутствующее значение
walmart_train[is.na(walmart_train)] ‹- 0 #заполнение отсутствует в уценке

  1. Только Markdown имеет отсутствующее значение
  2. N/A в Markdown означает, что на этой неделе у Walmart не было скидки. Поэтому мы используем 0, чтобы заполнить отсутствующее значение.

Еженедельные продажи по категориям

walmart_train$sales_class[Weekly_Sales ‹ 0] ‹- 'Отрицательный'
walmart_train$sales_class[Weekly_Sales ›=0 & Weekly_Sales ‹ 10000] ‹- 'Низкий'
walmart_train$sales_class[Weekly_Sales ›=10000 & Weekly_Sales ‹ 25000] ‹- «Средний»
walmart_train$sales_class[Weekly_Sales ›=25000 & Weekly_Sales ‹ 100000] ‹- «Высокий»
walmart_train$sales_class[Weekly_Sales ›=100000 ] ‹- «Очень высокий»

ggplot(walmart_train, aes(sales_class)) +
geom_bar(fill=2) +
geom_text(stat='count',aes(label = ..count..), vjust = -0.5 )

Исследование данных

Наблюдение за взаимосвязью между независимыми переменными и Weekly_Sales

Отдел x Weekly_Sales

Dept_sales_‹-group_by(walmart_train,Dept)
(Dept_sales‹-summarize(Dept_sales_,count=n(),max(Weekly_Sales)))

(Отдел_продаж‹- совокупный(walmart_train[,'Еженедельные_продажи'], by=walmart_train[,c('Отдел')],макс.))

ggplot(Dept_sales, aes(Dept, Weekly_Sales, group=1))+
geom_point()+ geom_line() + ggtitle('Max')+
theme(plot.title = element_text(size = 30) , face = “bold”,vjust=-14, hjust = 0,05))+scale_x_continuous(breaks = seq(0,100, by=5))
# max можно изменить на значение #vjust垂直距離 # hjust左右距離

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

Несмотря на этот факт, учитывая средние недельные продажи по отделам, у отдела 92 был самый высокий средний недельный объем продаж — 75 204,87 $. Это явление объясняется тем, что отдел 92 — это продуктовый отдел, который продает все время в течение всего года, так что у него самый высокий средний объем продаж.

Введите x Weekly_Sales

Согласно веб-сайту Walmart, в Walmart есть три типа магазинов, например, Supercenter, который является основой империи Walmart. Средний размер суперцентра составляет 179 000 квадратных футов, а магазины предлагают как товары, так и продукты. Также есть магазины Walmart Express площадью 15 000 квадратных футов или Discount Store со средним размером 105 000 квадратных футов. Эти магазины обычно не предлагают продукты и открыты только 14 или 15 часов в день и каждый день.

Type_sales_‹-group_by(walmart_train,Type)
(Type_sales‹-summarize(Type_sales_,count=n(),mean(Weekly_Sales),mean(Size)))

ggplot(walmart_train, aes(Store, Weekly_Sales, color = Type)) + geom_point() + facet_wrap(~Type)

#Size может быть и другим переменным (температура, fuel_price… и т. д.)

walmart_train ‹- walmart_train%›%
mutate(month = month(Date,abbreviate = T)) #(T = март, F = март)

Очевидно, что для каждой переменной магазин типа А всегда имеет много продаж, и в соответствии со средним размером каждого типа мы можем указать, что магазин типа А является суперцентром. Более того, мы уже знаем, что топ-4 высоких продаж произошли в Dept 72 с магазинами типа B, которые продают электронные вещи, и все они произошли в ноябре, после проверки даты мы можем убедиться, что кто-то купил много по высокой цене. электронные товары во время черной пятницы. Итак, мы указываем, что магазин типа B является магазином со скидкой. В конце концов, Type C — это экспресс-магазин.

Магазины x Weekly_Sales

Store_sales_‹-group_by(walmart_train,Store)
(Store_sales‹-summarize(Store_sales_,count=n(),mean(Weekly_Sales)))

(store_sales‹- совокупный(walmart_train[,'Еженедельные_продажи'], by=walmart_train[,c('Магазин')],среднее))

ggplot(store_sales, aes(Store, Weekly_Sales, group=1))+
geom_point()+ geom_line() + ggtitle('Среднее значение')+
theme(plot.title = element_text(size = 30) , face = “bold”,vjust=-14, hjust = 0,98))+scale_x_continuous(breaks = seq(0,100, by=5))
# среднее значение можно изменить на максимальное

Принимая во внимание средние еженедельные продажи по магазинам, магазин 20 имеет самые высокие продажи в размере 29508,30 и относится к типу А. Если мы сосредоточимся на 10 лучших магазинах с высокими продажами, мы обнаружим, что девять из них относятся к типу А. тип Б

Месяц x Weekly_Sales

Суперкубок: 12 февраля 2010 г., 11 февраля 2011 г., 10 февраля 2012 г., 8 февраля 2013 г.

День труда: 10-сен-10, 9-сен-11, 7-сен-12, 6-сен-13

День Благодарения: 26 ноября 2010 г., 25 ноября 2011 г., 23 ноября 2012 г., 29 ноября 2013 г.

Рождество: 31 декабря 2010 г., 30 декабря 2011 г., 28 декабря 2012 г., 27 декабря 2013 г.

ggplot(walmart_train, aes(month,Weekly_Sales)) + geom_point() +scale_x_discrete(limits = month.abb)

Очевидно, что в ноябре и декабре больше продаж из-за Дня Благодарения, Рождества и Нового года.

(ежемесячные_продажи‹- совокупный(walmart_train[,'Еженедельные_продажи'], by=walmart_train[,c('месяц')],среднее))

ggplot(monthly_sales, aes(month, Weekly_Sales, group=1))+
geom_point() + geom_line()+ ggtitle('Среднее значение')+
theme(plot.title = element_text(size = 30) , face = “bold”,vjust=-14, hjust = 0,05))+ scale_x_discrete(limits = month.abb)
#mean можно увеличить до максимума

Если мы упорядочим данные по weekly_sales, мы обнаружим, что все 8 самых высоких продаж произошли в День Благодарения, но когда мы вычислим среднее значение, мы обнаружим, что в декабре было больше продаж. Думаю, потому что период локации в декабре дольше. (Рождество, Новый год и зимние каникулы). В противном случае День Благодарения — единственный праздник в ноябре.

Размер x Weekly_Sales

hist(Size)
ggplot(walmart_train, aes(Size, fill = sales_class)) + geom_density(alpha = 0.4) + facet_wrap(~sales_class)

Ищем нижний график и фокусируемся на «Низких продажах», многие из них маленькие, но когда мы фокусируемся на средних, высоких и очень высоких продажах, мы можем обнаружить, что количество магазинов большого размера очень много. Для магазинов с очень высокими продажами, даже большая часть их размера около 20000. Я могу указать, что размер магазина является важной переменной для недельных продаж.

ggplot(walmart_train,aes(Size,Weekly_Sales))+geom_point()
ggplot(walmart_train, aes(Size, Weekly_Sales)) + geom_smooth()

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

Температура x Weekly_Sales

hist(Temperature)
ggplot(walmart_train,aes(Temperature, fill=sales_class)) + geom_density(alpha = 0.4) + facet_wrap(~sales_class)

walmart_train$Tempclass[Температура ‹ 32] ‹- 'Замораживание'
walmart_train$Tempclass[Температура ›= 32 & Температура ‹ 64] ‹- 'Холодный'
walmart_train$Tempclass[Температура ›= 64 & Температура ‹ 79] ‹- «Комфортно»
walmart_train$Tempclass[Температура ›= 79 и температура ‹ 95] ‹- «Жарко»
walmart_train$Tempclass[Температура › 95 ] ‹- «Очень жарко»

ggplot(walmart_train, aes(Temperature,Weekly_Sales)) +
geom_point()

Tempclass ‹- as.factor(Tempclass)
(Tempcals_sales ‹-aggregate(walmart_train[,'Weekly_Sales'], by=walmart_train[,c('Tempclass')],mean))
ggplot(Tempcals_sales , aes(Tempclass, Weekly_Sales, group=1))+
geom_point() + geom_line() + geom_text(aes(label = Weekly_Sales), vjust = -0,5)

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

Fuel_Price x Weekly_Sales

hist(Fuel_Price)
ggplot(walmart_train,aes(Fuel_Price, fill=sales_class)) + geom_density(alpha = 0.4) + facet_wrap(~sales_class)

Распределение данных по разным классам продаж примерно одинаковое, цены на топливо в большинстве магазинов находятся в интервале между 2,6~3,0 и 3,5~3,8.

walmart_train$Fuel_class[Fuel_Price ‹ 3] ‹- 'Низкий'
walmart_train$Fuel_class[Fuel_Price ›= 3 & Fuel_Price ‹ 3.7 ] ‹- 'Средний'
walmart_train$Fuel_class[Fuel_Price ›= 3.7 ] ‹- 'Высокий'

ggplot(walmart_train, aes(Fuel_Price,Weekly_Sales)) +
geom_point()

(Fuelclass_sales ‹-aggregate(walmart_train[,'Weekly_Sales'], by=walmart_train[,c('Fuel_class')],mean))
ggplot(Fuelclass_sales, aes(Fuel_class, Weekly_Sales, group=1))+
geom_point() + geom_line() + geom_text(aes(label=Weekly_Sales), vjust =1)+scale_x_discrete(limits=c('Низкий','Средний','Высокий'))

Если разделить их на три класса, то будет понятнее, что магазины со средними ценами на топливо (3~3,7) имеют больше продаж. Мы не думаем, что Fuel_Price имеет сильную связь с weekly_sales, потому что, когда мы фокусируемся на точечной диаграмме, распределение становится довольно равномерным. Из-за Дня Благодарения и Рождества суммы некоторых транзакций настолько высоки, и именно по этой причине линейный график выглядит так.

Уценка x месяц x праздничные дни

walmart_train$MarkDown5=as.numeric(walmart_train$MarkDown5)
walmart_train$MarkDown4=as.numeric(walmart_train$MarkDown4)
walmart_train$MarkDown3=as.numeric(walmart_train$MarkDown3)
walmart_train$ MarkDown2=as.numeric(walmart_train$MarkDown2)
walmart_train$MarkDown1=as.numeric(walmart_train$MarkDown1)

ggplot(walmart_train, aes(month, MarkDown1)) + geom_point() +
ggtitle('MarkDown1') +
theme(plot.title = element_text(size = 20, face = “жирный”, vjust =-14, hjust = 0,5))+scale_x_discrete(limits = month.abb)

Markdown 1 и Markdown 4 в основном предлагаются в феврале, марте и августе, и большинство из них предлагается в непраздничные дни. Эта скидка, возможно, связана с сезоном Суперкубка, Днем матери и сезоном возвращения в школу.

Markdown 2 предлагается в основном во время декабрьских праздников и января, но также имеет свои пики в ноябре. Эта скидка, возможно, связана с Рождеством и Новым годом.

Уценка 3 предлагается только во время праздников ноября и декабря. Возможно, эта скидка связана с Днем Благодарения.

Уценка 5 в основном предлагается в непраздничный сезон.

Праздничные x Еженедельные_распродажи

ggplot(walmart_train, aes(Fuel_Price,Weekly_Sales)) + geom_smooth(aes(color=IsHoliday))
# Fuel_Pirce можно изменить на любую другую переменную, такую ​​как CPI, Store, Size… и так далее.

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