首页 > 其他分享 >时间序列分析——指数平滑和ARIMA模型

时间序列分析——指数平滑和ARIMA模型

时间:2024-08-01 18:57:00浏览次数:9  
标签:4.2 平滑 ARIMA 建模 时间 序列 2.2 模型

个人学习笔记,课程为数学建模清风付费课程

目录

一、时间序列分析

1.1时间序列数据

1.2时间序列的基本概念

1.3区分时期和时点时间序列

1.4时间序列分解

1.4.1长期趋势:T

1.4.2季节趋势:S

1.4.3循环变动:C

1.4.4不规则变动:I

1.5叠加模型和乘积模型

1.6Spss处理时间序列中的缺失值

1.7替换缺失值的五种方法

​1.8Spss操作步骤

1.8.1定义时间变量

​1.8.2画时间序列图(时序图)

1.8.3季节性分解

1.8.4结果解读

1.8.5画出分解后的时序图

​1.9总结

1.9.1分析

1.9.2步骤

二、建立时间序列分析模型 

2.1专家建模器

2.2指数平滑模型 

​2.2.1Simple模型 

2.2.2简单指数平滑法预测 

2.2.3线性趋势模型(linear trend)  

2.2.4阻尼趋势模型(Damped trend)

2.2.5霍特趋势和阻尼趋势预测 

2.2.6简单季节性(Simple seasonal) 

2.2.7温特加法模型(Winters' additive) 

2.2.8温特乘法模型(Winters' multiplicative) 

2.2.9温特加法和乘法预测 

 三、一元时间序列分析的模型

3.1平稳时间序列和白噪声序列

3.1.1时间序列的平稳性(stationary series)

3.1.2白噪声序列 

3.1.3一些时间序列的图形 

3.2差分方程和滞后算子

3.2.1差分方程

3.2.2差分方程的特征方程

​3.2.3滞后算子

3.3AR模型

3.3.1模型概念

3.3.2平稳条件

3.3.3例子

3.4MA模型

3.4.1模型概念

3.4.2MA模型和AR模型的关系

3.4.3平稳条件

3.5ARMA模型

3.5.1模型概念

3.5.2平稳条件 

3.6ACF和PACF

3.6.1ACF自相关系数

3.6.2PACF偏自相关函数 

3.6.3例子 

3.6.3.1AR(1)模型(系数符号相反)

3.6.3.2MA(1)和AR(2)模型

3.6.3.3ARMA(1,1)模型和总结表格 

3.7ARMA模型的估计

3.7.1ARMA模型的识别

3.7.1.1R语言生成随机序列: x <- arima.sim(n=100, model=list(ar=c(0.5, -0.25, 0.4)))

3.7.1.2R语言生成随机序列: x <- arima.sim(n=100, model=list(ma=c(0.2, 0.4)))

3.7.1.3x <- arima.sim(n=100, model=list(ar=c(0.5),ma=c(0.2, 0.4))) 

3.7.1.4x <- arima.sim(n=100, model=list(ar=c(0.5, 0.2),ma=c(0.4)))

3.7.2ARMA模型的估计

3.7.3检验模型是否识别完全

3.8模型选择-AIC和BIC准则(选小原则)

3.8.1AIC

3.8.2BIC

3.9ARIMA模型

3.9.1模型概念

3.9.2时间序列图 

3.9.2.1ARIMA(1,1,1)

3.9.2.2ARIMA(1,2,1)

3.10SARIMA模型

四、SPSS时间序列建模 

4.1解题步骤

4.2例题1:销量数据预测

4.2.1前期准备工作

4.2.2 Spss时间序列建模器

4.2.3自动检测异常值的方法 

​4.2.4SPSS操作步骤

4.2.4.1SPSS时间序列建模器设置

4.2.4.2常用的评价指标 

4.2.4.3参数估计值表格 

4.2.4.4白噪声进行残差检验 

4.2.4.5预测的结果和效果图 

4.3例题2:人口数据预测 

4.3.1预测结果

4.3.2残差的白噪声检验

4.3.3预测效果图形

4.4例题3:上证指数预测 

4.4.1直接进行专家建模的结果

4.4.2剔除异常值后重新建模

4.4.3预测效果

4.5例题4:GDP增速预测 

4.5.1用所有数据进行预测(剔除异常值)

4.5.2出错的原因

五、拓展:更高级的时间序列预测模型


一、时间序列分析

1.1时间序列数据

时间序列数据:对同一对象在不同时间连续观察所取得的数据。 例如: (1)从出生到现在,你的体重的数据(每年生日称一次)。 (2)中国历年来GDP的数据。 (3)在某地方每隔一小时测得的温度数据。

1.2时间序列的基本概念

       时间序列也称动态序列,是指将某种现象的指标数值按照时间顺序排列而成的数值序列。 时间序列由两个组成要素构成: 1、第一个要素是时间要素;年、季度、月、周、日、小时、分钟、秒 2、第二个要素是数值要素。 时间序列根据时间和数值性质的不同,可以分为时期时间序列和时点时间序列。 时期序列中,数值要素反映现象在一定时期内发展的结果; 时点序列中,数值要素反映现象在一定时点上的瞬间水平。

1.3区分时期和时点时间序列

例如: (1)从出生到现在,你的体重的数据(每年生日称一次)。 (2)中国历年来GDP的数据。 (3)在某地方每隔一小时测得的温度数据。
(1)和(3)是时点时间序列;(2)是时期时间序列 时期序列可加,时点序列不可加。
       时期序列中的观测值反映现象在一段时期内发展过程的总量,不同时期的观测值可以相加,相加结果表明现象在更长一段时间内的活动总量; 而时点序列中的观测值反映现象在某一瞬间上所达到的水平,不同时期的观测值不能相加,相加结果没有实际意义。(灰色预测模型里面有一个累加的过程)

1.4时间序列分解

       因为时间序列是某个指标数值长期变化的数值表现,所以时间序列数值变化背后必然蕴含着数值变换的规律性,这些规律性就是时间序列分析的切入点。

1.4.1长期趋势:T

       长期趋势(Secular trend,T)指的是统计指标在相当长的一段时间内,受到长期趋势影响因素的影响,表现出持续上升或持续下降的趋势,通常用字母T表示。例如,随着国家经济的发展,人均收入将逐渐提升;随着医学水平的提高,新生儿死亡率在不断下降。

1.4.2季节趋势:S

       季节趋势(Seasonal Variation,S)是指由于季节的转变使得指标数值发生周期性变动。这里的季节是广义的,一般以月、季、周为时间单位,不能以年作单位。例如雪糕和棉衣的销量都会随着季节气温的变化而周期变化;每年的长假(五一、十一、春节)都会引起出行人数的大量增加。

 百度指数:http://index.baidu.com/v2/index.html#/

1.4.3循环变动:C

       循环变动(Cyclical Variation,C)与季节变动的周期不同,循环变动通常以若干年为周期,在曲线图上表现为波浪式的周期变动。这种周期变动的特征表现为增加和减少交替出现,但是并不具严格规则的周期性连续变动。最典型的周期案例就是市场经济的商业周期和的整个国家的经济周期。

1.4.4不规则变动:I

       不规则变动(Irregular Variation,I)是由某些随机因素导致的数值变化,这些因素的作用是不可预知和没有规律性的,可以视为由于众多偶然因素对时间序列造成的影响(在回归中又被称为扰动项)。

       以上四种变动就是时间序列数值变化的分解结果。有时这些变动会同时出现在一个时间序列里面,有时也可能只出现一种或几种,这是由引起各种变动的影响因素决定的。正是由于变动组合的不确定性,时间序列的数值变化才那么千变万化。        四种变动与指标数值最终变动的关系可能是叠加关系,也可能是乘积关系。

1.5叠加模型和乘积模型

例子:

1.6Spss处理时间序列中的缺失值

缺失值发生在时间序列的开头或者尾部,可采用直接删除的方法; 缺失值发生在序列的中间位置,则不能删除(删除后原有的时间序列会错位),可采用替换缺失值的方法。

 第五讲:相关性模型——相关系数

1.7替换缺失值的五种方法

1.8Spss操作步骤

1.8.1定义时间变量

1.8.2画时间序列图(时序图)

1.8.3季节性分解

1.8.4结果解读

1.8.5画出分解后的时序图

1.9总结

1.9.1分析

1.9.2步骤

(1)作时间序列图; (2)判断时间序列包含的变动成分; (3)时间序列分解(有周期性且包含长期趋势、季节变动或循环变动); (4)建立时间序列分析模型; (5)预测未来的指标数。

二、建立时间序列分析模型 

2.1专家建模器

Spss官方文档的“翻译”: (1)给我一个时间序列,我就能自动帮你找到适合的拟合模型; (2)我提供模型有两类,一类是指数平滑模型,另外一类是ARIMA模型; (3)我可以识别你数据中的异常值,当然需要你来手动指定。

2.2指数平滑模型 

Spss官方文档:

2.2.1Simple模型 

关于平滑系数

标签:4.2,平滑,ARIMA,建模,时间,序列,2.2,模型
From: https://blog.csdn.net/W2663772417/article/details/140739065

相关文章

  • Modelsim仿真实现Verilog HDL序列检测器
    检测接收到的数字序列中出现“10011”的次数。例如输入序列为40位:1100_1001_1100_1001_0100_1100_1011_0010_1100_1011从最高位开始检测,出现了2次:1100_1001_1100_1001_0100_1100_1011_0010_1100_1011所以,序列检测器的计数结果应该是2。状态机如下:当前状态current_stat......
  • 代码审计: ThinkPHP V6.0.12LTS反序列化漏洞复现
    这里写目录标题源码下载一、前缀知识事件回调:二、代码审计查找反序列化路由三、利用链分析构造exp源码下载在我的个人免费资源里面一、前缀知识事件回调:概念:在某个特定事件发生时,系统会调用预先定义好的函数(即回调函数)来处理该事件。回调函数通常作为参数传递给......
  • 三种语言实现双指针判断子序列(C++/Python/Java)
    题目给定一个长度为n的整数序列a1,a2,…,an以及一个长度为m的整数序列b1,b2,…,bm。请你判断a序列是否为b序列的子序列。子序列指序列的一部分项按原有次序排列而得的序列,例如序列{a1,a3,a5}是序列{a1,a2,a3,a4,a5}的一个子序列。输入格式第一行包含两个整数......
  • 2.Request,Response和序列化类
    【一】不同编码格式的http请求django视图类或视图函数的request#只针对post请求的urlencoded编码格式才有数据(<QueryDict:{"a":"a"}>)request.POST#请求地址框中获得数据(<QueryDict:{"a":["a"]}>)request.GET #只取一个request.GET.get('key')......
  • 时间序列分析和集成学习
    时间序列分析(TimeSeriesAnalysis)原理时间序列分析是一种针对时间序列数据的统计和预测方法。时间序列数据是按照时间顺序排列的一组观测值,其分析方法主要包括识别数据模式(如趋势、季节性、周期性等)、构建预测模型和进行未来数据的预测。常用的时间序列模型有自回归移动平均......
  • 为什么 functools.cache 装饰器不能在我的带有记忆功能的斐波那契序列函数上工作?
    我在python中搞乱了记忆,并使用了一个示例斐波那契序列函数作为模型。我将第一个fibonacci()函数编写为常规函数,无需记忆,它按预期工作。接下来,我编写了我的fibonacci_memo()函数,该函数使用带有输出的输入字典来利用记忆化,并且按预期工作。然后我想测试functo......
  • 在 root 或 fsolve 中使用solve_ivp会给出ValueError:使用序列设置数组元素
    我需要求解具有特定参数p的方程组,然后需要找到能够给出所需结果的p值。我的代码看起来像(简化版本)importnumpyasnpfromscipy.integrateimportsolve_ivpfromscipy.optimizeimportrootdefsystem(t,y,alpha):phi,psi,N=ydphi_dt=psidpsi_......
  • 在r语言中使用GAM(广义相加模型)进行电力负荷时间序列分析
    原文链接:http://tecdat.cn/?p=9024原文出处:拓端数据部落公众号  最近我们被要求撰写关于GAM的研究报告,包括一些图形和统计输出。用GAM进行建模时间序列我已经准备了一个文件,其中包含四个用电时间序列来进行分析。数据操作将由data.table程序包完成。将提及的智能电表数据......
  • 二进制序列化和字符串序列化
    经常用json字符串序列化,倒是忘记也可做二进制序列化。在文件上传时,如果序列化为字符串,再按字符串上传,这样是否会数据量变大呢?今天试了试两种序列化方式:dotnet自带的BinaryFormatter和Newtonsoft privatevoidbutton3_Click(objectsender,EventArgse){......
  • 【数学建模导论】Task03 时间序列与投资模型
    前言按照时间排下来的序列,如果比较长的话(数据体量大),一下子看不出什么规律,此时我们就需要用到本篇章的建模方法了。当然预测模型可以按照以下学习路径机器学习(多层感知机、卷积)=>时间序列(LSTM、RNN等)1时间序列的基本概念基本概念顾名思义就是有时间性的序列典型......