如何计算 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。
选项:
- 为缺失数据添加假定值(明确标记为假定值
而不是记录的事实)
- 对缺失数据有一个标准权重。例如,所有丢失
数据得到 20%
- 获取丢失的数据
- 更改计算 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
我在 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。
选项:
- 为缺失数据添加假定值(明确标记为假定值 而不是记录的事实)
- 对缺失数据有一个标准权重。例如,所有丢失 数据得到 20%
- 获取丢失的数据
- 更改计算 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