时间序列分析与预测
本章主要介绍传统的时间序列分析方法,内容包括时间序列数据的统计描述和预测方法
传统时间序列分析的一项主要内容就是把时间序列的成分从时间序列中分离出来,并用一定的数学关系式表示他们之间的关系。时间序列分析的一个主要目的就是根据已有的历史数据对未来进行预测。
时间序列及其分解
时间序列:是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列。
- 时间序列的分类
- 平稳时间序列:统计规律不会随着时间推移而发生变化的序列,直观上可以看做一条围绕其均值上下波动的曲线,虽然波动程度可能不同,但并不存在某种规律。
- 非平稳时间序列:指序列的均值,方差等参数会随着时间推移而发生变化的序列,即存在长期趋势、季节变动、循环波动中一种或多种成分。
- 有趋势的序列
- 有趋势和季节性的序列
- 几种成分混合而成的序列
- 时间序列的成分
- 趋势T:时间序列在长期内呈现出来的某种持续上升或持续下降的变动
- 季节性S(季节变动):它是时间序列在一年内重复出现的周期性波动。
- 周期性C(循环波动):是时间序列中呈现出来的围绕长期趋势的一种波浪形或振荡式变动。
- 周期性是涨落相间的交替波动
- 循环波动则无固定规律,变动周期多在一年以上,且周期长短不一。而季节波动则有着比较固定的规律,且变动周期大多为一年。
- 随机性I(不规则波动):时间序列中除趋势、季节性和周期性之外的偶然性波动称为随机性。
- 时间序列的分解模型
- 乘法模型:\(Y_t=T_t\times S_t \times C_t \times I_t\)
时间序列的描述性分析
图形分析
趋势:明显的递增或递减
随机波动:没有呈现任何趋势或周期性,季节性
季节性:按月份或季度呈现年度的规律
周期性:周期性的波动
增长率分析
基期 | 发展速度 | 增长率(增长速度) | 平均增长率(平均增长速度) |
---|---|---|---|
前一时期 | 环比发展速度:\(\frac{Y_i}{Y_{i-1}}\) | 环比增长率:\(G_i=\frac{Y_i}{Y_{i-1}}-1,i=1,2,\cdots,n\) | 它是时间序列中逐期环比值的几何平均数减1之后的结果 \(\bar{G}=\sqrt[n]{(\frac{Y_1}{Y_0})(\frac{Y_2}{Y_1})\cdots(\frac{Y_n}{Y_{n-1}})}-1\) |
固定时期 | 定基发展速度:\(\frac{Y_i}{Y_0}\) | 定基增长率:\(G_i=\frac{Y_i}{Y_0}-1,i=1,2,\cdots,n\) | \(\bar{G}=\sqrt[n]{\frac{Y_n}{Y_0}}-1\),与与上面的结果是一样的,只不过有不同的意义 |
增长1%的绝对值=\(\frac{前期水平}{100}\)
因为单纯的增长率可能并不能反映真实水平,比如1万增长了1000,和100增长了10,虽然前者增长较少,但是明显增长的更多.
在应用增长率时应注意: * 当序列中的观察值出现0或负数时,不宜计算增长率 * 在有些情况,不能单纯就增长率论增长率.要注意将增长率与绝对水平结合起来分析。
时间序列预测的程序
第一步 | 趋势的判断 | 季节性的判断 |
---|---|---|
确定时间序列的类型 | 方法 1. 绘制时间的线图 2. 利用回归分析 |
确定季节成分是否存在,至少需要两年的数据 方法 绘制年度折叠时间序列图 如果图中的折线有明显的交叉,则只存在季节成分 如果图中的折线没有交叉并且后面年份都高于(或者低于)前面年度的折线,则既有季节性也有趋势 |
第二步 选择预测方法 | 是否有趋势和季节性 | 方法 |
无趋势和季节性 | 平滑预测法 1. 简单平均法 根据已有的t期观察值通过简单平均来预测下一期的数值 \[F_{t+1}=\frac{1}{t}(Y_1+Y_2+\cdots+Y_t)=\frac{1}{t}\sum_{i=1}^n\] \[预测误差e_{t+1}=F_{t+1}-Y_{t+1}\] 缺点 当序列有趋势或季节性时,预测不够准确 将远期的数值和近期的数值看做对未来同等重要 2. 移动平均法 通过对时间序列逐期递移求得平均数作为预测值的一种预测方法 简单移动平均 将最近的k期数据加以平均,作为下一期的平均值 \[\bar{Y}_t=\frac{Y_{t-k+1}+\cdots+Y_t}{k}\] \[预测:F_{t+1}=\bar{Y}_t=\frac{Y_{t-k+1}+\cdots+Y_t}{k}\] 关键是确定合理的移动间隔k,可通过实验选择一个使均方误差最小的移动间隔 3. 指数平滑法 通过对过去的观察值加权平均进行预测的一种方法,该方法使t+1期的预测值等于t的实际观察值与t期的预测值的加权平均值 一次指数平滑法 他只有一个平滑系数\(\alpha\),而且观察值利预测时期越久远,权数变得越小。\[F_{t+1}=\alpha Y_t+(1-\alpha)F_t=F_t+\alpha(Y_t-F_t)\] 可以看到它既可以理解为一段时期内的预测值与观察值的线性组合作为\(t+1\)期的预测值,也可以理解为t期的预测值\(F_t\)加上用\(\alpha\)调整的t期的预测误差(Y_t-F_t) 一般1期的预测值\(F_1\)假设等于实际观察值Y_1,则\[F_1=Y_1\] \[F_2=Y_1\] \[F_3=\alpha Y_2+(1-\alpha)Y_1\] \[F_4=\alpha Y_3 + \alpha(1-\alpha)Y_2+(1-\alpha)^2Y_1\] 使用时,关键是如何确定一个合适的平滑系数\(\alpha\) 1. 当\(\alpha\)越接近于1,模型对时间序列变化的反应就越及时,那么当时间序列有较大的随机波动时,宜选择较大的\(\alpha\) 2. 当\(\alpha\)越接近于0,意味着给当前的预测值赋予更大的权数,因此当序列较平稳时,可选择较小的\(\alpha\) 3. 但是在实际预测时还是应该考虑预测误差,可以选择几个\(\alpha\)进行预测,然后找出预测误差最小的作为最后的\(\alpha\)值 |
|
只有趋势 | 趋势预测法 1. 线性趋势预测 : 指现象随着时间的推移而呈现出稳定增长或下降的线性变化规律 \[\hat{Y}_t=b_0+b_1t\] \[\begin{cases}b_1=\frac{n\sum tY-\sum t \sum Y}{n\sum t^2-(\sum t)^2} \\ b_0=\bar{Y}-b_1\bar{t}\end{cases}\] 也可以利用趋势方程进行外推预测 误差为估计标准误差\[s_e=\sqrt{\frac{\sum_{i=1}^n(Y_i-\hat{Y}_i)^2}{n-m}} \] m为待估参数的个数,对于直线趋势方程,m=2 2. 非线性趋势预测 (1). 指数曲线 用于描述以几何级数递增或递减的现象,即时间序列的g观察值Y_t按指数规律变化,或者说时间序列的逐期观察值按一定的比率增长或衰减。\[\hat{Y}_t=b_0b_1^t\] 若\(b_1>1\),则增长率随着时间t增加而增加,若\(b_1<1\),则增长率随着时间t的增加而降低;若\(b_0>0,b_1<1\),则预测值\(\hat{Y}\)逐渐降低到以0为限 先取对数,在利用最小二乘 \[lg\hat{Y}_t=lgb_0+tlgb_1\] \[\begin{cases} \sum lgY=nlgb_0+lgb_1\sum t\\ \sum tlgY = lgb_0\sum t+ lgb_1\sum t^2\end{cases}\] (2)多阶曲线 曲线在变化过程中可能有几个拐点,这就需要拟合多项式函数,一个拐点,二阶,两个拐点,三阶,k-1个,需要拟合k阶曲线.\[\hat{Y}_t=b_0+b_1t+\cdots+b_kt^k\] 3. 自回归预测模型 |
|
有季节性(不管有无趋势) | 季节性预测法 1.季节多元回归模型 2.季节自回归模型 3.时间序列分解: 构建模型为\(Y_t=T_t\times S_t \times I_t\) 步骤 1. 确定并分离季节成分。计算季节指数,以确定时间序列中的季节成分.然后将季节成分从时间序列中分离出去,即用每一个时间序列观察值除以相应的季节指数,消除季节性 计算季节指数: 季节指数刻画了序列在一个年度内各月或各季度的典型季度特征。 在乘法模型中,季节指数的平均值应为100、%,它反映了某一月份或季度的数值占全年平均数值的大小。若有明显季节性,则各期季节指数应大于或小于100%;若没有,应等于100%。 计算方法-移动平均趋势剔除法 步骤 (1):计算移动平均值(季度数据,4项移动平均,月度数据,12项移动平均),中心化处理(移动平均结果在再进行一次二项移动平均),即可得出中心化移动平均值(CMA) (2):计算移动平均的比值,也称为季节比率,即将序列的各观察值除以相应的中心化移动平均值,然后计算出各比值的季度或月份平均值 (3)季节指数调整,计算所有季节比率的平均值,然后将季节比率除以平均值,即可得到季节指数(季节指数的均值应为1) 分离季节成分 \[\frac{Y}{S}=T\times I\] 2.建立模型并预测.对消除了季节成分的时间序列建立适当的预测模型. 如果还有趋势,就用趋势的预测方法,若没有趋势,则用平滑预测法。 3计算最后的预测值.用预测值乘以相应的季节指数,得到最终的预测值 |
|
第三步 对可能的预测方法进行评估 | 误差 | 公式 |
平均误差 求和的结果可能抵消,平均误差可能会低估误差 |
\[ME=\frac{\sum_{i=1}^n(Y_i-F_i)}{n}\] | |
平均绝对误差 可以准确反映实际预测误差的大小 |
\[MSD=\frac{\sum_{i=1}^n|Y_i-F_i|}{n}\] | |
均方误差 |
\[MSE=\frac{\sum_{i=1}^n(Y_i-F_i)^2}{n}\] | |
平均百分比误差 ME,MAD,MSE的大小受时间序列数据的水平和计量单位的影响,有时并不能真正反映预测模型的好坏,他们只有在比较不同模型对同一数据的预测时才有意义。消除了时间序列数据的水平和计量单位的影响,是反映误差大小的相对值。 |
\[MPE=\frac{\sum_{i=1}^n(\frac{Y_i-F_i}{Y_i}\times 100)}{n}\] | |
平均绝对百分比误差 意义同上 |
\[MAPE=\frac{\sum_{i=1}^n(\frac{|Y_i-F_i|}{Y_i}\times 100)}{n}\] | |
第四步,利用最佳预测方案进行预测 | 具体方法见第二步 |