这个例子展示了如何应用 季节过滤器来消除时间序列的季节(使用乘法分解)。时间序列是从1949年到1960年的每月国际航班乘客数。
加载航空公司数据集。
负载(“Data_Airline.mat”) y =数据;T =长度(y);图(y) h1 = gca;h1。XLim = [0, T];h1。XTick = 1:12: T;h1。XTickLabel = datestr(日期(1:12:T), 10);标题“航空乘客数量”;抓住在
数据呈上升的线性趋势,具有周期性的季节性成分12。
在估计季节性成分之前,估计和去除线性趋势。应用13次对称的移动平均值,重复第一个和最后一个观察,六次以防止数据丢失。在移动平均值中使用重量1/24,并为所有内部术语的重量1/12。
通过平滑系列划分原始系列以降低数据。将移动的平均趋势估计添加到观察时间序列绘图。
sW13 = (1/24; repmat(1) 1/12, 11日,1/24);y = conv (y, sW13,'相同的');ys(1:6)= ys(7);ys(t-5:t)= ys(t-6);xt = y./ys;情节(ys,“r”,“线宽”, 2)传说([“乘客计数”“13阶级均线”]) 抓住离开
创建一个单元格数组,Sidx.
,存储对应于每个时段的索引。数据是每月的,周期性12,所以第一个元素Sidx.
是一个元素1,13,25,...,133的矢量,(对应于1月观察)。第二个要素Sidx.
是带元素2,14,16,...,134的矢量(对应于二月的观察)。这是所有12个月重复的。
s = 12;sidx =细胞(s, 1);%预先配置为i = 1:s sidx{i,1} = i:s:T;结束sidx {1:2}
ans =.1×12.1 13 25 37 49 61 73 85 97 109 121 133
ans =.1×12.2 14 26 38 50 62 74 86 98 110 122 134
使用单元格阵列存储索引允许每个时段在观察系列的跨度内不会发生相同次数的可能性。
应用一个5
季节性移动平均削弱系列xt
.也就是说,对1月份的值应用移动平均线(在指数1,13,25,…,133处),然后对2月份系列应用移动平均线(在指数2,14,26,…,134处),以此类推。
在移动平均线的末端使用非对称权值(使用conv2
).将平滑的值放回到单个向量中。
将季节性组件置于一个,估计,然后除以估计的季节性组件的13期迁移平均值。
%S3X3季节过滤器%对称权重SW3 = [1/9; 2/9; 1/3; 2/9; 1/9];%不对称权值系列的结束AW3 = [.259 .407; .37 .407; .259 .185; .111 0];%对每个月应用过滤器shat = nan * y;为I = 1:s ns = length(sidx{I});首先= 1:4;last = ns - 3:ns;dat = xt (sidx{我});sd = conv(dat,sw3,'相同的');sd (1:2) = conv2 (dat(第一个),1,rot90 (aW3, 2),'有效的');sd(ns -1:ns) = conv2(dat(last),1,aW3,)'有效的');shat(sidx {i})= sd;结束过滤序列的13项移动平均sW13 = (1/24; repmat(1) 1/12, 11日,1/24);某人= conv (sW13拉屎,'相同的');SB(1:6)= SB(S + 1:S + 6);SB(T-5:T)= Sb(T-S-5:T-S);%中心获得最终估计s33 = shat. /某人;Figure plot(s33) h2 = gca;h2。XLim = [0, T];h2。XTick = 1:12: T;h2。XTickLabel = datestr(日期(1:12:T), 10);标题“估计季节性组件”;
请注意,季节性级别更改数据范围。这说明了一个差异 季节性过滤器和稳定的季节性过滤器。稳定的季节性筛选器假设季节性水平在数据范围内是恒定的。
为了改善趋势分量的估计,将13术语亨德森滤波器应用于季节性调整的系列。以下代码中提供必要的对称和非对称权重。
%延长的销售季节系列dt = y./s33;亨德森滤波器权重%片= (-0.019,-0.028,0;.066;.147 .214;.24; .214; .147 .066; 0; -0.028; -0.019);%不对称权值系列的结束AWH = [-.034 -.017 .045 .148 .279 .421;-.005 .051 .130 .215 .292 .353;.061 .135 .244; 241 .254 .244;.144 .205 .230 .216 .174 .120;.211 .233 .208 .149 .080 .012;.238 .210 .144 .068 .002 -.058;.213 .146 .066 .003 -.039 -.092;.147 .066 .004 -.025 -.042 0;.066 .003 -.020 -.016 0 0;.001 -.022 -.008 0 0 0; -.026 -.011 0 0 0 0 ; -.016 0 0 0 0 0 ];%应用13术语亨德森滤波器第一次= 1:12;去年= T-11: T;h13 = conv (dt,片,'相同的');h13 (T-5:结束)= conv2 (dt(去年),1,不在,'有效的');h13 (1:6) = conv2 (dt(第一个),1,rot90(不在,2),'有效的');%新去趋势系列xt = y / h13;图(y) h3 = gca;h3。XLim = [0, T];h3。XTick = 1:12: T;h3。XTickLabel = datestr(日期(1:12:T), 10);标题“航空乘客数量”;抓住在情节(H13,“r”,“线宽”,2);传奇([“乘客计数”“13任亨德森过滤”]) 抓住离开
得到6。对季节性成分的改进估计,适用于7期 季节性移动平均水平到新的妇女。对称和非对称权重在以下代码中提供。中心季节性估算左右波动。
通过将原始序列除以中心季节估计值来消除其季节性。
% S3x5季节性过滤器%对称权重sW5 = (1/15, 2/15; repmat (1/5, - 3, - 1), 2/15, 1/15);%不对称权值系列的结束aW5 =[。150年.250 .293;.217 .250 2;.217 .250 2;.217 .183 .150;.133 .067 0;.067 0 0];%对每个月应用过滤器shat = nan * y;为I = 1:s ns = length(sidx{I});第一次= 1:6;去年= ns-5: ns;dat = xt (sidx{我});sd = conv (dat sW5,'相同的');sd (1:3) = conv2 (dat(第一个),1,rot90 (aW5, 2),'有效的');sd (ns-2: ns) = conv2 (dat(去年),1,aW5,'有效的');shat(sidx {i})= sd;结束过滤序列的13项移动平均sW13 = (1/24; repmat(1) 1/12, 11日,1/24);某人= conv (sW13拉屎,'相同的');SB(1:6)= SB(S + 1:S + 6);SB(T-5:T)= Sb(T-S-5:T-S);%中心获得最终估计s35 = shat./sb;%延长的销售季节系列dt = y / s35;图(dt) h4 = gca;h4。XLim = [0, T];h4。XTick = 1:12: T;h4。XTickLabel = datestr(日期(1:12:T), 10);标题“航空乘客人数的季节性变化”;
随机化的系列包括长期趋势和不规则的组件。随着季节性分量删除,更容易看到趋势中的转折点。
将原始系列与使用组件估计进行重建的系列进行比较。
图绘图(Y,'颜色',[。85,.85,.85],“线宽”,4)H5 = GCA;h5.xlim = [0,t];H5.xtick = 1:12:T;h5.xticklabel = datestr(日期(1:12:t),10);标题“航空乘客数量”;抓住在情节(H13,“r”,“线宽”2)图(h13。* s35,“k——”,“线宽”传说,1.5)([“乘客计数”“13任亨德森过滤”...“趋势和季节成分”]) 抓住离开
对原系列进行趋势化和季节性调整。绘制不规则分量的剩余估计值。
err = dt./h13;图绘图(IRR)H6 = GCA;H6.xlim = [0,T];H6.xtick = 1:12:T;H6.xtickLabel = Datestr(日期(1:12:T),10);标题'航空公司乘客计数不规则的组件';
你可以选择使用一个平稳的随机过程模型来建模去趋势和去季节的序列。