标准差计算——我采用的方法是否正确?我们如何找到 SD 百分比?
Standard deviation calculation - Am I following the right approach? How do we find SD percentage?
我有一个查询,它提供了以下数据。
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
。
- 我是否使用正确的输入计算 SD?只取平均值
上周的和用昨天的计数计算 SD 是
足够?
- 如果是,我们如何计算百分比偏差?
比如昨天的购买量与之前的相比有5%或-2%的偏差
上例中提到的前一周平均值。
- 如果没有,请告诉我正确的方法来想出正确的方法
偏差百分比。我可以更改查询以拉取额外的
如果需要,请提供详细信息。
提前致谢。
我想你想要的是找出昨天的计数与上周的平均值的偏差。这基本上是 (yesterdayCount - (sumOfLastWeekCount/numberOfDaysLastWeek))/(sumOfLastWeekCount/numberOfDaysLastWeek)
这与标准偏差不同,标准偏差主要衡量一系列数据点相对于其平均值的分布程度。(Standard Deviation definition)
我认为您不需要使用 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%
我有一个查询,它提供了以下数据。
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
。
- 我是否使用正确的输入计算 SD?只取平均值 上周的和用昨天的计数计算 SD 是 足够?
- 如果是,我们如何计算百分比偏差? 比如昨天的购买量与之前的相比有5%或-2%的偏差 上例中提到的前一周平均值。
- 如果没有,请告诉我正确的方法来想出正确的方法 偏差百分比。我可以更改查询以拉取额外的 如果需要,请提供详细信息。
提前致谢。
我想你想要的是找出昨天的计数与上周的平均值的偏差。这基本上是 (yesterdayCount - (sumOfLastWeekCount/numberOfDaysLastWeek))/(sumOfLastWeekCount/numberOfDaysLastWeek)
这与标准偏差不同,标准偏差主要衡量一系列数据点相对于其平均值的分布程度。(Standard Deviation definition)
我认为您不需要使用 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%