Python与供应链-2预测误差及指数平滑需求预测模型

主要介绍预测误差和指数平滑模型的相关理论,然后再通过Python的statsmodels封装的指数平滑函数预测需求。

1预测误差

预测误差是指预测结果与预测对象发展变化的真实结果之间的差距。这种误差分为绝对误差和相对误差。绝对误差是预测值与实际观测值的绝对差距,而相对误差则是这种绝对差距相对于观测值的百分比。从这里可以看出,预测都是错误的,只是错多错少的问题,那么该如何客观判断某个预测模型的效果好不好,以及它和其他预测模型相比效果如何?

这就要介绍关于如何评估预测误差的指标,也就是评估预测模型的误差,并围绕预测误差建立相关指标。按照Nicolas Vandeput的说法,先区分预测准确性(Accuracy)和预测偏差(Bias)

预测准确性衡量预测和真实值之间有多大的差距。预测准确性给出了误差(error)大小的概念,但不是它们的总体方向。

预测偏差代表历史平均误差的总体方向,它衡量预测是否过高或过低。

简单理解,假如预测了10次,预测准确性衡量的是每次预测值和真实值的误差是多少,它的衡量颗粒度是“每次预测”;而预测偏差则不关注每次预测误差是多少,它衡量的是相比较真实值,这10次预测值的平均误差,总体上是不是太高或太低。

以下图为例,每个圆点表示1次预测,六边形靶心表示最接近真实值用0环表示,由内往外的空心六边形分别用1环、2环和3环表示。如左上角的预测,它是预测准确但存在偏差的,每次的预测都落在2环(误差小,预测准确),但所有的预测误差分布都是聚集在一起,如果误差都是正的则表示预测值过高,反之则是预测值过低;而最左下的预测是准确且不偏差的,每次预测都落在0-1环(比左上角的预测误差更小,预测更准确),且所有预测误差分布均匀分布而非聚集在一起,这样的预测误差有正有负相互抵消,就不会出现预测过高或过低的偏差;右上角的预测是不准确且偏差的,每次的预测落在2-3环(误差大,预测不准确),而且所有预测误差分布都是聚集在一起,会出现预测过高或过低的偏差;右下角的预测是不准确但也不偏差的,每次预测落在0-2环(误差大,预测不准确),但所有预测误差分布均匀分布而非聚集在一起,不会出现预测过高或过低的偏差。

注:此图引自Nicolas Vandeput,Data Science for Supply Chain Forecasting一书

实际上,左下角准确且无偏差的预测,正是每个预测模型都追求的理想预测效果,而右上角不准确切偏差的预测,则是每个预测模型都在极力避免的糟糕预测效果,而左上角准确但偏差、右下角不准确但不偏差的预测则是介于理想和糟糕预测效果之间,是多数预测模型最常碰到的预测效果。

下面,我们通过数学定义预测误差。

假设有n历史时期,定义第t期的真是需求值为d_t{},预测需求值为f_t{},则该期的预测误差e_t{}等于:

e_t{}=f_t{}-d_t{}

围绕预测误差就可以建立偏差(Bias)、平均绝对值百分比误差(Mean Absolute Percentage Error,MAPE)、平均绝对值误差(Mean Absolute Error,MAE)和均方根误差(Root Mean Square Error,RMSE)等一系列预测误差指标。这些指标适用于各种预测模型。

(1)偏差计算公式为

bias=\frac{1}{n}\sum_{n}^{}e_t{}=\frac{1}{n}\sum_{n}^{}(f_t{}-d_t{})

 因为偏差可能有正有负,不太好比较判断,可以通过如下公式可以将偏差标准化到0-1间

(2)平均绝对值百分比误差(MAPE)计算公式为

 (3) 平均绝对值误差(MAE)计算公式为 

 和偏差一样,可以通过如下公式可以将平均绝对值误差(MAE)标准化到0-1间

(4)均方根误差(RMSE)计算公式为 

 标准化公式为

如果不用开平方根的话,那么RMSE也可以直接转化为均方误差(MeanSquare Error,MSE),其计算公式为

估计大家在这个时候已经懵了:我们该选择哪个指标用以衡量预测误差?这个问题没有绝对的答案,多数时候需要结合数据特征和预测模型做试验验证,再从中选择合适的指标。Nicolas Vandeput从中位数和均值优化数值模型的角度,总结了如下建议:

(1)若以RMSE作为优化指标,它以需求平均值为目标进行优化;若以MAE作为优化指标,它将试图使需求过高与需求过低一样频,这意味着它以需求中值为目标进行优化。简而言之,MAE的优化目标是需求中值,而RMSE的优化目标是需求平均值

(2)RMSE优化目标是需求平均值,它会给予越大的误差越大的权重,使预测不出现偏差,但对误差大的需求异常点特别敏感(会赋予大的权重);MAE优化目标是需求中值,它对误差大的需求异常点不敏感,但会导致预测出现偏差。

(3)如果使用MAE导致大的预测偏差,我们可能想使用RMSE;如果数据集包含许多异常点,导致预测偏斜,我们可能想使用MAE。甚至可能同时使用两者指标。

Nicolas Vandeput总结建议的详细推导过程可参见著作Data Science for Supply Chain Forecasting。在接下来的预测中,我们将同时采用RMSE%和MAE%作为误差评估的指标。

2 时间序列预测:指数平滑法原理 

指数平滑(exponential smoothing)法是应用广泛的时间序列预测方法,其核心思想是对上一期的真实需求和预测需求分别赋予权重,将两者加权和作为本期的预测需求值。指数平滑法有3种模型:

(1)简单指数平滑(Simple exponential smoothing),也叫1次指数平滑,适用于没有趋势和没有季节性特征的数据;

(2)Holt指数平滑(Holt exponential smoothing),也叫2次指数平滑,适用于有趋势但没有季节性特征的数据;其趋势又可分为加法和乘法类型,以及趋势衰减的阻尼(damped)模型;

(3)Holt-Winter指数平滑((Holt-Winter exponential smoothing),也叫3次指数平滑,适用于有趋势和有季节性特征的数据;其趋势和季节性又可分为加法和乘法类型,因为是基于Holt指数平滑的基础再做1次平滑,所以也有趋势衰减的阻尼模型。

模型名称 数据特征
1次平滑 简单指数平滑 没有趋势、没有季节性特征
2次平滑 Holt指数平滑-加法模型 有趋势、没有季节性特征
Holt指数平滑-乘法模型
阻尼Holt指数平滑-加法模型
阻尼Holt指数平滑-乘法模型
3次平滑 Holt-Winter指数平滑-加法模型 有趋势、有季节性特征
Holt-Winter指数平滑-乘法模型
阻尼Holt-Winter指数平滑-加法模

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/491101.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring学习——什么是循环依赖及其解决方式

文章目录 前言一、什么是循环依赖二、解决思路1、循环依赖分类2、对象初始化步骤及对象分类3、spring是如何解决的4、图解5、三级缓存1、区别2、ObjectFactory是什么 三、源码debug1、spring创建对象过程1、dubug第一步——找到getBean2、dubug第二步——getBean与doGetBean3、…

35.基于SpringBoot + Vue实现的前后端分离-在线考试系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统,采用SpringBoot Vue框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得基于SpringBoot Vue技术的在线考试系统设计与实现管理工作系统…

Uniapp三种常用提示框

具体参数方法可参考: uniapp交互反馈 uni.showToast(OBJECT) //显示消息提示框。 uni.hideToast() //隐藏消息提示框。 //具体使用 uni.showToast({title: 新增成功,duration: 2000 }); uni.showLoading(OBJECT) //显示 loading 提示框, 需主动调用 uni.hideLoading 才能关闭提…

区块链安全之DDoS防护的重要性及其实施策略

随着区块链技术的不断发展和广泛应用,其安全问题也日益凸显。其中,分布式拒绝服务(DDoS)攻击是对区块链网络稳定性和效率构成潜在威胁的重要因素之一。本文旨在深入探讨区块链为何需要采取DDoS高防措施,并提出相应的防护策略。 一、区块链面…

毕马威:量子计算成未来3-5年重大挑战

毕马威(KPMG)是一家全球性的专业服务网络,其历史可追溯到19世纪末。作为“四大”会计师事务所之一,毕马威在审计、税务和咨询服务领域享有盛誉。公司在全球范围内拥有多个办事处,服务遍及各个行业,包括金融…

【大数据】Flink学习笔记

认识Flink Docker安装Flink version: "2.1" services:jobmanager:image: flinkexpose:- "6123"ports:- "20010:8081"command: jobmanagerenvironment:- JOB_MANAGER_RPC_ADDRESSjobmanagertaskmanager:image: flinkexpose:- "6121"- …

Visio Viewer for Mac(Visio文件查看工具)

Visio Viewer for Mac是一款专为Mac用户设计的Microsoft Visio文件查看器。它拥有直观易用的用户界面,使得用户可以快速加载和显示Visio文件,无需安装完整的Microsoft Visio软件。 软件下载:Visio Viewer for Mac3.1.0激活版 Visio Viewer fo…

java Web线上网游商品交易平台用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 jsp线上网游商品交易平台是一套完善的web设计系统,对理解JSP java SERLVET mvc编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0…

spring使用内置jetty创建提供http接口服务

1、添加pom文件依赖 <dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-server</artifactId><version>9.4.22.v20191022</version> </dependency> <dependency><groupId>org.eclipse.jetty<…

azure服务器通过手机客户端远程连接

下载客户端 输入ip地址 输入用户名和密码 连接成功 人工智能学习网站&#xff1a; https://chat.xutongbao.top

大鱼来客实景无人直播系统源码开发部署---支持OEM贴牌-无限开户

实景无人直播系统需要包含以下几个主要功能&#xff1a; 视频采集与编码&#xff1a;使用摄像头或其他视频设备进行视频采集&#xff0c;并对视频进行编码压缩&#xff0c;以便实现实时传输。 视频传输与接收&#xff1a;将编码后的视频通过网络传输至客户端&#xff0c;客户端…

探究 HTTPS 的工作过程

目录 1. HTTPS 协议原理 1.1. 为什么要有HTTPS协议 1.2. 如何理解安全 1.3. HTTPS 协议是什么 2. HTTPS 的前置概念 2.1. 什么是加密 && 解密 2.2. 为什么要加密 2.3. 常见的加密方式 2.3.1. 对称加密 2.3.2. 非对称加密 2.4. 数据摘要 && 数据指纹…

Avalonia11.0.2+.Net6.0支持多语言,国际化

Avalonia11.0.2+.Net6.0支持多语言,国际化 操作系统项目结构最终效果具体实现安装Prism.Avalonia准备多语言文件语言资源加载类界面标记扩展类界面中使用国际化VM具体实现VM里面使用多语言方法操作系统 项目结构 最

【jenkins+cmake+svn管理c++项目】windows修改jenkins的工作目录

jenkins默认的存放源码的workspace是&#xff1a; C:\Users\用户\AppData\Local\Jenkins\.jenkins\workspace。由于jenkins会拉取大量的源代码以及编译生成一些文件&#xff0c;我希望我能自己指定目录作为它的工作空间&#xff0c;放在这里显然不太合适。 那么修改目录的方式有…

【剑指offer】顺时针打印矩阵

题目链接 acwing leetcode 题目描述 输入一个矩阵&#xff0c;按照从外向里以顺时针的顺序依次打印出每一个数字。 数据范围矩阵中元素数量 [0,400]。 输入&#xff1a; [ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12] ] 输出&#xff1a;[1,2,3,4,8,12,11,10,9,5,6,7] 解题 …

移动端Web笔记day03

移动 Web 第三题 01-移动 Web 基础 谷歌模拟器 模拟移动设备&#xff0c;方便查看页面效果&#xff0c;移动端的效果是当手机屏幕发生了变化&#xff0c;页面和页面中的元素也要跟着等比例变化。 屏幕分辨率 分类&#xff1a; 硬件分辨路 -> 物理分辨率&#xff1a;硬件…

【软考】设计模式之状态模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. 优缺点5.1 优点5.2 缺点 6. java示例6.1 非状态模式6.1.1 问题分析6.1.2 接口类6.1.2 实现类6.1.3 客户端6.1.4 结果截图 6.2 状态模式6.2.1 抽象状态类6.2.2 状态类6.2.3 上下文类6.2.4 上下文类 1. 说明 1.允许一个对象在其内部状…

算法之美:二叉树演进之AVL平衡二叉树底层原理

在之前的文章中&#xff0c;我们初步了解了二叉查找树&#xff08;又称二叉排序树&#xff09;&#xff0c;这使我们意识到使用特定策略的查询可以显著提高查找效率。本文将进一步探讨二叉树的演进。由于树相关算法较多且相对复杂&#xff0c;因为我后续将拆解讲述&#xff0c;…

SUSE 15 SP5 一键安装 Oracle 19C(19.22)单机版

前言 Oracle 一键安装脚本&#xff0c;演示 SUSE 15 SP5 一键安装 Oracle 19C&#xff08;19.22&#xff09;单机版过程&#xff08;全程无需人工干预&#xff09;&#xff1a;&#xff08;脚本包括 ORALCE PSU/OJVM 等补丁自动安装&#xff09; ⭐️ 脚本下载地址&#xff1…

集成ES分组查询统计求平均值

前言 之前其实写过ES查询数据&#xff0c;进行分组聚合统计&#xff1a; 复杂聚合分组统计实现 一、目标场景 机房机柜的物联网设备上传环境数据&#xff0c;会存储到ES存到ES的温湿度数据需要查询&#xff0c;进行分组后&#xff0c;再聚合统计求平均值 二、使用步骤 1.引入…