转载:二次指数平滑法求预测值的Java代码
原文地址:
http://blog.csdn.net/qustmeng/article/details/52186378?locationNum=4&fps=1
import java.util.LinkedList;
import java.util.List;
public class Demo {
/**
* 二次指数平滑法求预测值
* @param list 基础数据集合
* @param year 未来第几期
* @param modulus 平滑系数
* @return 预测值
*/
/**
原文代码设置,当输入的数据数(list长度)小于10, 则不进行计算
*/
private static Double getExpect(List<Double> list, int year, Double modulus ) {
if (list.size() < 10 || 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(30.177);
list.add(30.1762);
list.add(30.1761);
list.add(30.1763);
list.add(30.1774);
list.add(30.1766);
list.add(30.1767);
list.add(30.177);
list.add(30.179);
list.add(30.1799);
list.add(30.1813);
list.add(30.1813);
list.add(30.1816);
list.add(30.1839);
list.add(30.1847);
list.add(30.1841);
list.add(30.1824);
list.add(30.1806);
list.add(30.1802);
list.add(30.179);
list.add(30.1773);
list.add(30.1769);
list.add(30.1783);
list.add(30.1822);
list.add(30.1852);
Double value = getExpect(list, 1, 0.6);
System.out.println(value);
}
}
效果图:

转载:二次指数平滑法求预测值的Java代码的更多相关文章
- R语言与数据分析之九:时间内序列--HoltWinters指数平滑法
今天继续就指数平滑法中最复杂的一种时间序列:有增长或者减少趋势而且存在季节性波动的时间序列的预測算法即Holt-Winters和大家分享.这样的序列能够被分解为水平趋势部分.季节波动部分,因此这两个因 ...
- 时间序列挖掘-预测算法-三次指数平滑法(Holt-Winters)——三次指数平滑算法可以很好的保存时间序列数据的趋势和季节性信息
from:http://www.cnblogs.com/kemaswill/archive/2013/04/01/2993583.html 在时间序列中,我们需要基于该时间序列当前已有的数据来预测其在 ...
- R-三次指数平滑法实践
data <- read.csv("H://day_shuaka.csv") raw0 <- data[359:752,] raw0$weekday <- as. ...
- Holt Winter 指数平滑模型
1 指数平滑法 移动平均模型在解决时间序列问题上简单有效,但它们的计算比较难,因为不能通过之前的计算结果推算出加权移动平均值.此外,移动平均法不能很好的处理数据集边缘的数据变化,也不能应用于现有数据集 ...
- 时间序列数据的定义,读取与指数平滑(Java)
应上头的要求,需要实现以下指数平滑进行资源调度负载的预测,那就是用我最喜欢的Java做一下吧. 引用<计量经济学导论>的一句话:时间序列数据区别于横截面数据的一个明显特点是,时间序列数据集 ...
- 使用excel计算指数平滑和移动平均
指数平滑法 原数数据如下: 点击数据——数据分析 选择指数平滑 最一次平滑 由于我们选择的区域是B1:B22,第一个单元格“钢产量”,被当做标志,所以我们应该勾选标志.当我们勾选了标志后,列中的第 ...
- [译]如何使用Python构建指数平滑模型:Simple Exponential Smoothing, Holt, and Holt-Winters
原文连接:How to Build Exponential Smoothing Models Using Python: Simple Exponential Smoothing, Holt, and ...
- R语言与数据分析之八:时间序列--霍尔特指数平滑法
上篇我和小伙伴们分享了简单指数平滑法,简单指数平滑法仅仅能预測那些处于恒定水平和没有季节变动的时间序列,今天和大家分享非恒定水平即有增长或者减少趋势的.没有季节性可相加模型的时间序列预測算法---霍尔 ...
- Facebook Hacker Cup 2015 Round 1--Homework(筛选法求素数)
题意:给定A,B,K(A<=B)三个数,问在[A,B]范围内的数素数因子个数为K的个数. 题解:典型的筛选法求素数.首先建立一个保存素数因子个数的数组factorNum[],以及到n为止含有素数 ...
随机推荐
- 怒学Java8系列一:Lambda表达式
PDF文档已上传Github Github:https://github.com/zwjlpeng/Angrily_Learn_Java_8 第一章 Lambda 1.1 引言 课本上说编程有两种模 ...
- onLoad和DomContentLoad的区别
onLoad是的在页面所有文件加载完成后执行 DomContentLoad是Dom加载完成后执行,不必等待样式脚本和图片加载 domContentLoad更为合理, 原理: 如果是webkit引擎则轮 ...
- Insert Delete GetRandom O(1)
2018-07-15 18:36:29 问题描述: 问题求解: private ArrayList<Integer> ls; private HashMap<Integer, Int ...
- 雷林鹏分享:C# 索引器(Indexer)
C# 索引器(Indexer) 索引器(Indexer) 允许一个对象可以像数组一样被索引.当您为类定义一个索引器时,该类的行为就会像一个 虚拟数组(virtual array) 一样.您可以使用数组 ...
- WPF PasswordBox.Password 的数据绑定
WPF的PasswordBox控件的Password属性不是依赖属性,无法直接进行数据绑定,为使其在MVVM模式中正常使用,可以为PasswordBox增加一个助手类,代码如下: 注:代码摘自:htt ...
- SQL 进阶视频课程。Udacity: Intro to Relational Databases和 PostgreSQL语法文档。
Udacity: Intro to Relational Databases The syntax of the select statement with a where clause: selec ...
- 最小生成树(模板 Kruskal)
Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达 ...
- 如何用Curl 来post xml 数据
因为登陆服务升级,密码策略变更,以前的测试脚本中的用户密码已经不能登陆,试图通过API直接更改密码,一种是直接update,一种是change,使用curl的时候均未成功. 最后索性重新用curl命令 ...
- hadoop redis install (4)
reference: http://dblab.xmu.edu.cn/blog/131/ https://github.com/dmajkic/redis https://blog.csdn ...
- node安装问题
这个是我碰到的 这是解决方法,祝你好运