转载:二次指数平滑法求预测值的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为止含有素数 ...
随机推荐
- 性能测试 tps持续走低,响应时间持续增加,瓶颈分析
吞吐量图如上 响应时间图如上 自身压测的机器,资源使用率并没有饱和 服务器,top命令下看到load average的值很低,本身是4核的server. 每个核的CPU使用率也极低,空闲cpu占95+ ...
- 字符集(编码)转换_Qt532_QString
1.网上的资料: 1.1.参考网址:http://blog.csdn.net/changsheng230/article/details/6588447 1.2.网页内容: “ Qt 使用Unicod ...
- YOLO V3论文理解
YOLO3主要的改进有:调整了网络结构:利用多尺度特征进行对象检测:对象分类用Logistic取代了softmax. 1.Darknet-53 network在论文中虽然有给网络的图,但我还是简单说一 ...
- 使用Fragment适应不同屏幕和分辨率
Fragment是Android3.0后增加的新控件,有点类似于Activity组件,也是用来承载各种View元素.Google增加这个 玩意的目的是为了平板电脑里面可以复用部分显示的View,只要写 ...
- English trip M1 - PC9 Where am I Teacher:Jade
In this lesson you will learn to ask for and give directions # 在本课中,您将学习如何提出要求并给出指示 Words North ...
- 快速读入fread
struct FastIO { static const int S = 1e7; int wpos; char wbuf[S]; FastIO() : wpos(0) {} inline int x ...
- python-day12--函数进阶
1.命名空间: 分三种:全局命名空间,局部命名空间,内置命名空间. 加载顺序:内置命名空间→全局命名空间→局部命名空间 取值顺序:局部命名空间→全局命名空间→内置命名空间 2.作用域: 作用域就是作用 ...
- Leetcode 77
//这似乎是排列组合的标准写法了已经class Solution { public: vector<vector<int>> combine(int n, int k) { v ...
- qt +ChartDirector 绘制图表
自从开发由c#转入Qt后一直寻找一款Qt下的图形控件库,最后ChartDirector控件映入眼球.ChartDirector控件使用方便,快捷,灵活,功能强大,交互性强.在web服务器以及嵌入式应用 ...
- bzoj1600
题解: 简单dp 显然不能超过一半 代码: #include<bits/stdc++.h> using namespace std; ][]; int main() { f[][]=; s ...