加权均方根误差

机器算法验证 r 有效值
2022-04-06 22:04:08

我有两个模型可以预测基于区域的值。我想测量 RMSE 以比较模型,但我希望它对面积进行加权,以便大面积上的误差比小面积上的误差赋予更大的权重。我在R中提出了以下功能:

weighted.rmse <- function(actual, predicted, weight){
  sqrt(mean((predicted-actual)^2*weight/sum(weight)))
}

对于重量,我将使用预测区域。所以对于我的问题,这是一种有效的模型比较方法吗?有没有更好的办法?

3个回答

正如whuber在评论中已经注意到的那样,您的权重设置程序是否有效尚不清楚。请注意,在非加权 RMSE 中,较大的区域已经对估计值具有更大的权重,因为它们更大,因此它们在您的数据中出现的频率更高。这就是为什么正如所建议的那样,人们宁愿降低这些亚群的权重,以便最终估计更均匀地对待所有亚群。

但是,如果您想使用加权 RMSE,那么请回想一下,RMSE 在设计上非常接近标准差,那么为什么不看看如何计算加权方差呢?

σ2=i=1nwi(xix¯)2

其中权重为非负且同样,您可以将加权 RMSE 作为i=1nwi=1

RMSE=i=1nwi(x^ixi)2

请注意,我们采用加权差的总和,而不是平均值未加权均值与权重均等于的加权均值相同,因此如果采用算术均值,则类似于第二次将 RMSE 除以wi=1/nn

还要检查:
加权方差,再一次

这是一个非常古老的线程,但我会改变大卫迪克森的功能如下。

weighted.rmse <- function(actual, predicted, weight){
    sqrt(sum((predicted-actual)^2*weight)/sum(weight))
}

蒂姆的答案仅在权重总和为 1 时才有效,但此函数对其进行了概括,因此它对任何(非标准化)权重集都有效。

如果您不介意阅读,我建议您查阅 Lohr的Sampling: Design and Analysis或 Thompson 的Sampling,以获取有关均方误差 (MSE) 的基于模型的加权方案的示例。我相信您可以通过简单的 Google 搜索在线找到副本。由于您的数据似乎涉及区域(位置),因此我建议您查看 Sampling 中有关 Spatial Sampling 的章节

请注意,您应该尝试了解您的数据是如何采样(获取)的,因为这会影响权重。