数模竞赛Paid answer

数模竞赛Paid answer

2022年全国大学生数据分析大赛

医药电商销售数据分析

原题再现:

  问题背景
  20 世纪 90 年代是电子数据交换时代,中国电子商务开始起步并初见雏形,随后 Web 技术爆炸式成长使电子商务处于蓬勃发展阶段,目前互联网信息碎片化以及云计算技术越发成熟,电子商务已发展至智慧阶段。电子商务提供了更广阔的环境和市场,使消费者不受时间和空间的限制,随时随地在网上进行交易;电子商务减少了商品流通的中间环节使之更快速的流通并具有更低廉的价格;电子商务也更符合时代的要求,网上购物更能体现出个人的个性化购物过程。药品作为一种特殊商品,其质量优劣关乎人们身体健康与生命安全,医药电商平台蒸蒸日上,网上药店发展空间巨大。随着国家政策的逐步开放与互联网的发展,越来越多的药品可以在网络上购买,为消费者提供了方便。新冠疫情影响下这种情况愈发明显,各大线下药店药物资源紧缺,购买困难,人们转向网上购买药物,这使医药电商进入了更多消费者的视野。各大药企见识到了电子商务的美好前景,纷纷加大力度布局医药电商领域以求快速发展。电商模式与线下零售有所不同,如何更好的经营医药电商成为药企急需解决的问题。
  问题提出
  1.根据附件所给的数据,对所给店铺进行详细分析,考察一共包含多少家店铺,各店铺的销售额占比如何以及求出销售额占比最高的店铺,并进一步分析该店铺的销售情况。
  2.通过处理数据对所有药品进行分析,所包含药品数量与各药品的销售额占比,给出销售额占比最高的 10 个药品,并绘制这 10 个药品每月销售额曲线图。
  3.本文根据所给数据对所有药品品牌进行分析,共包含多少个品牌,各品牌的销售额占比以及对销售额占比最高的 10 个品牌销售情况进行分析,并剖析这10 个品牌销售较好的原因。
  4.根据所给数据进行预测,利用时间序列预测模型对天猫维生素类药品未来三个月的销售总额进行预测并绘制出拟合曲线,以评估模型性能和误差。
  5.根据上述问题分析结果,某药企计划将新的维生素品牌进行网络销售,以企业顾问的身份对一家药企设计一份不超过两页纸的电商经营策略。

整体求解过程概述(摘要)

  药品作为一种特殊商品,其质量优劣关乎人们身体健康与生命安全,医药电商平台蒸蒸日上,网上药店发展空间巨大。随着国家政策的逐步开放与互联网的发展,越来越多的药品可以在网络上购买,为消费者提供了方便。新冠疫情影响下这种情况愈发明显,各大线下药店药物资源紧缺,购买困难,人们转向网上购买药物,这使医药电商进入了更多消费者的视野。本文针对从医药电商搜集的维生素药品销售大数据展开分析讨论。
  针对问题一,构建了分类变量销售额的计算方法,结果显示总共有 26 家店铺,其中阿里健康大药房的销量最高。针对阿里健康大药房从销售额、折扣力度、主营产品等多角度对其展开了分析,并研究为何该药店能成为销量王的原因。
  针对问题二,构建了文本信息提取算法,利用 R 提取了每次销售记录对应的药品类型,并使用第一问中的分类变量销售额的计算方法得出药品类型销售数据。结果显示,总共拥有 307 种药品,其中复合维生素的销量最高,并得出了销量排名前 10 的药品。利用 Origin 绘制了这 10 款药品的时序图,并针对销量数据的走势展开了详细分析。
  针对问题三,将第一问和第二问的两种算法结合,结果显示总共拥有 566款品牌,并通过可视化技术分析了十强品牌的销售数据。从品牌理念、品牌促销、品牌商品等角度分析了十强品牌成功的原因。
  针对问题四,利用第一问构建的算法,生成 24 个月的销售额数据。通过单位根检验得出一阶差分后的数据为平稳序列。利用 ARIMA 时间序列模型对未来3 个月的销售额进行预测,通过最优滞后选择得出构建 AR(1,2)模型为最优预测结果。通过模型定阶、参数估计检验、残差检验、拟合优度检验对该时间序列进行了检验。最终结论显示,未来三个月的维生素产品销量会稳步上升,且第1-2 月的涨幅小于 2-3 月的涨幅,并从新冠疫情、垃圾分类、环境污染、药品需求等角度分析了维生素药品未来需求量为何会上升,以及对生产商、电商销售方、消费者三大人群提供了应对未来三个月维生素销量上升的一系列对策。
  针对问题五,对前述四个问题的分析做出了汇总,从产品适合的标题名称、品牌理念的设计、促销活动折扣力度的推出等方面综合设计了新品牌的电商营销策略。该策略与市场营销中的 4p 策略相结合,同时大胆创新,为开拓中国的跨境电商市场提供了一定的跨境零售策略,使得该策略的盈利途径更加升华。

模型假设:

  (1)假设所有分类结果均为标准结果。
  (2)假设药品销售期间厂家未受到外界因素干扰,能够正常每月生产。
  (3)假设药品的折扣程度在当月不会发生变化。
  (4)假设未明确给出品牌产品的品牌为商品名称。
  (5)假设药品的销售情况跟时间有关的。

问题分析:

  问题 1 分析
  根据题目要求本问题需要解决两个主要的问题,首先对原始数据集中的所有店铺情况进行分析,在此过程中找出销售额占比最高的一家店铺,并针对这家店铺的销售情况进行分析。首先对数据进行预处理发现,原始数据中仅给出了销量、单价和折扣,并未给出销售额。因此,首先利用 R 中的 c 函数,将对应的折扣变化为可计算数值,再生成销售额变量(销量单价折扣)。针对问题的前半部分,可使用 R 中的 tapply 函数,控制店铺名称(shop_name)变量,以此为标准对店铺销售额进行求和。输出的结果中可以看到各店铺的销售总额,同时也可以观察到数据集中包含的店铺数量。随后,利用 R 中的scales::percent 函数分别计算出每家店铺销售额所占百分比,并得出销售额占比最高的店铺。最后,利用 Origin 软件对输出结果进行可视化。通过上述问题的解决,能够得出销售额最大的店铺。为了能够更加全面地分析该店铺的销售情况,本文决定从时间、折扣、产品类型三大角度分析销售情况。在时间层面可以利用 R 中的 stringr 包,将原始数据中的 date 划分为年份和月份,再使用 if 函数将月份生成对应的季度,从年份、月份、季度的销售额进行对比。在折扣层面,再次利用 R 中的 tapply 函数,分类计算不同折扣对应的销售额。以上两个层面的计算结果同样可以通过 Origin 软件进行可视化。在产品类型层面,可根据不同产品的标题,通过 Python 绘制词云图,分析该家店铺主要出售的药品类型。
  问题 2 分析
  根据题目要求本问题需要解决两个主要的问题,首先对原始数据集中的所有药品种类进行分析,并在此过程中计算出各药品销售额占比,绘制出销售额占比最高的 10 个药品每月销售额曲线图。针对问题的前半部分,通过参数变量(parameter)提取字段中包含的药品种类信息可使用 R 中的 qdapRegex 包,并利用 sink()函数将按条件筛选出的结果保存至文件中,对输出结果进行进一步整合得出数据中所包含的药品种类。分析出药品种类后,可再次利用第一问中构建的分类销售额计算方法,首先以药品种类为分类标准,计算出所有药品的销售额,并得出百分比和排名。将该结果使用Origin 软件可视化后可以得出销售额前十的药品。通过上述问题的解决,利用 R 中的 filter 功能依次筛选出排名前 10 的药品,并以 date_time 为标准依次计算出 10 类药品在每个月的销售情况,输出结果后利用 Origin 软件可视化 10 类商品的销售数据。
  问题 3 分析
  本题目要求针对不同品牌的销售情况进行分析,根据对原始数据分析发现,品牌信息同样未明确给出,需要从 parameter 列中进行信息提取。因此,可以使用第 2 问中提出的方法,使用 R 中的 qdapRegex 包,并利用 sink()函数筛选出产品对应的品牌信息。获取产品的品牌信息后,继续利用第 1 问中提出的分类销售额计算方法得出每种品牌的销售数据并排序出销售额前 10 的品牌。完成上述处理后需要对排名前 10 的品牌展开详细分析,同样利用问题 2 中的方法利用 R 中的 filter 功能与 tapply 函数计算出排名前 10 的品牌分月销售数据,为了能够更加全面地分析这 10 款品牌为何销售良好,还可以根据分月销售数据绘制时序图辅助分析。针对品牌成功的原因,直观层面可以从品牌定价以及品牌折扣角度进行分析,除此之外,还可以搜集该品牌的营销模式、广告投放方式、品牌经营理念等,从品牌营销的角度综合说明这 10 款品牌销售情况良好的原因。
  问题 4 分析
  本题目需要对维生素药品未来三个月的销售数据进行预测,很明显本题目需要使用预测模型对销售数据进行预测。题目中的基本信息已经得出,搜集到的所有数据均为维生素类数据,因此不再考虑数据筛选问题。首先使用第一问中构建的算法,以 date_time 为分类标准,分别计算出每月的销售数据,总共能够得出24 个月的销售情况。很明显,这是典型的时间序列,因此通过时间序列模型进行未来销量的预测。在解决此问题的过程中,首先需要考虑销售额序列是否为平稳序列,因此可以使用单位根检验方法对数据进行处理,若数据无法通过检验,可以继续进行高阶差分使得数据平稳。最后,利用 SAS 软件再对数据集的拟合程度、模型的性能和误差进行判断。
  问题 5 分析
  本题为开放性题目,需要对新产品的网络销售撰写经营策略。首先该题目是对前四问的精华汇总,可以根据前文提出的价格、销量、折扣情况,药品类型销售情况,品牌类型销售情况以及未来 3 个月的销售数据预测给出经营策略。除此之外,本题应从市场营销和电子商务角度进行策略提出,从 4p 理论角度给出商家合适的价格、销售渠道、营销方式、产品定位,以及电商首图、详情页的制作方法和产品标题、关键词 sku 的创新方法。最后,随着后疫情时代的到来,国际贸易将逐步回归到疫情前的状态,近年来阿里巴巴推出的跨境零售 B2C 平台速卖通也越发普遍,因此在策略中可以大胆创新,提出跨境电商营销的方案策略,将维生素产品面向海外客户提供针对性策略,使得商家的盈利途径大幅度拓宽。

模型的建立与求解整体论文缩略图

2022年全国大学生数据分析大赛医药电商销售数据分析求解全过程论文及程序-LMLPHP
2022年全国大学生数据分析大赛医药电商销售数据分析求解全过程论文及程序-LMLPHP

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

部分程序如下:
data<-read.csv("/Users/caowenyi/Desktop/types.csv") #导入数据集
data$discount = c('9折'="0.9",'8.5折'="0.85",'9.5折'="0.95",'1'="1")[ as.character(data$discount)] #将折扣转化为可计算变量
data$discount = as.numeric(data$discount) #将折扣变为数值型变量
data$sold = as.numeric(data$sold) #将销售量变为数值型变量
data$revenue <- data$price * data$sold * data$discount #生成一列新变量为销售额=单价*销量*折扣
a <- tapply(data$revenue,data$types,sum) #按照药品类型为分类标准计算销售额
a1 <- as.data.frame(a)
a1
percentage <- scales::percent(a1$a / sum(a1$a)) #计算百分比,利用scales包的percent()函数,将计算的小数比例转换成百分数
percentage
re1 = data %>% filter(types=="复合维生素")
tapply(re1$revenue,re1$date_time,sum) #按照时间为分类标准计算复合维生素销售额
re2 = data %>% filter(types=="维生素C咀嚼片")
tapply(re2$revenue,re2$date_time,sum) #按照时间为分类标准计算维生素C咀嚼片销售额
re3 = data %>% filter(types=="维生素D滴剂(胶囊型)")
tapply(re3$revenue,re3$date_time,sum) #按照时间为分类标准计算维生素D滴剂(胶囊型)销售额
re4 = data %>% filter(types=="维生素E软胶囊")
tapply(re4$revenue,re4$date_time,sum) #按照时间为分类标准计算维生素E软胶囊销售额
re5 = data %>% filter(types=="维生素D柠檬酸钙")
tapply(re5$revenue,re5$date_time,sum) #按照时间为分类标准计算维生素D柠檬酸钙销售额
re6 = data %>% filter(types=="复合多种维生素")
tapply(re6$revenue,re6$date_time,sum) #按照时间为分类标准计算复合多种维生素销售额
re7 = data %>% filter(types=="维生素D滴剂")
tapply(re7$revenue,re7$date_time,sum) #按照时间为分类标准计算维生素D滴剂销售额
re8 = data %>% filter(types=="维生素C泡腾片")
tapply(re8$revenue,re8$date_time,sum) #按照时间为分类标准计算维生素C泡腾片销售额
re9 = data %>% filter(types=="钙片维生素d")
tapply(re9$revenue,re9$date_time,sum) #按照时间为分类标准计算钙片维生素d销售额
re10 = data %>% filter(types=="多维元素片")
tapply(re10$revenue,re10$date_time,sum) #按照时间为分类标准计算多维元素片销售额
#第二题
install.packages("qdapRegex")
options(max.print = 1000000)
library(tidyverse)
head(data)
data$gang<-c('||')#在parameter后加入||便于识别
data$parameter<-str_c(data$parameter,data$gang)#合并
data<-data[,-11]#删除||
sink("C:/Users/caowenyi/Desktop/药品种类汇总.txt", split=TRUE)
c=qdapRegex::ex_between(data$parameter, c("系列:","药品通用名:","药品名称:", "产品名称:"), c("||","||", "||","||"))
c
sink()
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
12-05 07:36