在R语言中计算几何平均折叠误差的方法求助
在R中计算观测值与预测值的几何平均折叠误差
1. 构建数据集
先确认你的数据集代码(已修正语法细节):
a <- c(1,2,4,2,5,6,3,2,6,8,10,4) b <- c(1.3,3.2,4.4,2.5,1.6,4.5,5.5,2.2,3.1,6.4,3.0,6.3) n <- cbind(a,b) m <- data.frame(n) names(m)[1] <- "Observed M/P" names(m)[2] <- "Predicted M/P"
2. 计算几何平均折叠误差
几何平均折叠误差(GMFE)用于衡量预测值与观测值的偏差程度,核心逻辑是:对每个样本计算观测值与预测值比值的最大值(取观测值/预测值和预测值/观测值中较大的那个),再计算这些值的几何均值。
直接运行以下代码即可得到结果:
# 计算每个样本的折叠误差 fold_errors <- pmax(m[["Observed M/P"]] / m[["Predicted M/P"]], m[["Predicted M/P"]] / m[["Observed M/P"]]) # 计算几何平均折叠误差(两种等价方式) gmfe_method1 <- exp(mean(log(fold_errors))) gmfe_method2 <- prod(fold_errors)^(1/length(fold_errors)) # 输出结果 cat("几何平均折叠误差:", round(gmfe_method1, 4), "\n")
结果说明
计算出的GMFE越接近1,说明预测值与观测值的偏差越小,模型预测精度越高。
内容的提问来源于stack exchange,提问作者Raja
相关产品推荐
相关产品推荐

