如何计算 0 值的加权平均值

How to calculate weighted average for 0 values

我在 excel 中执行加权平均逻辑时遇到问题。
我正在查看不同可交付成果的 4 个字段:总计、完成、待定和重量。

特定可交付成果的加权平均值计算如下:(Complete/Total) * 权重,例如 ((5/10) * 0.20) = 10%

对于每个可交付成果,我都计算了百分比,然后将所有百分比加在一起。

可交付成果 1 - 10 = 10% + 20% + 5% + .... = 65%

我的问题是:
如果对于特定的可交付成果,可用字段为 'Not Applicable' 或“0”,则该可交付成果的加权平均值将为 0%。到那时,总数将偏低。那么,有没有更好的方法来表示这个?我该如何解决这个问题?

好的,如果我理解正确的话,你说的是以下内容:

(complete/total) * weight = weighted_average

其中,这是将求和以提供 total_deliverable_value 的众多加权平均值之一。

您有这样一种情况,由于数据问题,此算法对 weighted_average 输出 0%。这是错误地降低了 total_deliverable_value。

选项:

  1. 为缺失数据添加假定值(明确标记为假定值 而不是记录的事实)
  2. 对缺失数据有一个标准权重。例如,所有丢失 数据得到 20%
  3. 获取丢失的数据
  4. 更改计算 total_deliverable_value 的方式,即

而不是:

total_deliverable_value = sum(weighted_average::weighted_average)

使用这样的东西:

total_deliverable_value = sum(weighted_average::weighted_average) / count_of_data_values

其中 count_of_data_values 是您拥有的非缺失数据值的数量。

根据评论更新

您必须更改所有计算的公式。因此,采用 100% 的当前 'perfect' 场景,例如 5x weighted_averages,其中 weighted_average = 0.2 (20%)

您的原始计算结果为:

a) 0.2+0.2+0.2+0.2+0.2 = 1 (100%) 
b) 0.2+NA+0.2+0.2+0.2 = 0.8 (80%)

这表明 a 不如 b(让我们不要争论缺失数据是否意味着那是真的),但是您希望表明实际上它们应该被认为几乎相同。

新计算得出:

a) 1/5 => 0.2 (20%) 
b) 0.8/4 => 0.2 (20%)

因此两者相同total_deliverable_value。如果您想将这些缩放回 100%。这样做:

total_deliverable_value = (sum(weighted_average::weighted_average) / count_of_data_values) * count_of_expect_values

现在我们看起来像这样:

a) ((0.2+0.2+0.2+0.2+0.2)/5)*5 = 1 (100%) 
b) ((0.2+NA+0.2+0.2+0.2)/4)*5 = 1 (100%)

更新:处理不一致的最大值 weighted_averages

以上所有工作都是因为假设所有个体 weighted_average 都具有一致的最大值。例如 5 个值的最大值为 0.2:

[0.2, 0.1, 0.18, 0.08, 0.05]  ==>  61%

因此,我们可以承受丢失一些数据点的代价,并且仍然可以进行计算,使 total_deliverable_value 能够进行比较:

[0.2, 0.1, NA, NA, 0.05]   ==>   58%

但是,如果最大值不一致,比如第一个 weight_average 最大值是 0.5,我们的结果就会中断:

[0.4, 0.09, NA, NA, 0.15]   ==>  106%

其中 100% 应该超出最大值 total_deliverable_value。有一个简单的解决方案。在公式中使用 weighted_average_max 值。我们不再遗漏 40% 的价值,我们遗漏了 20%:

[0.4 (max 0.5), 0.09 (max 0.1), NA (max 0.1), NA (max 0.1), 0.15 (max 0.2)] ==> 80% 

与所有数据点相似的东西进行比较:

[0.4, 0.09, 0.05, 0.03, 0.15] ==> 72%

这是新公式:

total_deliverable_value = (sum(weighted_average::weighted_average) / portion_of_max_values_existing) * total_of_max_values