有季节效应的非平稳序列分析之因素分解

目录

6.1 因素分解理论

6.2因素分解模型

6.2.1因素分解模型的选择

6.2.2趋势效应的提取

        简单中心移动平均的良好属性

        R语言中,使用filter函数可以做简单移动平均

6.2.3 季节效应的提取

6.2.4  X11季节调节模型

        X11模型分析步骤:

​         确定性因素分解函数:

小结


6.1 因素分解理论

1919年英国统计学家W.M.Persons(沃伦.珀森斯)在他的论文“商业环境的指标(Indices ofBusiness Conditions)“中首次提出。

  • 长期趋势(Trend)
  • 循环波动(Circle)
  • 季节性变化(Season)
  • 随机波动(Immediate)

四种因素的相互作用模式

  • 加法模型X_t=T_t+C_t+S_t+I_t
  • 乘法模型X_t=T_t*C_t*S_t*I_t
  • 混合模型模型结构不唯一

部分改进

  • 如果观察时期不够长,循环波动因素可能不考虑
  • 交易日有显著影响,会增加交易日因素( Day)

新的相互作用模式

  • X_t=T_t+C_t+S_t+I_t
  • X_t=T_t*C_t*S_t*I_t
  • X_t=T_t*(C_t+S_t+I_t):伪加法模型
  • lnX_t=lnT_t+lnC_t+lnS_t+lnI_t,:对数加法模型

进行确定性时序分析的目的:
一是克服其它因素的影响,单纯测度出某一个确定性因素对序列的影响。
二是推断出各种确定性因素彼此之间的相互作用关系及它们对序列的综合影响。

6.2因素分解模型

6.2.1因素分解模型的选择

例6-1 澳大利亚政府1981——1990年每季度的消费支出序列 

a<-read.table('D:/桌面/6_1.csv',sep=',',header=T)
x<-ts(b$sales,start=c(1981,1),frequency=4)
plot(x)

返回:

随着趋势的递增,振幅相对稳定,说明季节效应没有受到趋势的影响,通常选择加法模型

例6-2  1993年——2000年的中国社会消费品零售总额序列进行定性时序分析

b<-read.table('D:/桌面/6_2.csv',sep=',',header=T)
y<-ts(b$sales,start=c(1993,1),frequency=12)
plot(y)

返回:

 随着趋势的递增,振幅在增大,说明季节效应受到趋势的影响,通常选择乘法模型。

6.2.2趋势效应的提取

  • 趋势效应的提取方法有很多,比如构建序列与时间t的线性回归方程或曲线回归方程,或者构建序列与历史信息的自回归方程,但在因素分解场合,最常用的趋势效应提取方法是简单中心移动平均方法。
  • 移动平均方法最早于1870年由法国数学家De Forest提出。移动平均的计算公式如下

式中,M(x_t)称为序列x_t的k+f+1期移动平均函数;\theta _i称为移动平均系数或移动平均算子。

  • 简单中心移动平均

对移动平均函数增加三个约束条件——时期对称,系数相等,系数和为1。

例如5期中心移动平均:

  • 复合移动平均

如果移动平均的期数为偶数,那么通常需要进行两次偶数期移动平均才能实现时期对称。记作M_{p\times q}(x_t)

例如:

简单中心移动平均的良好属性

  • 简单中心移动平均方法尽管很简单,但是却具有很多良好的属性:
  1. 简单中心移动平均能够有效提取低阶趋势(一元一次线性趋势或一元二次抛物线趋势)。
  2. 简单中心移动平均能够实现拟合方差最小。
  3. 简单中心移动平均能有效消除季节效应。对于有稳定季节周期的序列进行周期长度的简单移动平均可以消除季节效应。
  • 因为简单中心移动平均具有这些良好的属性,所以,只要选择适当的移动平均期数就能有效消除季节效应和随机波动的影响,有效提取序列的趋势信息。

R语言中,使用filter函数可以做简单移动平均

对上面例6_1做移动评价:

m4<-filter(x/4,rep(1,4)) #4期移动平均
m4_2<-filter(m4/2,rep(1,2),sides=1) #在做一个2期移动平均,赋值给最后一期
data.frame(x,m4,m4_2) #输出结果plot(x,type='o') #绘制时序图
lines(m4_2,col='red') #绘制4期再2期后的移动平均线,为红色

返回:

消除趋势:

x_t = x-m4_2 #消除季节效应趋势
plot(x_t) #时序图

返回:

 例6_2(续)移动评价

m12<-filter(y/12,rep(1,12)) #12期
m12_2<-filter(m12/2,rep(1,2),sides=1) #2期,赋值给最后一期
plot(y) #时序图
lines(m12_2,col='red') #加线

返回:

例6-2续 对于乘法模型..原序列除以趋势效应....就从原序列中剔除了趋势效应,...剩下的就是季节效应和随机波动

y_t = y/m12_2 #消除季节效应趋势
plot(y_t) #时序图

返回:

6.2.3 季节效应的提取

一、加法模型季节效应的提取步骤

例6_1(续)

x_t<-matrix(x_t,ncol=4,byrow=T) #构造矩阵
m<-mean(x_t,na.rm=T) #均值 , na.rm=T 删除空值再求均值
ms<-0 #定义一个空值
for(k in 1:4)ms[k]=mean(x_t[,k],na.rm=T) #for循环求值
s<-ms-m
# 季节指数图
q<-1:4
plot(q,s,type='o')I<-x-m4_2-s #随机因素干扰
plot(I) #时序图

返回:

季节指数图:

随机因素干扰图:

二、乘法季节效应的提取

乘法模型季节效应的提取步骤:

y_t<-matrix(y_t,ncol=12,byrow=T) #构造矩阵
ym<-mean(y_t,na.rm=T)
for(k in 1:12)ms[k]=mean(y_t[,k],na.rm=T)
ys<-yms/ym
month<-1:12
plot(month,ys,type='o') #季节指数图yI<-y/m12_2/ys #随机因素干扰
plot(yI) #时序图

返回:

季节指数图:

随机因素干扰图:

6.2.4  X11季节调节模型

背景介绍:

  • X11模型也称为X11季节调节模型。它是第二次世界大战之后,美国人口普查局委托统计学家进行的基于计算机自动进行的时间序列因素分解方法。构造它的目的是因为很多序列通常具有明显的季节效应,季节性会掩盖序列发展的真正趋势,妨碍人们做出正确判断。因此在进行国情监控研究时,首先需要对序列进行因素分解,分别监控季节性波动和趋势效应。
  • 1954年,第一个基于计算机自动完成的因素分解程序测试版本面世,随后经过10多年的发展,计算方法不断完善,陆续推出了新的测试版本X-1,X-2,-----,X10。
  • 1965年,出统计学家Shiskin,Young和Musgrave共同研发推出了新的测试版本X11。X11在传统的简单移动平均方法的基础上,又创造性地引入两种移动平均方法以补足简单移动平均方法的不足。它通过三种移动平均方法,进行三阶段的因素分解。大量的实践应用证明,对各种特征的序列,X11模型都能进行精度很高的、计算机程序化操作的因素分解。自此,X11模型成为全球统订机构和商业机构进行因素分解时最常使用模型。
  • 1975年,加拿大统计局将ARIMA模型引入X11模型。借助ARIMA模型可以对序列进行向后预测扩允数据,以保证拟合数据的完整性,弥补了中心移动平均方法的缺陷。
  • 1998年,美国人口普查局开发了X12-ARIMA模型。这次是将干预分析(我们将在第八章介绍干预分析)引入X11模型。它是在进行X11分析之前,将一些特殊因素作为干预变量引入研究。这些干预变量包括:特殊节假日、固定季节因素、工作日因素、交易门因素、闰年因素,以及研究人员自行定义的任意白变量。
  • 2006年美国人П普查局再次推出更新版本X13-ARIMA-Seats,它是在X12的基础上,增加了seats季节调整方法。
  • 由这个改进过程我们可以看到,尽管现在有很多因素分解模型的最新版本,但最重要的理论基础依然是X11模型。所以我们主要介绍X11模型的理论基础和操作流程。

一、Henderson加权移动平均

  • 简单移动平均具有很多优良的属性,这使得它成为实务中应用最广的一种移动平均方法,但它也有不足之处。在提取趋势信息的时候,它能很好地提取一次函数(线性趋势)和二次函数(抛物线趋势)的信息,但是对于二次以上曲线,它对趋势信息的提取就不够充分了。
  • 这说明简单移动平均对高阶多项式函数的拟合是不够精确的。为了解决这个问题,X11模型引入了Henderson加权移动平均。 
  • \sum_{i=-k}^{k}\theta _i=1,且\sum_{i=-k}^{k}i\theta _i=0的约束下,是的下式达到最小的系数即为Henderson加权移动平均系数

其中S等于移动平均系数的三阶差分的平方和,这等价于把某个三次多项式作为光滑度的一个指标,要求达到最小,就是力求修匀值接近一条三次曲线。理论上也可以要求逼近更高次数的多项式曲线,比如四次或五次,这时只需要调整函数中的差分阶数。但阶数越高,计算越复杂,所以使用最多的还是3阶差分光滑度要求。

二、Musgrave非对称移动平均

  • 前面两种移动平均方法可以很好地消除趋势,提取线性或非线性趋势信息,但是它们都有一个明显的缺点:因为是中心移动平均,假如移动平均期数为2k+1,那么序列最前面的k期和最后面的k期经过移动平均拟合后,信息就缺失了。
  • 这是严重的信息损失,尤其是最后几期的信息可能正是我们最关心的信息。
  • 1964年,统计学家Musgrave针对这个问题构造了Musgrave非对称移动平均方法,专门对最后k期数据进行补充平滑拟合。
  • Musgrave非对称移动平均的构造思想是:已知一组中心移动平均系数,满足系数和为1、方差最小、光滑度最优等前提约束。现在需要另外寻找一组非中心移动平均系数,也满足系数和为1且.它的拟合值能无限接近中心移动平均的拟合值,即对中心移动平均现有估计值做出的修正最小

min\left \{ E(\sum_{i=-k}^{k}\theta _ix_{t-i}-\sum_{i=-(k-d)}^{k}\phi _ix_{t-i})\right \}^{2},d\leqslant k 

式中,d为补充平滑的项数。

X11模型分析步骤:

第一阶段迭代:

第二阶段:

 确定性因素分解函数

例6_1(续)

xfit<-decompose(x,type='additive')
plot(xfit)

 返回:

观察值序列图,趋势图,季节指数图,随机因素干扰图

例6_2(续)

yfit<-decompose(y,type='multiplicative')
plot(yfit)

返回:

观察值序列图,趋势图,季节指数图,随机因素干扰图

小结

1.因素分解

  • 长期趋势(Trend)
  • 加法模型
  • 循环波动(Circle)
  • 乘法模型
  • 季节性变化(Season)
  • 随机波动(Immediate)

2.趋势效应提取

  • 季节效应提取
  • R语言确定性因素分解decompose 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564752.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python变量的使用_python – 如何在变量中使用冒号(:)

你想要一个 slice() object&#xff1a; index slice(0, 2) print(somelist[index]) slice()模拟您可以在[start&#xff1a;stop&#xff1a;stride]预订语法中指定的start,stop和stride值作为对象. 从文档&#xff1a; Return a 07001 object representing the set of indic…

for循环执行 mybatis_Mybatis中使用循环遍历

Mybatis中传参数的方法1.使用注解绑定&#xff0c;mapper.xml 对应方法 不需要指定 parameterType,(推荐使用注解绑定方式)方法接口&#xff1a;List selectByExample(Param("example") CalculateIdeacommissionsum example,Param("roleNameList") List ro…

指数平滑预测模型

目录 1.分类 2.简单指数平滑 简单指数平滑预测&#xff1a; 平滑系数的确定 R中实现&#xff1a; 3. Holt两参数指数平滑 4. Holt-Winters三参数指数平滑 5.ARIMA加法季节模型 R实现 例题&#xff1a; 1.分类 2.简单指数平滑 简单移动平均法向前预测1期&#xff1a; …

Java反射机制API

实现 Java 反射机制的类都位于 java.lang.reflect 包中&#xff0c;java.lang.Class 类是 Java 反射机制 API 中的核心类。 java.lang.Class 类 java.lang.Class 类是实现反射的关键所在&#xff0c;Class 类的一个实例表示 Java 的一种数据类型&#xff0c;包括类、接口、枚…

ARIMA乘法季节模型

目录 ARIMA乘法季节模型 例题1 例题 2 例题3 ARIMA乘法季节模型 序列的季节效应、长期趋势效应和随机波动之间有着复杂的相互关联性,简单的季节模型不能充分地提取其中的相关关系&#xff0c;这时常采用乘积季节模型。 例题1 我国1949-2008年年末人口总数&#xff08;单…

R语言acres92 region_[R语言 学习笔记] circlize绘制基因组圈图的原理与使用(一)...

由于图形大多由点、线、多边形等简单图形组成&#xff0c;circlize实现了在圆形作图区域添加图形的低级绘图函数&#xff0c;通过低级绘图函数的不同组合&#xff0c;可以轻松生成更复杂的图形。这一原则确保了各种类型的高级图形不会受软件包本身的通用性限制&#xff0c;并且…

python生活中哪些运用_【想把python运用在实际生活中?那么python查询价格方法可以帮助你】- 环球网校...

【摘要】通过本次课程可以让python学员了解一下python查询价格方法&#xff0c;对代码编程有个感性的认知。也好让大家能够理性选择&#xff0c;不要盲目跟从&#xff0c;选择适合自己当前阶段的学习内容&#xff0c;循序渐进&#xff0c;以兴趣自我探索为向导&#xff0c;所以…

机器学习之二分类LDA线性判别(最大特征值法)

目录 一、实验数学原理 二、算法实现步骤 三、实例分析 四、实验结果及分析 一、实验数学原理 线性判别分析((Linear Discriminant Analysis &#xff0c;简称 LDA)是一种经典的线性学习方法&#xff0c;在二分类问题上因为最早由 [Fisher,1936] 提出&#xff0c;亦称 ”Fi…

Java通过反射访问构造方法

为了能够动态获取对象构造方法的信息&#xff0c;首先需要通过下列方法之一创建一个 Constructor 类型的对象或者数组。 getConstructors()getConstructor(Class<?>…parameterTypes)getDeclaredConstructors()getDeclaredConstructor(Class<?>...parameterTypes…

python正则匹配ip_[求助] 正则表达式匹配 IP 地址的问题求助

需求&#xff1a; 有一个列表&#xff0c;表中元素包含IP地址&#xff0c;空元素&#xff0c;文字。想从这个列表中匹配出特定规律的IP地址&#xff0c;列表见下图 testip [‘’, ‘’, ‘’, ‘IP&#xff08;30位&#xff09;’, ‘’, ‘24.45.127.2’, ‘24.45.127.6’, ‘…

在布局空间标注的尺寸量不对_卫生间最佳布局尺寸,合理布局做到1毫米都不浪费!...

房子不论大小里面都会配置一个卫生间&#xff0c;卫生间分为大致三个区域&#xff0c;一个是洗涮区&#xff0c;可以在这里每天洗脸刷牙&#xff0c;还有就是淋浴区我们可以每天在这里洗澡&#xff0c;洗掉一天的疲惫。最后就是如厕区。这三大区域各个设计尺寸不同&#xff0c;…

机器学习 —— 向量机(matlab)

目录 一、SVM基本介绍 1.1 SVM算法定义 1.2 SVM和逻辑回归的区别 二、实验数学原理 三、实验算法和实验步骤 四、实例分析 一、SVM基本介绍 1.1 SVM算法定义 SVM全称是supported vector machine&#xff08;支持向量机&#xff09;&#xff0c;即寻找到一个超平面使样本…

Java通过反射执行方法

要动态获取一个对象方法的信息&#xff0c;首先需要通过下列方法之一创建一个 Method 类型的对象或者数组。 getMethods()getMethods(String name,Class<?> …parameterTypes)getDeclaredMethods()getDeclaredMethods(String name,Class<?>...parameterTypes)访问…

python中的运算符_Python中的运算符

说完常用的数据类型&#xff0c;再来说下运算符。运算符用于将各种类型的数据进行运算&#xff0c;让静态的数据跑起来。 编程语言中的运算大致分为以下几个大类&#xff1a; 算术运算&#xff0c; 用于加减乘除等数学运算 赋值运算&#xff0c;用于接收运算符或方法调用返回的…

excel如何去重统计户数_公式解读第三期 单元格中数字如何去重排序?

公式解读 第三期 -单元格中数字的去重排序&#xff01;本期涉及到函数较多&#xff0c;你可以一次性根据这个案例&#xff0c;学习多少很多常用 函数的用法&#xff0c;同时我也会讲解思路&#xff0c;这个很重要&#xff0c;思路决定了出路。直接先看一下我们的效果图&#xf…

机器学习 —— 神经网络(matlab)

目录 一、介绍 二、实验数学原理 三、实验算法和实验步骤 四、实例分析 一、介绍 神经网络是一种运算模型&#xff0c;由大量的节点&#xff08;或称“神经元”&#xff0c;或“单元”&#xff09;和之间相互联接构成。每个节点代表一种特定的输出函数&#xff0c;称为激励…

Java通过反射访问成员变量

通过下列任意一个方法访问成员变量时将返回 Field 类型的对象或数组。 getFields()getField(String name)getDeclaredFields()getDeclaredField(String name)上述方法返回的 Field 对象代表一个成员变量。例如&#xff0c;要访问一个名称为 price 的成员变量&#xff0c;示例代…

python 类可以调用实例变量_python面向对象中类对象、实例对象、类变量、实例变量、类方法、实例方法、静态方法...

1. 类对象和实例对象 Python中一切皆对象&#xff0c;Python类本身也是一种对象&#xff0c;类定义完成后&#xff0c;会在当前作用域中定义一个以类名为名字的命名空间。类对象具有以下两种操作&#xff1a; 可以通过“类名()”的方式实例化一个对象。 可以通过“类名.类属性”…

python主成分分析法降维_主成分分析降维(MNIST数据集)

今天看了用主成分分析简化数据&#xff0c;就顺便用MNIST数据集做了下实验&#xff0c;想直观地看一下效果&#xff0c;并通过完成这个小demo深入理解下原理。我发现“是什么、能做什么、怎么用、效果是什么、原理是什么、优缺点是什么”这样的思路能让我更好地接受一个新知识&…

ARIMA加法季节模型

目录 ARIMA加法季节模型 ARIMA加法季节模型函数 例题 ARIMA加法季节模型 季节效应和其它效应之间是加法关系 通过简单的趋势差分、季节差分之后转化为平稳&#xff0c;模型结构通常如下 ARIMA加法季节模型函数 例题 部分数据&#xff1a; timexJan-93977.5Feb-93892.5Mar…