
利用excel进行时间序列的谱分析(i).doc
17页1利用 Excel 进行时间序列的谱分析(I)在频域分析中,功率谱是揭示时间序列周期特性的最为有力的工具之一下面列举几个例子,分别从不同的角度识别时间序列的周期1 时间序列的周期图【例 1】某水文观测站测得一条河流从 1979 年 6 月到 1980 年 5 月共计 12 月份的断面平均流量试判断该河流的径流量变化是否具有周期性,周期长度大约为多少?分析:假定将时间序列 xt展开为 Fourier 级数,则可表示为(1) ki tiiiit fbtfa1 )2sncos( 式中 fi为频率,t 为时间序号, k 为周期分量的个数即主周期(基波)及其谐波的个数,ε t为标准误差(白噪声序列) 当频率 fi给定时,式(1)可以视为多元线性回归模型,可以证明,待定系数 ai、b i的最小二乘估计为(2)Ntiitii tfxba12snˆco这里 N 为观测值的个数定义时间序列的周期图为, (3))()(2iiiafIk,L式中 I(fi)为频率 fi处的强度以 fi为横轴,以 I(fi)为纵轴,绘制时间序列的周期图,可以在最大值处找到时间序列的周期。
对于本例,N=12,t =1,2,…,N,f i=i/N,下面借助 Excel,利用上述公式,计算有关参数并分析时间序列的周期特性第一步,录入数据,并将数据标准化或中心化(图 1) 图 1 录入的数据及其中心化结果2中心化与标准化的区别在于,只需将原始数据减去均值,而不必再除以标准差不难想到,中心化的数据均值为 0,但方差与原始数据相同(未必为 1) 第二步,计算三角函数值为了借助式(1)计算参数 ai、b i,首先需要计算正弦值和余弦值取 ,则频率为 (图 1) 6,2Li 2/6,/,12/LNfi将频率写在单元格 C3-C14 中(根据对称性,我们只用前 6 个) ,将中心化的数据转置粘贴于第一行的单元格 D1-O1 中,月份的序号写在单元格 D2-O2 中(与中心化数据对齐) 图 2 计算余弦值的表格在 D2 单元格中输入公式“=COS($B$1*$D$2*C3)” ,回车得到 0.866;按住单元格的右下角右拉至 O3 单元格,得到 f=1/12=0.083,t=1,2,…,12 时的全部余弦值在 D2 单元格中输入公式“=COS($B$1*$D$2*C4)” ,回车得到 0.5;按住单元格的右下角右拉至 O4 单元格,得到 f=2/12=0.167,t=1,2, …,12 时的全部余弦值。
依次类推,可以算出全部所要的余弦值(在 D3-O8 区域中) 根据对称性,我们的计算到 k=6 为止( 图 2) 注意,这里 B1 单元格是 2π=6.28319(图中未能显示) 在上面的计算中,只要将公式中的“COS”换成“SIN” ,即可得到正弦值,不过为了计算过程清楚明白,最好在另外一个区域给出结算结果(在 D17-O22 区域中,参见图 3) 图 3 计算正弦值的表格第三步,计算参数 ai、b i利用中心化的数据(仍然表作 xt)计算参数 ai、b i首先算出 xtcos2πfit 和 xtsins2πfit在 D9 单元格中输入公式“=D1*D3” ,回车得到 18.309;按住单元格的右下角右拉至 O9 单元格,得到 f=1/12=0.083,t=1,2,…,12 时的全部 xtcos2πfit 值;加和得 39.584,再除以 6,即得 a1=6.597在 D10 单元格中输入公式“=D1*D4 ”,回车得到 10.571;按住单元格的右下角右拉至 O10 单元格,得到 f=2/12=0.083,t=1,2,…,12 时的全部 xtcos2πfit 值;加和得-365.25,再除以 6,得到 a2=-60.875。
其余依此类推3将上面公式中的余弦值换成正弦值,即可得到 bi值(见下表) 上面的计算过程相当于采用式(2)进行逐步计算第四步,计算频率强度利用式(3) ,非常容易算出 I(fi)值例如 914.706)213.0597.6*2)(211 baNfI其余依此类推(见图 4) 图 4 计算频率强度第五步,绘制时间序列周期图利用图 4 中的数据,不难画出周期图(图 5) 0200004000060000800001000001200001400001600001800002000000 0.1 0.2 0.3 0.4 0.5 0.6频 率频率强度图 5 某河流径流量的周期图(1979 年 6 月-1980 年 5 月)第六步,周期识别关键是寻找频率的极值点或突变点在本例中,没有极值点,但在 f1=1/12=0.0833 处,频率强度突然增加(陡增) ,而此时 T=1/f1=12,故可判断时间序列可能存在一个 12 月的周期,即 1 年周期4【例 2】为了映证上述判断,我们借助同一条河流的连续两年的平均月径流量(1961 年6 月-1963 年 5 月) 原始数据见下图(图 6) 图 6 原始数据及部分处理结果将原始数据回车时间序列变化图,可以初步估计具有 12 月变化周期,但不能肯定(图 6) 。
0501001502002503003500 5 10 15 20 25 30时 间 ( 月 份 序 号 )月平均径流量5图 6 径流量的月变化图(1961 年 6 月-1963 年 5 月)按照例 1 给出的计算步骤,计算参数数 ai、b i,进而计算频率强度(结果将图 7) 然后绘制时间序列的周期图(图 8) 注意这里,N=24,我们取 k=12图 7 参数和频率强度的计算结果从图 8 中可以看出,频率强度的最大值(极值点)对应于频率 f1=1/12=0.0833,故时间序列的周期判断为 T=1/f1=12这与用 12 月的数据进行估计的结果是一致的,但由于例 2的时间序列比例 1 的时间序列长 1 倍,故判断结果更为可靠0200004000060000800001000001200001400000 0.1 0.2 0.3 0.4 0.5 0.6频 率频率强度图 8 某河流径流量的周期图(1961 年 6 月-1963 年 5 月)2 时间序列的频谱图【例 3】首先考虑对例 1 的数据进行功率谱分析例 1 的时间序列较短,分析的效果不佳,但计算过程简短给出这个例子,主要是帮助大家理解 Fourier 变换过程和方法。
为了进行 Fourier 分析,需要对数据进行预处理第一,将数据中心化,即用原始数据减去其平均值中心化的数据均值为 0,我们对中心化的数据进行变换,其周期更为明显第二,由于 Fourier 分析通常采用所谓快速 Fourier 变换(Fast Fourier Transformation,FFT) ,而6FFT 要求数据必须为 2n个,这里 n 为正整数(1,2,3,…) ,而我们的样本为 N=12,它不是 2的某个 n 次方因此,在中心化的数据后面加上 4 个 0,这样新的样本数为N′=12 +4=16=2 4 个,这才符合 FFT 的需要(图 9) 下面,我们对延长后的中心化数据进行 Fourier 变换图 9 数据的中心化与“延长”第一步,打开 Foureir 分析对话框沿着主菜单的“工具(Tools ) ”→“数据分析(Data Analysis) ”路径打开数据分析选项框(图 10) ,从中选择“傅立叶分析(Fourier Analysis) ”图 10 在数据分析选项框中选择 Fourier 分析第二步,定义变量和输出区域确定之后,弹出傅立叶分析对话框,根据数据在工作表中的分布情况进行如下设置:将光标置于“输入区域”对应的空白栏,然后用鼠标选中单元格 C1-C17,这时空白栏中自动以绝对单元格的形式定义中心化数据的区域范围(即$C$1-$C$17) 。
选中“标志位于第一行” 选中输出区域,定义范围为 D2-D17(图 11) 注意:如果输入区域的数据范围定义为 C2-C17,则不要选中“标志位于第一行” ,这与回归分析中的原始变量定义是一样的(图 12) 如果不定义输出区域范围,则变换结果7将会自动给在新的工作表组上这一点也与回归分析一样图 11 选中“标志位于第一行”与数据输入范围的定义图 12 不选中“标志位于第一行”与数据输入范围的定义第三步,结果转换定义数据输入-输出区域完成之后,确定,立即得到 Fourier 变换的结果(图 13) 图 13 傅立叶变换的结果8变换的结果为一组复数,相当于将 f(t)变成了 F(ω),实际上是将 xt变成了 XT(f)我们知道,有了 f(t)的象函数 F(ω)就可以计算能量谱密度函数 S(ω),即有(4)2S相应地,有了 XT(f)也就容易计算功率谱(密度)(5)TfXfP2)()(式中 f 表示线频率,与角频率 ω 的转换关系是 ω=2π/T,这里 T 为数据区间长度如果将 XT(f)表作 XT(f)=A+jB(这里 A 为实部,B 为虚部) ,则有(6)22 ))(() iiiiiiii BAjjf 因此这一步是要分离变换结果的实部与虚部。
逐个手动提取是非常麻烦而且容易出错的,可以利用 Excel 有关复数计算的命令提取实部的 Excel 命令是 imreal在 H2 单元格中输入命令“=IMREAL(D2)” (这里 D2 为变换结果的第一个复数所在的单元格) ,回车得到第一个复数的实部 0;点中 H2 单元格的右下角,揿住鼠标左键下拉至 H17,得到全部的实部数值提取虚部的命令是 imaginary在 I2 单元格中输入公式 “=IMAGINARY(D2)”,回车得到第一个复数的虚部 0;下拉至 I17,得到全部的虚部数值根据式(5) 、 (6) ,功率谱密度的计算公式为(7)TBAfPiii2)(考虑到本例中 T=N=16,在 J2 单元格中输入公式“=(H2^2+I2^2)/16” ,回车得到第一个功率谱密度 0;下拉至 J17,得到全部谱密度数值(图 14) 基于 FFT 的谱密度分布是对称的,可以看出,以 J10 所在的 3105.28 为对称点,上下的数值完全对称图 14 功率谱密度的计算结果9第四步,绘制频谱图线频率 fi可以表作, -1NiTfi/,210L显然 f0=0/16=0,f 1=1/16=0.0625,f 2=2/16=0.125,…,f 15=15/16=0.9375。
在 Excel 中,容易计算频率的数值将频率与功率谱对应起来(图 15) ,就可以画出频谱图如果补上最后一个频率数值 f16=1 及其对应的功率 0,则可画出完全对称的谱图(图 16) 图 15 功率谱密度与频率的对应关系0100002000030000400005000060000700000 0.2 0.4 0.6 0.8 1频 率 f功率谱密度P(f)图 16 对称分布的频谱图由于功率谱图的对称性,画出整个谱图实在没有必要,因此,在实际工作中,通常只画出左半边(图 17) 100100002000030000400005000060000700000 0.1 0.2 0.3 0.4 0.5 0.6频 率 f功率P(f)图 17 实用的频谱图第五步,功率谱分析频域分析的主要目标之一是判断时间序列是否存在周期性从图 17 可以看出,功率最大点对应的频率是 f1=0.0625,该频率对应的周期长度为 16可见,在时间序列较短的情况下之间用功率谱图寻找时间序列的周期不如周期图准确另外可以初步估计数据的性质在图 17 中,去掉第一个 0 点,剩余的点一般呈幂指数分布(在双对数坐标图上点列具有直线趋势) ,可以拟合幂指数函数如下:(8)fP)(P(f) = 935.68f。
