转载:二次指数平滑法求预测值的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);
    }
}

效果图:

时间: 2024-12-14 20:49:32

转载:二次指数平滑法求预测值的Java代码的相关文章

转载 ------ 三次指数平滑法

原文地址: http://blog.csdn.net/nieson2012/article/details/51980943 目录 ?1.指数平滑定义及公式 ?2.一次指数平滑 ?3二次指数平滑 ?4.三次指数平滑 ?5指数平滑系数α的确定 1.指数平滑的定义及公式 产生背景:指数平滑由布朗提出.他认为时间序列的态势具有稳定性或规则性,所以时间序列可被合理地顺势推延:他认为最近的过去态势,在某种程度上会持续的未来,所以将较大的权数放在最近的资料. 基本原理:指数平滑法是移动平均法中的一种,其特点

转载:(论文) 二次指数平滑法中确定初始值的简便方法

前几天在学习时间序列中的  指数平滑算法, 在网上找到了这篇论文,读了以后感觉还可以,比较实用,为防止以后查找起来比较费劲便在这里做下保存.

时间序列分析之一次指数平滑法

指数平滑法最早是由C.C Holt于1958年提出的,后来经统计学家深入研究使得指数平滑法非常丰富,应用也相当广泛,一般有简单指数平滑法.Holt双参数线性指数平滑法.Winter线性和季节性指数平滑法.这里的指数平滑法是指最简单的一次指数平滑. 指数平滑法是一种特殊的加权平均法,对本期观察值和本期预测值赋予不同的权重,求得下一期预测值的方法. 一次指数平滑法公式如下:  ————————-(1)  为t+1期的指数平滑趋势预测值: 为t期的指数平滑趋势预测值: 为t期实际观察值: 为权重系数,

二次指数平滑预测法 Python实现

从以往的时间序列值,进行指数平滑,做两次预测出下一个时间的估计值. 目录结构如下: Python代码如下: forecast.py # -*-coding:utf-8 -*- # Time:2015.11.25 sangjin __author__ = 'hunterhug' import matplotlib #matplotlib.use("Agg") #matplotlib.use("TkAgg") #matplotlib.use("gtk"

预测算法——指数平滑法

 目录 ?1.指数平滑定义及公式 ?2.一次指数平滑 ?3二次指数平滑 ?4.三次指数平滑 ?5指数平滑系数α的确定 1.指数平滑的定义及公式 产生背景:指数平滑由布朗提出.他认为时间序列的态势具有稳定性或规则性,所以时间序列可被合理地顺势推延:他认为最近的过去态势,在某种程度上会持续的未来,所以将较大的权数放在最近的资料. 基本原理:指数平滑法是移动平均法中的一种,其特点在于给过去的观测值不一样的权重,即较近期观测值的权数比较远期观测值的权数要大.根据平滑次数不同,指数平滑法分为一次指数平滑法

时间序列分析--指数平滑法

参考文献: http://blog.csdn.net/u013527419/article/details/52822622?locationNum=7&fps=1 一. 基础知识: 1. 概念:时间序列是指一个数据序列,特别是由一段时间内采集的信号组成的序列,序列前面的信号表示采集的时间较早. 2. 前提假设:时间序列分析一般假设我们获得的数据在时域上具有一定的相互依赖关系,例如股票价格在t时刻很高,那么在t+1时刻价格也会比较高(跌停才10%):如果股票价格在一段时间内获得稳定的上升,那么在

R语言与数据分析之九:HoltWinters指数平滑法

今天继续就指数平滑法中最复杂的一种时间序列:有增长或者降低趋势并且存在季节性波动的时间序列的预测算法即Holt-Winters和大家分享.这种序列可以被分解为水平趋势部分.季节波动部分,因此这两个因素应该在算法中有对应的参数来控制. Holt-Winters算法中提供了alpha.beta和gamma 来分别对应当前点的水平.趋势部分和季节部分,参数的去执法范围都是0-1之间,并且参数接近0时,近期的观测值的影响权重就越小.我们以澳大利亚昆士兰州海滨纪念商品的月度销售日子为分析对象,老套路,咱先

时间序列挖掘-预测算法-三次指数平滑法(Holt-Winters)——三次指数平滑算法可以很好的保存时间序列数据的趋势和季节性信息

from:http://www.cnblogs.com/kemaswill/archive/2013/04/01/2993583.html 在时间序列中,我们需要基于该时间序列当前已有的数据来预测其在之后的走势,三次指数平滑(Triple/Three Order Exponential Smoothing,Holt-Winters)算法可以很好的进行时间序列的预测. 时间序列数据一般有以下几种特点:1.趋势(Trend)  2. 季节性(Seasonality). 趋势描述的是时间序列的整体走势

用比特串法求幂集的java实现

由于Java中有很方便的 String Integer.toBinaryString(int),在学习生成子集的时后看到用比特串生成幂集的算法,就想着用java实现一下.幂集在解背包问题的时候还是很有用的,蛮力法,简单粗暴有效,当然仅限较小的实例. 实现如下 PowerSetGenerator.java,其中容器的实现用LinkedHashSet是为了保证集合中元素的位置固定,方便测试: package powerset; import java.util.Collection; import