目录
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)
四种因素的相互作用模式
- 加法模型
- 乘法模型
- 混合模型模型结构不唯一
部分改进
- 如果观察时期不够长,循环波动因素可能不考虑
- 交易日有显著影响,会增加交易日因素( Day)
新的相互作用模式
- :伪加法模型
- ,:对数加法模型
进行确定性时序分析的目的:
一是克服其它因素的影响,单纯测度出某一个确定性因素对序列的影响。
二是推断出各种确定性因素彼此之间的相互作用关系及它们对序列的综合影响。
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提出。移动平均的计算公式如下
式中,称为序列的k+f+1期移动平均函数;称为移动平均系数或移动平均算子。
- 简单中心移动平均
对移动平均函数增加三个约束条件——时期对称,系数相等,系数和为1。
例如5期中心移动平均:
- 复合移动平均
如果移动平均的期数为偶数,那么通常需要进行两次偶数期移动平均才能实现时期对称。记作
例如:
简单中心移动平均的良好属性
- 简单中心移动平均方法尽管很简单,但是却具有很多良好的属性:
- 简单中心移动平均能够有效提取低阶趋势(一元一次线性趋势或一元二次抛物线趋势)。
- 简单中心移动平均能够实现拟合方差最小。
- 简单中心移动平均能有效消除季节效应。对于有稳定季节周期的序列进行周期长度的简单移动平均可以消除季节效应。
- 因为简单中心移动平均具有这些良好的属性,所以,只要选择适当的移动平均期数就能有效消除季节效应和随机波动的影响,有效提取序列的趋势信息。
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加权移动平均。
- 在,且的约束下,是的下式达到最小的系数即为Henderson加权移动平均系数
其中S等于移动平均系数的三阶差分的平方和,这等价于把某个三次多项式作为光滑度的一个指标,要求达到最小,就是力求修匀值接近一条三次曲线。理论上也可以要求逼近更高次数的多项式曲线,比如四次或五次,这时只需要调整函数中的差分阶数。但阶数越高,计算越复杂,所以使用最多的还是3阶差分光滑度要求。
二、Musgrave非对称移动平均
- 前面两种移动平均方法可以很好地消除趋势,提取线性或非线性趋势信息,但是它们都有一个明显的缺点:因为是中心移动平均,假如移动平均期数为2k+1,那么序列最前面的k期和最后面的k期经过移动平均拟合后,信息就缺失了。
- 这是严重的信息损失,尤其是最后几期的信息可能正是我们最关心的信息。
- 1964年,统计学家Musgrave针对这个问题构造了Musgrave非对称移动平均方法,专门对最后k期数据进行补充平滑拟合。
- Musgrave非对称移动平均的构造思想是:已知一组中心移动平均系数,满足系数和为1、方差最小、光滑度最优等前提约束。现在需要另外寻找一组非中心移动平均系数,也满足系数和为1且.它的拟合值能无限接近中心移动平均的拟合值,即对中心移动平均现有估计值做出的修正最小
式中,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