java二次指数平滑法预测未来的值
转自https://blog.csdn.net/qq_35673617/article/details/86244873
指数平滑法是一种特殊的加权平均法,加权的特点是对离预测值较近的历史数据给予较大的权数,对离预测期较远的历史数据给予较小的权数,权数由近到远按指数规律递减,所以,这种预测方法被称为指数平滑法。它可分为一次指数平滑法、二次指数平滑法及更高次指数平滑法。
一次指数平滑的局限性:像一次移动平均法一样,一次指数平滑法 只适用于 水平型历史数据 的 预测,而不适用 于 斜坡型线性 趋势 历史数据的预测。而二次指数平滑法就是以斜坡型为模型来预测未来数据。
除了二次指数平滑法外,还有更高次的多次指数平滑法,由于它们在实际预测中并不常用,因此忽略。所以就以二次指数平滑法为例:
/*** 二次指数平滑法求预测值* @param list 基础数据集合* @param year 未来第几期* @param modulus 平滑系数* @return 预测值*/private static Double getExpect(List<Double> list, int year, Double modulus) {if (list.size()==0 || modulus <= 0 || modulus >= 1) {return null;}Double modulusLeft = 1 - modulus;Double lastIndex = list.get(0);Double lastSecIndex = list.get(0);for (Double data : list) {lastIndex = modulus * data + modulusLeft * lastIndex;lastSecIndex = modulus * lastIndex + modulusLeft * lastSecIndex;}Double a = 2 * lastIndex - lastSecIndex;Double b = (modulus / modulusLeft) * (lastIndex - lastSecIndex);return a + b * year;}
测试代码:
public static void main(String[] args) {List<Double> list = new LinkedList<Double>();list.add(300d);list.add(400d);list.add(500d);Double value = getExpect(list, 1, 0.6);System.out.println((int) Math.ceil(value));}
java二次指数平滑法预测未来的值相关推荐
- matlab 二次指数平滑法预测
二次指数平滑法预测 clc,clear ://清空命令行,工作区 load pre1.txt %原始数据以列向量的方式存放在纯文本文件中 yt=pre1; n=length(yt); alpha=0. ...
- Python 二次指数平滑法 预测
1.先上代码: import numpy as npdef secondaryExponentialSmoothingMethod(list,n_average,alpha,day): # 参数lis ...
- 二次指数平滑法 C++
二次指数平滑法(Second exponential smoothing method) 点击打开链接 二次指数平滑法是对一次指数平滑值作再一次指数平滑的方法.它不能单独地进行预测,必须与一次指数平滑 ...
- Python 时间序列建模:用指数平滑法预测股价走势
指数平滑方法适用于非平稳数据(即具有趋势和/或季节性的数据),其工作方式类似于指数移动平均线.预测是过去观察的加权平均值.这些模型更加强调最近的观察结果,因为权重随时间呈指数级变小.平滑方法很受欢迎, ...
- 二次指数平滑法python程序
根据历史年份的数据来进行未来年份数据的负荷预测,主要可以用于近中期的负荷预测,具体原理有很多帖子都讲过了,直接贴代码 三个参数分别为 历史年份 历史年份负荷量 要预测的数据数量 def double_ ...
- 二次指数平滑法 php,二次指数平滑法摘抄_二次指数平滑法算例
二次指数平滑法摘抄_二次指数平滑法算例 指数平滑法是一种特殊的加权平均法,加权的特点是对离预测值较近的历史数据给予较大的权数,对离预测期较远的历史数据给予较小的权数,权数由近到远按指数规律递减,所以, ...
- R语言时间序列(time series)分析实战:简单指数平滑法预测
R语言时间序列(time series)分析实战:简单指数平滑法预测 目录
- 二次指数平滑法matlab程序_二次指数平滑法程序
二次指数平滑法程序 线性指数平滑法 Matlab 程序,代码如下: 注: Data- 原始数据 s- 一次和二次平滑结果 at- 预测式中的 a 参数 bt- 预测式中的 b 参数 y1- 预测结果 ...
- 指数平滑法,二次指数平滑法(Holt’s linear trend method),季节性预测算法(Holt-Winters’ seasonal method)
指数平滑法 概念:对过去的观察值得加权平均值进行预测的一种方法,适用于水平历史数据 一次指数平滑法:Ft+1 =aYt+(1-a)Ft Ft表示t时预测值,Yt表示t时观察值.t取1时,F1=Y1.a ...
最新文章
- LeetCode简单题之二分查找
- 调用训练好的模型(tensorflow)
- iphone退款申请教程_如何下载下架的APP?买错应用怎么退款?学会这几招iPhone更好用...
- Hive旺旺讨论(关于mapjoin)
- 教育大数据隐私保护机制与技术研究
- Java—泛型详解和使用
- mui ajax的值php怎样获取,Mui-ajax获取服务器请求
- win7专业版 .bat脚本运行_IT运维老司机:聊聊BAT批处理提升工作效率
- wpf之blend之自定义最小化按钮
- python3 django 中文乱码_python3 wsgi服务和响应数据中文乱码问题
- malloc函数用法
- OpenCV处理椒盐噪声以及提高对比度
- 鸿蒙系统适配的手机型号,华为鸿蒙系统支持的手机型号大全,鸿蒙系统2.0支持手机型号汇总...
- 词表匹配工具FlashText
- 目标检测 | CVPR 2019 目标检测论文汇总
- 推推:产品的规划和商业化分析
- PMP-项目风险管理
- CT图像的窗宽窗位(VTK及3Dslicer中的使用)
- 高效的JS 拼接字符串
- linux设备模型一(基础知识)
热门文章
- 自定义控件之绘图篇(一):概述及基本几何图形绘制
- Python突击(一)
- SAR成像(七):RD成像算法
- 怎么删除已经安装的mysql_怎么样删除已经安装的mysql | wdlinux致力于Linux服务器架构,性能优化.免费CDN加速系统,免费智能DNS解析,负载均衡,集群分流...
- Exception while invoking! org.apache.thrift.protocol.TProtocolException: Bad version in readMessageB
- 国二c语言考试分值,计算机二级C语言题型和评分标准
- 什么是python 包_什么是python
- mysql cast报错_mysql数据库cast
- 解决Github加载ipynb文件缓慢/失败
- 2016年中国国际信息通信展览会在北京开幕