• 1.概述
    平均绝对误差(MAE)、对数平均绝对误差(LMAE)、指数平均绝对误差(EMAE)都是用来描述两条序列间各点的平均偏差程度的,区别在于他们受残差(特别是残差的离群值)的影响程度不同,按影响程度由小到大依次是:LMAE<MAE<EMAE。因为做对数变换会压缩残差,而做指数变换会拉伸残差。将它们用作目标函数时的差别,类似于做最小二乘OLS时,对目标函数SSE的各点做加权操作,使某些偏差点占大权重,某些偏差点占小权重;参见statsmodels.api.WLS(Weighted Least Squares)。

  • 2.下面给出测试代码

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import pearsonrfreq = 'D'
t0 = '2020-01-01'
data_length = 7*10
num_ts = 3
period = 7
fit_series, origin_series = [], []
time_ticks = np.array(range(data_length))
index = pd.date_range(t0, periods=data_length, freq='D')
np.random.seed(0)
level = 10 * np.random.rand()for k in range(num_ts):# generate fitting datanp.random.seed(k+10)seas_amplitude_fit = (0.1 + 0.3*np.random.rand()) * levelsig_fit = 0.05 * level  # noise parameter (constant in time)source_fit = level + seas_amplitude_fit * np.sin(time_ticks * (2 * np.pi) / period)noise_fit = 0.1 * sig_fit * np.random.randn(data_length)data_fit = source_fit + noise_fitfit_series.append(pd.Series(data=data_fit, index=index))# generate origin datanp.random.seed(k+10)seas_amplitude_origin = (0.2 + 0.3 * np.random.rand()) * levelsig_origin = 0.5 * level  # noise parameter (constant in time)source_origin = level + seas_amplitude_origin * np.sin(time_ticks * (2 * np.pi) / period)noise_origin = 0.5 * sig_origin * np.random.randn(data_length)data_origin = source_origin + noise_originorigin_series.append(pd.Series(data=data_origin, index=index))# plot the two contrast seriesplt.figure()fit_series[k].plot()origin_series[k].plot()plt.title('contrast fit_series and origin series')plt.show()def MAE(Y, y):"""param:Y: 原始序列(假定波动较大)y: 拟合序列(假定波动较小)return:MAE值,该值的大小与两条序列间平均偏差程度成正比,该值越大,平均偏差程度越大;两序列间的残差(特别是残差的离群值)对MAE的影响比LMAE大,比EMAE小。"""Y, y = np.array(Y), np.array(y)mae = sum(abs(Y - y)) / len(Y)return maedef LMAE(Y, y, a=np.exp(1)):"""param:Y: 原始序列(假定波动较大)y: 拟合序列(假定波动较小)a: 对数的底数,大于1,作用于换底公式,使所有对数函数为单调递增函数;该值越大,则两序列间的残差(特别是残差的离群值)对LMAE返回值影响的弱化作用越明显。return:对数MAE值,该值的大小与两条序列间平均偏差程度成正比,该值越大,平均偏差程度越大;但两序列间的残差(特别是残差的离群值)对LMAE的影响比MAE小。"""Y, y = np.array(Y), np.array(y)Y[Y < 0] = 0  # 使对数的真数≥1,从而使所有对数值非负,便于统一比较。y[y < 0] = 0lmae = sum(abs(np.log(abs(Y+1)) / np.log(a) - np.log(abs(y+1)) / np.log(a))) / len(Y)return lmaedef EMAE(Y, y, a=1.2):"""param:Y: 原始序列(假定波动较大)y: 拟合序列(假定波动较小)a: 指数的自变量,≥1,该值越大,则两序列间的残差(特别是残差的离群值)对EMAE返回值影响的强化作用越明显;当a=1时,EMAE化简为MAE。return:指数MAE值,该值的大小与两条序列间平均偏差程度成正比,该值越大,平均偏差程度越大;且两序列间的残差(特别是残差的离群值)对EMAE的影响比MAE大。"""Y, y = np.array(Y), np.array(y)Y[Y < 0] = 0  # 使指数的底数≥1,则所有指数均为递增函数y[y < 0] = 0emae = sum(abs((Y+1)**a - (y+1)**a)) / len(Y)return emaea, b, c = [], [], []
for k in range(num_ts):a.append(MAE(origin_series[k], fit_series[k]))b.append(LMAE(origin_series[k], fit_series[k]))c.append(EMAE(origin_series[k], fit_series[k]))
print(' 每对序列的MAE:', '\n', a, '\n', '每对序列的LMAE:', '\n', b, '\n', '每对序列的EMAE:', '\n', c, '\n')
print(' EMAE - MAE', '\n', np.array(c)-np.array(a), '\n', 'MAE - LMAE', '\n', np.array(a)-np.array(b), '\n')
print(' MAE与LMAE间的相关程度:', '\n', pearsonr(a, b), '\n', 'MAE与EMAE间的相关程度:', '\n', pearsonr(a, c), '\n','LMAE与EMAE间的相关程度:', '\n', pearsonr(c, b), '\n')




  • 3.结果分析
    3.1. 从以上三图可以看到,Figure2的平均偏差最小,Figure3的平均偏差最大。
    3.2. 从数值结果也可以看到,每对序列的MAE、LMAE、EMAE,都是第二列数值最小(对应Figure2),第三列数值最大(对应Figure3),与三张图的偏差程度相符。
    3.3. 三对序列的EMAE-MAE均为正,说明EMAE放大了残差;MAE-LMAE均为正,说明LMAE缩小了残差,与公式的作用是相符的。
    3.4. 三对序列的MAE、LMAE、EMAE的相关系数都很高,P值都很小,说明MAE、LMAE、EMAE几乎完全正相关,则三种指标对序列间平均偏差程度的判断结果几乎是完全等效的,采用任何一种均可。
    3.5. 对于r和P值的解释:例如三对序列的MAE与LMAE的r≈99.95%,P-value≈1.97%,说明对于[1.1384901846078306, 1.0264781458259842, 1.3147042766176245] 与[0.19016978075266716, 0.16388341516116947, 0.22711381950612006]这两条序列,从不相关系统中产生线性相关程度为99.95%的这样两条序列的概率为1.97%,而在一次试验中这样小概率的事件是不可能发生的,所以我们拒绝这两条序列是从不相关系统中产生的这一原假设,转而接受这两条序列是线性相关的这一备择假设。

平均绝对误差(MAE)、对数平均绝对误差(LMAE)、指数平均绝对误差(EMAE)用法的不同与相似之处相关推荐

  1. Python使用numpy包编写自定义函数计算平均绝对误差(MAE、Mean Absolute Error)、评估回归模型和时间序列模型、解读MAE

    Python使用numpy包编写自定义函数计算平均绝对误差(MAE.Mean Absolute Error).评估回归模型和时间序列模型.解读MAE 目录

  2. 【图像重建指标 Metrics】均方误差RMSE及平均绝对误差MAE的定义和区别

    在图像修复.图像提升和深度估计等任务中经常使用到一系列度量指标,除了常用的PSNR和SSIM外,RMSE和MAE能很好的反应图像的重建结果与真实结果间的差异. 1.均方误差RMSE 首先来看均方误差( ...

  3. 基于项目的协同过滤推荐算法单机版代码实现(包含输出电影-用户评分矩阵模型、项目相似度、推荐结果、平均绝对误差MAE)

    基于项目的协同过滤推荐算法单机版代码实现(包含输出电影-用户评分矩阵模型.项目相似度.推荐结果.平均绝对误差MAE) 一.开发工具及使用技术 MyEclipse10.jdk1.7.movielens数 ...

  4. 均方根误差(RMSE),平均绝对误差(MAE),标准差(Standard Deviation);平均值、标准差、相关系数、回归线及最小二乘法

    均方根误差(RMSE),平均绝对误差(MAE),标准差(Standard Deviation) RMSE Root Mean Square Error,均方根误差 是观测值与真值偏差的平方和与观测次数 ...

  5. 残差平方和(RSS)、均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)、标准差(SD)

    残差平方和(RSS) 统计学上把数据点与它在回归直线上相应位置的差异称为残差,把每个残差平方之后加起来 称为残差平方和(相当于实际值与预测值之间差的平方之和).它表示随机误差的效应.一组数据的残差平方 ...

  6. php 在图片分割,图片分割用什么软件 图片平均分割八份并分别保存|图片平均分割软件...

    (。・∀・)ノ゙昨天有个童鞋问小编图片分割用什么软件,可以将图片平均分割八份并分别保存的那种,今日灵犀一闪,就弄出了这篇图片平均分割软件,详细操作且看下文.狸窝家园也分享有一个集合近百个图片处理软件为 ...

  7. SQL-16 统计出当前各个title类型对应的员工当前薪水对应的平均工资。结果给出title以及平均工资avg。...

    题目描述 统计出当前各个title类型对应的员工当前薪水对应的平均工资.结果给出title以及平均工资avg. CREATE TABLE `salaries` ( `emp_no` int(11) N ...

  8. 学习-输入5个学生的数学、语文、英语3门课程的成绩,计算并输出每一门课程的平均成绩和每一位学生的平均成绩

    第1关:输入5个学生的数学.语文.英语3门课程的成绩,计算并输出每一门课程的平均成绩和每一位学生的平均成绩 任务描述 本关任务:输入5 个学生的数学.语文.英语 3 门课程的成绩,计算并输出每一门课程 ...

  9. 均方根误差(RMSE)、平均绝对误差(MAE)、标准差

    RMSE Root Mean Square Error,均方根误差 是观测值与真值偏差的平方和与观测次数m比值的平方根. 是用来衡量观测值同真值之间的偏差 MAE Mean Absolute Erro ...

  10. 【机器学习】均方误差(MSE)和均方根误差(RMSE)和平均绝对误差(MAE)

    MSE: Mean Squared Error  均方误差是指参数估计值与参数真值之差平方的期望值;  MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度. RMS ...

最新文章

  1. javascript的Math对象和全局函数
  2. 操作系统期末复习重点题型归纳
  3. Unity* 实体组件系统 (ECS)、C# 作业系统和突发编译器入门
  4. NSURLConnection实现文件上传和AFNetworking实现文件上传
  5. 绘制E—R图(详细)
  6. 搞对象的时候走神儿了
  7. 016_循环变量内建函数
  8. java对象生命周期_Java对象生命周期和类生命周期
  9. 生成UUID作为主键
  10. SpringBoot中使用FastJson解析Json数据
  11. authc过滤器 shiro_使用Shiro实现认证和授权(基于SpringBoot)
  12. 一次C端线上缓存问题的总结
  13. E:Tree Queries(假树链剖分写法)
  14. Ubuntu下将Sublime Text设置为默认编辑器
  15. 读书笔记_Effective_C++_条款十九:设计class犹如设计type
  16. Python for循环 - Python零基础入门教程
  17. 2021数据技术嘉年华线上召开,万人观看,迎接国产数据库的耕获菑畬之年
  18. 基于JAVA+SpringBoot+Mybatis+MYSQL的在线点餐系统
  19. SQLServer create schema
  20. c语言答辩ppt案例,c语言ppt例子课题答辩ppt成品中南民族大.ppt

热门文章

  1. 全球知名开源项目与组织齐聚!——峰会【开源开放 生态共建】论坛来啦
  2. html网页制作把文字放在右边,网页滚动文字的制作HTML代码
  3. 半导体芯片的基本结构
  4. 根据日期参数查询润乾报表
  5. ADNI-subject-Info
  6. TX2与PCA9685驱动舵机(RACECAR)
  7. 微信支付宝刷步数_一劳永逸版(在用)
  8. HTML5期末大作业:关于家乡介绍的HTML网页设计——郑州美景HTML+CSS(5页) 学生DW家乡介绍网页设计作业成品 web课程设计网页规划与设计
  9. 使用中控指纹采集器开发指纹识别案例V1.0
  10. 笔记-SIM900A模块开发:GPRS建立TCP连接与服务器进行数据传输