电商数据分析案例研究

在上周的案例研究中,探讨了如何运用逻辑和商业理解来解决问题。是否也觉得这很令人兴奋呢?上一周的案例研究收到了热烈的反响,认为应该继续。在解决这个案例之前,请务必查看上周的案例研究。

这个案例研究是最喜欢的之一,因为它涉及到现实生活中的实际应用。在解决这个案例时所做的计算,正是现实生活中经常发生的。因此,这不仅仅是数学问题,也是实际问题。对于有经验的职位来说,类似的案例研究经常出现在工作面试中。所以,请尽最大的努力去尝试!

这个案例研究的目标是为在线零售商优化产品的价格水平。过度简化了这个案例研究,使其成为一个对所有人,包括在类似行业工作过的人,都相似的平台。使用商业方法和分析方法(使用R语言)解决了这个案例研究。数据集可以在下面下载。

是否正在为下一次数据科学面试做准备?已经将几个类似的案例研究整合到了“数据科学面试全攻略”课程中。确保不要错过!

案例研究

假设是在线杂货店的所有者。在线销售250种产品。一个传统的方法是确定每种产品的价格。这个方法非常简单——将产品的价格定为与市场价格持平。

计划利用分析来确定定价,以最大化收入。在访问网站的100,000人中,只有5,000人最终购买了产品。现在,所有购买的人,都获得了他们的购买模式,包括他们平均购买的单位等。

为了理解价格变化的影响,尝试为每种产品测试不同的价格点。对结果感到惊讶。影响可以分解为两个方面:

较低的价格点增加了购买产品的数量。客户比其他产品更多地比较某些产品的价格点,以决定是否从门户网站购买产品。例如,产品1可能是一个经常使用的产品。如果降低产品1的价格点,那么客户响应率从最初的5%上升到5.2%,此外,客户将购买更多的产品1。

另一方面,降低产品价格显然降低了产品的利润率。现在,想要为每种产品找到最优的价格点,以最大化总利润。在这个案例研究中,提供了一个包含所有250项的表格:

下载数据集

数据集中有以下变量:

  • 平均价格/单位:产品的市场价格
  • 成本/单位:产品当前的成本
  • 平均利润/单位:每单位的利润
  • 平均销售单位:向购买的客户销售的产品单位的平均数量
  • 增量获取:对于每10%的单位价格下降,这是总客户响应率的增加。请注意,最初的总体响应率是5%(5000人中的100,000人进行购买)。被允许最多降低产品价格10%,根据市场法则。
  • 销售量增加:对于产品单位价格每下降10%,这是销量的增加。同样,被允许最多降低产品价格10%,根据市场法则。

注意:允许的最大价格涨幅是20%。所以,产品的价格可以在平均价格/单位周围变化-10%到+20%之间。

数据集的快照

如果计算来到门户网站的客户所获得的利润:

  • 总利润获得:$165

将尝试通过商业方法和分析方法来解决这个案例研究。让开始吧!

在不应用任何技术的情况下解决这个问题,让分析频率分布。利润率:这是每种250种产品的利润率分布。让根据利润率带划分产品。

低利润率:低于10%的利润

中等利润率:10% - 25%的利润

高利润率:25%以上的利润

增量体积:这是每种250种产品的增量体积分布。让将增量体积带分类:

低增量体积:低于2%

中等增量体积:2% - 6%

高增量体积:6%以上

增量获取:这是每种250种产品的增量获取分布。最后,还应该分割增量获取带:

低增量获取:低于0.1%的利润

中等增量获取:0.1% - 0.4%的利润

高增量获取:0.4%以上的利润

让现在讨论定价策略:

到目前为止,为每种产品获得了三个决策属性。定价的极端是-10%和20%。需要为可以带来大量获取增量或高体积增量或两者兼有的人提供-10%。对于其余的,需要通过提高价格+20%来增加利润率。

显然,这是解决这个问题的一个非常简单的方法,但正在获得低挂果实的好处。因为增量获取的平均值是0.4%,知道如果降低高获取增量率的产品的成本,将有显著的增量总销售额,但由于利润率较低,影响较小。

对于中等增量获取,需要根据利润率和增量体积做出决策。所有用绿色标记的单元格将被标记为-10%,其余的为20%的价格增长。这里的决策纯粹是基于直觉,考虑到上面看到的收益驱动因素的基本理解。

现在,如果计算总利润,看到比最初的利润有显著的增长。

  • 总利润获得:$267(增长62%)

让采取一种更分析/数值的方法来解决同样的问题。这是在算法中尝试的:

从每种250种产品的增量销售价格的零向量开始。现在增加/减少每种产品的增量销售价格1%,以查看对总利润的影响。对于利润的增加,保留增量销售。现在从这个向量开始找到进一步的边际增量。

setwd("C:\\Users\\ts93856\\Desktop\\Taxi") data <- read.csv("Bigbasket.csv") dim(data) #250*7 summary(data) # 这是增量向量的初始值 - 全部为零 increment <- array(0,250) flag = 0 increment_i <- increment #flag = 1是当增量向量保持不变时的条件 while (flag == 0) { print(find_rev(increment_i)) increment_iplus1 <- incremental_new(increment_i) if (min(increment_iplus1 == increment_i) == 1) {flag = 1} increment_i <- increment_iplus1 } increment_i find_rev(increment_i) //find_rev(increment) price <- increment_i write.csv(price,"price.csv") #This function tries to get the next best increment vector incremental_new <- function(initial_increments){ initial_rev <- find_rev(initial_increments) intermediate_rev <- 0 for(i in 1:250){ increments <- initial_increments if(increments[i] > -0.099) {increments[i] <- increments[i] - 0.01} rev <- find_rev(increments) if (rev > initial_rev) {final_increments <- increments intermediate_rev <- rev } if(increments[i] < 0.19) {increments[i] <- initial_increments[i] + 0.01} rev <- find_rev(increments) if (rev > max(initial_rev,intermediate_rev)) {final_increments <- increments} } return(final_increments) } # This function will get us the overall revenue for the given increment vector find_rev <- function(increment){ price <- data$Avg_Price_per_unit*(1+increment) volumes <- data$Average_units_sold*(1-(data$Increase_sale_volume*increment*10)) multiplier <- (1-(data$Incremental_acquisition*increment*10)) total_multiplier <- prod(multiplier) profit_wo_multiplier <- 0.05*(sum(price*volumes) - sum(volumes*data$Cost_per_unit)) profit_w_multiplier <- profit_wo_multiplier*total_multiplier net_profit <- sum(profit_w_multiplier) return(net_profit)} Total Profit earned : $310 (88% incremental benefit)
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485