我有一个查询,它提供给我以下数据。
item_name, total_purchase_count_per_week, previous_day_purchase_count.为了前夫,
iPhone , 4800, 200
Samsung, 3000, 470
Moto, 1700, 80现在,我有兴趣知道昨天的采购与前一周的每一项采购有多大的偏差。
例如:
5%,这意味着昨天的购买量高于前一周,偏差为5%。-11%,这意味着昨天的购买量低于前一周,偏差为-11%。这就是我试过的:
我编写了一个java方法,它将avg(total_purchase_count_per_week)和previous_day_purchase_count作为SummaryStatistics的输入,并计算SD和方差。
SummaryStatistics txnCountSummary = new SummaryStatistics();
txnCountSummary.addValue(totalCount);
txnCountSummary.addValue(avgCountPWeek);
Double sd = txnCountSummary.getStandardDeviation();在这个案例中,SummaryStatistics采用了685 (即前一周的4800/7 -平均计数)和200 (昨天的统计)给我的SD作为342.94。
提前谢谢。
发布于 2019-10-07 16:31:15
我想你想要的是找到昨天的计数与上周的平均值的偏差。这基本上是,(yesterdayCount - (sumOfLastWeekCount/numberOfDaysLastWeek))/(sumOfLastWeekCount/numberOfDaysLastWeek)
这与标准差不同,标准差主要是衡量一系列数据点之间相对于平均值的利差程度(标准差定义)。
发布于 2019-10-14 10:23:50
我不认为您需要使用SummaryStatistics来实现这一点。有一个简单的计算。你只需要这样的东西:
lastWeekMedian = total_pruchase_count_per_week / 7;
difference = previous_day_purchase_count - lastWeekMedian; // this can be positive or negative
sd = (100*difference)*1./lastWeekMedian; // your variables should be double/float.
System.out.print(sd + "%"); // print value; for example: 34%;基本上,此代码计算前一天计数和最后一周中位数计数的差异。然后,我们计算这一差异在百分比中的含义。
例如:
If 50 Iphones sold means ..... 100%
Then 25 Iphones difference means .... x% https://stackoverflow.com/questions/58225024
复制相似问题