时间序列分析_时间序列分析r - CSDN
时间序列分析 订阅
时间序列分析(Time-Series Analysis)是指将原来的销售分解为四部分来看——趋势、周期、时期和不稳定因素, 然后综合这些因素, 提出销售预测。强调的是通过对一个区域进行一定时间段内的连续遥感观测,提取图像有关特征,并分析其变化过程与发展规模。当然,首先需要根据检测对象的时相变化特点来确定遥感监测的周期,从而选择合适的遥感数据。 [1] 展开全文
时间序列分析(Time-Series Analysis)是指将原来的销售分解为四部分来看——趋势、周期、时期和不稳定因素, 然后综合这些因素, 提出销售预测。强调的是通过对一个区域进行一定时间段内的连续遥感观测,提取图像有关特征,并分析其变化过程与发展规模。当然,首先需要根据检测对象的时相变化特点来确定遥感监测的周期,从而选择合适的遥感数据。 [1]
信息
应    用
统计分析
外文名
Time series analysis
分    类
确定性变化分析和随机性变化分析
中文名
时间序列分析
简    介
动态数据处理的统计方法
学    科
数学
时间序列分析基础知识
时间序列是按时间顺序的一组数字序列。 [2]  时间序列的特点:时间序列建模基本步骤是:
收起全文
精华内容
参与话题
  • 时间序列分析和预测(含实例及代码)

    万次阅读 多人点赞 2020-07-10 10:54:48
    导论 研究时间序列主要目的:进行预测,根据已有的时间序列数据预测未来的变化。 时间序列预测关键:确定已有的时间序列的变化模式,并假定这种模式会延续到未来。...时间序列分析就其发展历史阶段和所使...

    导论

    研究时间序列主要目的:进行预测,根据已有的时间序列数据预测未来的变化。

    时间序列预测关键:确定已有的时间序列的变化模式,并假定这种模式会延续到未来。

    时间序列预测法的基本特点
    • 假设事物发展趋势会延伸到未来
    • 预测所依据的数据具有不规则性
    • 不考虑事物发展之间的因果关系

    时间序列数据用于描述现象随时间发展变化的特征

    时间序列分析就其发展历史阶段和所使用的统计分析方法看:传统的时间序列分析和现代时间序列分析

    一、时间序列及其分解

    时间序列(time series)是同一现象在不同时间上的相继观察值排列而成的序列。根据观察时间的不同,时间序列中的时间可以是可以是年份、季度、月份或其他任何时间形式。

    时间序列:

    (1)平稳序列(stationary series)

    是基本上不存在趋势的序列,序列中的各观察值基本上在某个固定的水平上波动,在不同时间段波动程度不同,但不存在某种规律,随机波动

    (2)非平稳序列(non-stationary series)

    是包含趋势、季节性或周期性的序列,只含有其中一种成分,也可能是几种成分的组合。可分为:有趋势序列、有趋势和季节性序列、几种成分混合而成的复合型序列。

    趋势(trend):时间序列在长时期内呈现出来的某种持续上升或持续下降的变动,也称长期趋势。时间序列中的趋势可以是线性和非线性。

    季节性(seasonality):季节变动(seasonal fluctuation),是时间序列在一年内重复出现的周期波动。销售旺季,销售淡季,旅游旺季、旅游淡季,因季节不同而发生变化。季节,不仅指一年中的四季,其实是指任何一种周期性的变化。含有季节成分的序列可能含有趋势,也可能不含有趋势。

    周期性(cyclicity):循环波动(cyclical fluctuation),是时间序列中呈现出来的围绕长期趋势的一种波浪形或振荡式波动。周期性是由商业和经济活动引起的,不同于趋势变动,不是朝着单一方向的持续运动,而是涨落相间的交替波动;不同于季节变动,季节变动有比较固定的规律,且变动周期大多为一年,循环波动则无固定规律,变动周期多在一年以上,且周期长短不一。周期性通常是由经济环境的变化引起。

    除此之外,还有偶然性因素对时间序列产生影响,致使时间序列呈现出某种随机波动。时间序列除去趋势、周期性和季节性后的偶然性波动,称为随机性(random),也称不规则波动(irregular variations)。

    时间序列的成分可分为4种:趋势(T)、季节性或季节变动(S)、周期性或循环波动(C)、随机性或不规则波动(I)。传统时间序列分析的一项主要内容就是把这些成分从时间序列中分离出来,并将它们之间的关系用一定的数学关系式予以表达,而后分别进行分析。按4种成分对时间序列的影响方式不同,时间序列可分解为多种模型:加法模型(additive model),乘法模型(multiplicative model)。乘法模型:Y_t=T_t\times S_t\times C_t\times I_t

    二、描述性分析

    1、图形描述

    2、增长率分析

    是对现象在不同时间的变化状况所做的描述。由于对比的基期不同,增长率有不同的计算方法。

    (1)增长率(growth rate):增长速度,是时间序列中报告期观察值与基期观察值之比减1后的结果,用%表示。由于对比的基期不同,可分为环比增长率和定基增长率。

    环比增长率:是报告期观察值与前一时期观察值之比减1,说明现象逐期增长变化的程度;

    定基增长率是报告期观察值与某一固定时期观察值之比减1,说明现象在整个观察期内总的增长变化程度。

    设增长率为G:          环比增长率 :G_i=\frac{Y_i-Y_{i-1}}{Y_{i-1}}=\frac{Y_i}{Y_{i-1}}-1,i=1,2...,n

                                           定基增长率 :G_i=\frac{Y_i-Y_{0}}{Y_{0}}=\frac{Y_i}{Y_{0}}-1,i=1,2...,n

    (2)平均增长率(average rate of increase):平均增长速度,是时间序列中逐期环比值(环比发展速度)的几何平均数减1的结果:\bar{G}=\sqrt[n]{\frac{Y_1}{Y_{0}}\times \frac{Y_2}{Y_{1}}...\times \frac{Y_n-Y_{n-1}}{Y_{i-1}}}-1=\sqrt[n]{\frac{Y_n}{Y_{0}}}-1   n:环比值的个数

    (3)增长率分析中应注意的问题

    i:    当时间序列中的观察出现0或负数时,不宜计算增长率。这种序列计算增长率,要么不符合数学公理,要么无法解释其实际意义。可用绝对数进行分析。

    ii:    有些情况下,不能单纯就增长率论增长率,注意增长率与绝对水平结合起来。增长率是一个相对值,与对比的基数值的大小有关。这种情况,计算增长1%的绝对值来克服增长率分析的局限性:

    增长1%的绝对值表示增长率每增长一个百分点而增加的绝对数量:增长1%的绝对值=前期水平/100

    三、时间序列预测的程序

    时间序列分析的主要目的之一是根据已有的历史数据对未来进行预测。时间序列含有不同的成分,如趋势、季节性、周期性和随机性。对于一个具体的时间序列,它可能含有一种成分,也可能同时含有几种成分,含有不同成分的时间序列所用的预测方法是不同的。预测步骤:

    第一步:确定时间序列所包含的成分,确定时间序列的类型

    第二步:找出适合此类时间序列的预测方法

    第三步:对可能的预测方法进行评估,以确定最佳预测方案

    第四步:利用最佳预测方案进行预测

    1、确定时间序列成分

    (1)确定趋势成分

    确定趋势成分是否存在,可绘制时间序列的线图,看时间序列是否存在趋势,以及存在趋势是线性还是非线性。

    利用回归分析拟合一条趋势线,对回归系数进行显著性检验。回归系数显著,可得出线性趋势显著的结论。

    (2)确定季节成分

    确定季节成分是否存在,至少需要两年数据,且数据需要按季度、月份、周或天来记录。可绘图,年度折叠时间序列图(folded annual time series plot),需要将每年的数据分开画在图上,横轴只有一年的长度,每年的数据分别对应纵轴。如果时间序列只存在季节成分,年度折叠时间序列图中的折线将会有交叉;如果时间序列既含有季节成分又含有趋势,则年度折叠时间序列图中的折线将不会有交叉,若趋势上升,后面年度的折线将会高于前面年度的折线,若下降,则后面年度的折线将会低于前面年度的折线。

    2、选择预测方法

    确定时间序列类型后,选择适当的预测方法。利用时间数据进行预测,通常假定过去的变化趋势会延续到未来,这样就可以根据过去已有的形态或模式进行预测。时间序列的预测方法:传统方法:简单平均法、移动平均法、指数平滑法等,现代方法:Box-Jenkins 的自回归模型(ARMA)。

    一般来说,任何时间序列都会有不规则成分存在,在商务和管理数据中通常不考虑周期性,只考虑趋势成分和季节成分。

    不含趋势和季节成分的时间序列,即平稳时间序列只含随机成分,只要通过平滑可消除随机波动。因此,这类预测方法也称平滑预测方法。

    3、预测方法的评估

    在选择某种特定的方法进行预测时,需要评价该方法的预测效果或准确性。评价方法是找出预测值与实际值的差距,即预测误差。最优的预测方法就是预测误差达到最小的方法。

    预测误差计算方法:平均误差,平均绝对误差、均方误差、平均百分比误差、平均绝对百分比误差。方法的选择取决于预测者的目标、对方法的熟悉程度。

    (1)平均误差(mean error):Y:观测值,F:预测值,n预测值个数

                   ME=\frac{\sum_{i=1}^{n}(Y_i-F_i)}{n}     

    由于预测误差的数值可能有正有负,求和的结果就会相互抵消,这种情况下,平均误差可能会低估误差。

    (2)平均绝对误差(mean absolute deviation)是将预测误差取绝对值后计算的平均无擦,MAD:

                  MAD=\frac{\sum_{i=1}^{n}|Y_i-F_i|}{n}

    平均绝对误差可避免误差相互抵消的问题,因而可以准确反映实际预测误差的大小。

    (3)均方误差(mean square error):通过平方消去误差的正负号后计算的平均误差,MSE:

                MSE=\frac{\sum_{i=1}^{n}(Y_i-F_i)^2}{n}

    (4)平均百分比误差和平均绝对百分比误差

    ME,MAD,MSE的大小受时间序列数据的水平和计量单位的影响,有时并不能真正反映预测模型的好坏,只有在比较不同模型对同一数据的预测时才有意义。平均百分比误差(mean percentage error,MPE)和平均绝对百分比误差(mean absolute percentage error,MAPE)则不同,它们消除了时间序列数据的水平和计量单位的影响,是反映误差大小的相对值。

    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}

    4、平稳序列的预测

    平稳时间序列只含有随机成分,预测方法:简单平均法、移动平均法、指数平滑法。主要通过对时间序列进行平滑以消除随机波动,又称平滑法。平滑法可用于对时间序列进行短期预测,也可对时间序列进行平滑以描述序列的趋势(线性趋势和非线性趋势)。

    (1)简单平均法:根据已有的t期观察值通过简单平均法来预测下一期的数值。设时间序列已有的t期观察值为Y_1,Y_2,...,Y_t,则t+1期的预测值F_{t+1}为:F_{t+1}=\frac{1}{t}(Y_1+Y_2+...+Y_t)=\frac{1}{t}\sum_{i=1}^{t} Y_i

    到了t+1期后,有了t+1期的实际值,t+1期的预测误差e_{t+1}为:e_{t+1}=Y_{t+1}-F_{t+1}

    t+2期预测值:F_{t+2}=\frac{1}{t+1}(Y_1+Y_2+...+Y_t+Y_{t+1})=\frac{1}{t+1}\sum_{i=1}^{t+1} Y_i

    简单平均法适合对较为平稳的时间序列进行预测,即当时间序列没有趋势时,用该方法比较好。但如果时间序列有趋势或季节成分,该方法的预测则不够准确。简单平均法将远期的数值和近期的数值看作对未来同等重要。从预测角度,近期的数值比远期的数值对未来有更大的作用,因此简单平均法预测的结果不够准确。

    (2)移动平均法(moving average):通过对时间序列逐期递移求得平均数作为预测值的一种预测方法,有简单移动平均法(simple moving average)和加权移动平均法(weighted moving average).

    简单移动平均将最近k期数据加以平均,作为下一期的预测值。设移动平均间隔为k(1<k<t),则t期的移动平均值为:

    \bar{Y}_{t}=\frac{Y_{t-k+1}+Y_{t-k+2}+...+Y_{t-1}+Y_{t}}{k}  是对时间序列的平滑结果,通过这些平滑值可描述出时间序列的变化形态或趋势。也可以用来预测。

    t+1期的简单移动平均预测值为:F_{t+1}=\bar{Y}_{t}=\frac{Y_{t-k+1}+Y_{t-k+2}+...+Y_{t-1}+Y_{t}}{k}

    t+2期的简单移动平均预测值为:F_{t+2}=\bar{Y}_{t+1}=\frac{Y_{t-k+2}+Y_{t-k+3}+...+Y_{t}+Y_{t+1}}{k}

    移动平均法只使用最近k期的数据,在每次计算移动平均值时,移动的间隔都为k,也适合对较为平稳的时间序列进行预测。应用关键是确定合理的移动平均间隔k。对于同一个时间序列,采用不同的移动间隔,预测的准确性是不同的。可通过试验的方法,选择一个使均方误差达到最小的移动间隔。移动间隔小,能快速反映变化,但不能反映变化趋势;移动间隔大,能反映变化趋势,但预测值带有明显的滞后偏差。

    移动平均法的基本思想:移动平均可以消除或减少时间序列数据受偶然性因素干扰而产生的随机变动影响,适合短期预测。

    (3)指数平滑法(exponential smoothing)是通过对过去的观察值加权平均进行预测,使t+1期的预测值等t期的实际观察值与t期的预测值的加权的平均值。指数平滑法是从移动平均法发展而来,是一种改良的加权平均法,在不舍弃历史数据的前提下,对离预测期较近的历史数据给予较大权数,权数由近到远按指数规律递减,因此称指数平滑。指数平滑有一次指数平滑法、二次指数平滑法、三次指数平滑法等。

    一次指数平滑法也称单一指数平滑法(single exponential smoothing),只有一个平滑系数,且观察值离预测时期越久远,权数变得越小。一次指数平滑是将一段时期的预测值与观察值的线性组合作为t+1时期的预测值,预测模型为:

    F_{t+1}=\alpha Y_t+(1-\alpha )F_t      \alpha:平滑系数(0\leq \alpha\leq 1

    t+1期的数据是t期的实际观察值与t期的预测值的加权平均。1期的预测值=1期的观察值

    2期预测值:F_{2}=\alpha Y_1+(1-\alpha )F_1=\alpha Y_1+(1-\alpha )Y_1=Y_1

    3期预测值:F_{3}=\alpha Y_2+(1-\alpha )F_2=\alpha Y_2+(1-\alpha )Y_1

    4期预测值:F_{4}=\alpha Y_3+(1-\alpha )F_3=\alpha Y_3+\alpha (1-\alpha )Y_2+ (1-\alpha )^2Y_1

    对指数平滑法的预测精度,用均方误差来=衡量:

    F_{t+1}=\alpha Y_t+(1-\alpha )F_t

              =F_t+\alpha (Y_t-F_t)

    F_{t+1}是t期的预测值F_{t}加上用\alpha调整的t期预测误差(Y_t-F_t)。

    使用指数平滑法时, 关键问题是确定一个合适的平滑系数\alpha,不同的\alpha对预测结果产生不同的影响。

    \alpha=0,预测值仅仅是重复上一期的预测结果;\alpha=1,预测值就是上一期的实际值;

    \alpha越接近1,模型对时间序列变化的反应就越及时,因为它给当前的实际值赋予了比预测值更大的权数;

    \alpha越接近0,给当前的预测值赋予了更大的权数,模型对时间序列变化的反应就越慢。

    当时间序列有较大随机波动时,选较大\alpha,以便能很快跟上近期的变化;当时间序列比较平稳时,选较小\alpha

    实际应用中,需考虑预测误差,用均方误差衡量预测误差大小。确定\alpha时,可选择几个\alpha进行预测,然后找出预测误差最小的作为最后的\alpha值。

    与移动平均法一样,一次指数平滑法可用于对时间序列进行修匀,以消除随机波动,找出序列的变化趋势。

    用一次指数平滑法进行预测时,一般\alpha取值不大于0.5,若大于0.5,才能接近实际值,说明序列有某种趋势或波动过大。

    阻尼系数  \beta=1-\alpha ,阻尼系数越小,近期实际值对预测结果的影响越大,反之,越小。阻尼系数是根据时间序列的变化特性来选取。

    5、趋势型序列的预测

    时间序列的趋势可分为线性趋势和非线性趋势,若这种趋势能够延续到未来,就可利用趋势进行外推预测。有趋势序列的预测方法主要有线性趋势预测、非线性趋势预测和自回归模型预测。

    (1) 线性趋势预测

    线性趋势(linear trend)是指现象随着时间的推移而呈现稳定增长或下降的线性变化规律。

    趋势方程:\hat{Y}_t=b_0+b_1t     \hat{Y}_t:时间序列Y_t的预测值;b_1是趋势线斜率,表示时间t 变动一个单位,观察值的平均变动数量

    (2) 非线性趋势预测

    序列中的趋势通常可认为是由于某种固定因素作用同一方向所形成的。若这种因素随时间推移按线性变化,则可对时间序列拟合趋势直线;若呈现出某种非线性趋势(non-linear trend),则需要拟合适当的趋势曲线。

    i:   指数曲线(exponential curve):用于描述以几何级数递增或递减的现象,即时间序列的观察值Y_t按指数规律变化,或者时间序列的逐期观察值按一定的增长率增长或衰减。一般的自然增长及大多数经济序列都有指数变化趋势。

    趋势方程:\hat{Y}_t=b_0b_1^{t}     b_0,b_1为待定系数

    b_1>1,则增长率随着时间t的增加而增加;若b_1<1,则增长率随着时间t的增加而降低;若b_0>0,b_1<1,则预测值\hat{Y}_t逐渐降低以到0为极限。

    为确定b_0,b_1,可采用线性化手段将其化为对数直线形式,两端取对数:lg\hat{Y}_t=lgb_0+tlgb_1

    根据最小二乘原理,按直线形式的常数确定方法求得 lgb_0,lgb_1,求出 lgb_0,lgb_1后,再取其反对数,即可得到b_0,b_1

    \left\{\begin{matrix}\sum lgY=nlgb_0+lgb_1\sum t\\\sum t lgY_t=lgb_0\sum t+lgb_1\sum t^2\end{matrix}\right.

    ii:   多阶曲线:

    有些现象变化形态复杂,不是按照某种固定的形态变化,而是有升有降,在变化过程中可能有几个拐点。这时就需要拟合多项式函数。当只有一个拐点时,可拟合二项曲线,即抛物线;当有两个拐点时,需要拟合三阶曲线;有k-1个拐点时,需要拟合k阶曲线。

    6、复合型序列的分解预测

    复合型序列是指含有趋势、季节、周期和随机成分的序列。对这类序列的预测方法是将时间序列的各个因素依次分解出来,然后进行预测。由于周期成分的分析需要有多年的数据,实际中很难得到多年的数据,因此采用的分解模型为:Y_t=T_t\times S_t\times I_t

    预测方法有:季节性多元回归模型、季节自回归模型和时间序列分解法预测。

    分解法预测步骤:

    第一步:确定并分离季节成分。计算季节指数,以确定时间序列中的季节成分。然后将季节成分从时间序列中分离出去,即用每一个时间序列观察值除以相应的季节指数,以消除季节性。

    第二步:建立预测模型并进行预测。对消除了季节成分的时间序列建立适当的预测模型,并根据这一模型进行预测。

    第三步:计算最后的预测值。用预测值乘以相应的季节指数,得到最终的预测值。

    (1)确定并分离季节成分

    季节性因素分析是通过季节指数来表示各年的季节成分,以此描述各年的季节变动模式。

    i:  计算季节指数(seasonal index)

    季节指数刻画了序列在一个年度内各月或各季度的典型季节特征。在乘法模型中,季节指数以其平均数等于100%为条件而构成的,反映了某一月份或季度的数值占全年平均值的大小。若现象的发展没有季节变动,则各期的季节指数应等于100%;若某一月份或季度有明显的季节变化,则各期的季节指数应大于或小于100%。因此,季节变动的程度是根据各季节指数与其平均数(100%)的偏差程度来测定的。

    季节指数计算方法较多,移动平均趋势剔除法步骤:

    第一步:计算移动平均值(若是季节数据,采用4项移动平均,月份数据则采用12项移动平均),并对其结果进行中心化处理,即将移动平均的结果再进行一次二项移动平均,即得出中心化移动平均值(CMA)。

    第二步:计算移动平均的比值,即季节比率,即将序列的各观察值除以相应的中心化移动平均值,然后计算出各比值的季度或月份平均值。

    第三步:季节指数调整。由于各季节指数的平均数应应等于1或100%,若根据第二步计算的季节比率的平均值不等于1,则需要进行调整。具体方法:将第二步计算的每个季节比率的平均值除以它们的总平均值。

    ii:  分离季节成分

    计算出季节指数后,可将各实际观察值分别除以相应的季节指数,将季节成分从时间序列中分离出去:\frac{Y}{S}=\frac{T*S*I}{S}=T*I

    结果即为季节成分分离后的序列,反映了在没有季节因素影响下时间序列的变化形态。

    iii: 建立预测模型并进行预测

    7、时序案例分析

    https://blog.csdn.net/mengjizhiyou/article/details/104765862

    展开全文
  • 时间序列分析个人学习笔记1

    千次阅读 2018-09-02 11:27:50
    时间序列分析:最系统的方法就是,回答一些由时间相关性带来的数学上与统计上的问题。 时间序列分析的第一步:仔细观察数据,得出用于总结数据中所含信息的统计分析方法。 得出方法之前我们需要证明时间序列的分析...

    传统统计模型的劣势:假设这些与时间有关的临近的样本点之间的关系是独立同分布的

    时间序列分析:最系统的方法就是,回答一些由时间相关性带来的数学上与统计上的问题。

    时间序列分析的第一步:仔细观察数据,得出用于总结数据中所含信息的统计分析方法。

    得出方法之前我们需要证明时间序列的分析方法是存在的:时间域方法(time domain approach)和频率域方法(frequency domain approach)。
    时间域方法看中对关系的研究,比如今天发生的事对明天发生的事有着怎样的影响?
    频率域方法看中对周期的研究,比如说某个经济周期是怎么扩张或者缩减的?

    例1,Johnson & Johnson 银行的每季度获利数据表

    install.packages(“astsa”)//安装astsa的包
    library(astsa)
    plot(jj, type=”o”, ylab=”Quarterly Earnings per Share”)

    图1
    数据的特点:呈增长的趋势并叠加一些常规的变化。
    这个特点在周期内重复。

    例2 全球变暖
    图2
    对于这一组数据我们更关心变化趋势而不是周期性。

    例3 语音数据
    一段语音数据中每一秒10000数据对于音节aaaa….hhhh的纪录
    图3

    例4 Dow Jones Industrial Average
    图4
    虽然数据显示平均值为0,但是高度不稳定的数据成群体出现,我们希望分析数据预测将来的变化,模型ARCH和GARCH,还有stochastic volatility 模型都是 去处理这个问题的。

    例5 鱼的数量与氧含量
    两组数据一组为鱼的数量,一组为海洋表面含氧量,显然两组数据是有关系的,transfer function 模型就是用于此种情况。
    图5

    例6 核磁共振影像

    测试大脑的五个部分对于同一刺激(刷子刷手)的反应,五部分相互独立,分析方法是由传统统计方法发展而来的。
    图是皮质(cortex)和丘脑(thalamus)&小脑(cerebellum)受到刺激时的血压变化图。
    图6

    例7 地震和爆炸
    图7
    图代表了地震&爆炸之后的两个阶段,希望区分地震和爆炸的波形,比较重要的一个特点就是第一阶段振幅和第二阶段振幅的比率,地震和爆炸是不同的。我们可以用谱分析来测定地震和爆炸的相同周期成分的不同,同时我们还希望对于未知源头的爆炸或者地震预测前后两个阶段的等级,这些都需要time series discriminant分析.

    时间序列的本质就是去发展一个数学模型对样本数据提供貌似真实的描述。
    时间序列定义:由时间索引的随机变量的集合
    时间序列就是一个随机变量列x1,x2,,xn,其中x1代表第一个时间点的值,以此类推。

    例子8 White Noise
    WtWN(0,σw2)
    三个特点:独立同分布(iid);平均值为0(常数);方差为常数。
    特殊情况:Gaussian white noise,所有随机变量为独立正态分布。
    WN来源于对于对于白光的模仿,一些可能的周期性扰动与WN表现出相同的特点。

    例9 Moving Averages and Filtering(过滤)
    Moving Average and Filtering 是wn的线性组合,用来过滤掉一些扰动。
    WtWN(0,σ2)
    Vt=13Wt1+13Wt+13Wt+1
    对比white noise,慢的扰动显现出来了,快的扰动被筛除了。
    下面的图更像例5中的SOI:
    图9

    例10 Autoregression(Self-regression)
    核磁共振影像、鱼的新增数量曲线、语音数据的曲线显然不是Moving Average and Filtering,有一个扰动必然是占支配地位,表现出正弦曲线的特征.
    Xt是Autoregression
    X1=Wt
    Xt=Xt10.9Xt2+Wt
    周期性是最大的特点,t时间的值在之后还会出现,是为“回归”。
    但是如果假设
    X0=0
    是不满足Autoregression的(?),但是当t足够大的时候,是近似于Autoregression的。
    图10

    例11 Random Walk with Drift
    Always return;
    赌博中常用到;
    例2中的全球温度;
    Xt为Random Walk with Drift:
    Xt=σ+Xt1+Wt σ是常数,是Drift,σ为0的时候叫做Random Walk;
    Wt为WN;
    X0=0
    进一步,可以推出:
    Xt=σt+j=1tWj
    我们可以发现当sigma为0的时候,t时刻的值就是t-1时刻的值加上一个完全随机的wn.
    t时间的值是上一个时间的值加上一个微小的扰动。
    图11

    例12 Signal in Noise
    许多现实中的时间序列都可以看成是一个潜在的有固定周期变化的信号被一个随机的噪音污染,比如例6的核磁共振影像就能清楚的看到周期。
    Xt是Signal in Noise:
    Xt=Acos(2πwt+ϕ)+Wt
    A是振幅,w是扰动的频率,ϕ是相位移动;
    SNR=Aσw;
    SNR越大越容易检测到信号,图中中间的那个最容易识别,最低下的最不容易识别:
    图12

    展开全文
  • (十一)时间序列分析和预测 时间序列数据用于描述现象随时间发展变化的特征。 时间序列(times series)是同一现象在不同时间的相继观察值排列而形成的序列。经济数据大多数以时间序列的形式给出。 时间序列及其...

    (十二)时间序列分析和预测

    时间序列数据用于描述现象随时间发展变化的特征。

    时间序列(times series)是同一现象在不同时间的相继观察值排列而形成的序列。经济数据大多数以时间序列的形式给出。

    时间序列及其分解

    时间序列可以分为平稳序列和非平稳序列两大类。

    平稳序列是基本上不存在趋势的序列。这类序列中的各观察值基本上在某个固定的水平上波动,虽然在不同的时间段波动的程度不同,但并不存在某种规律,波动可以看成是随机的,如图所示:

    非平稳序列(non-stationary series)是包含趋势、季节性或周期性的序列,它可能只含有其中一种成分,也可能含有几种成分。因此非平稳序列又可以分为有趋势的序列、有趋势和季节性的序列、几种成分混合而成的复合型序列。

    趋势(Trend):是时间序列在长期内呈现出来的某种持续上升或持续下降的变动,也称长期趋势。时间序列中的趋势可以是线性的,也可以是非线性的。

    季节性(seasonality)也称季节变动(seasonal fluctuation),它是时间序列在一年内重复出现的周期性波动。例如:在商业活动中,常常听到的“销售旺季”或“销售淡季”这类术语。其本质上指的是一种周期性的变化。

    含有季节成分的序列可能含有趋势,也可能不含有趋势。

    周期性(cyclicity)也称循环波动(cyclical fluctuation),是时间序列中呈现出来的围绕长期趋势的一种波浪形或震荡式变动。周期性通常是由商业和经济活动引起的,它不同于趋势变动,不是朝着单一方向的持续运动,而是涨落相同的交替波动;它也不同于季节变动,季节变动有比较固定的规律,而且变动周期大多为一年,循环波动则无固定规律,变动周期多在一年以上,且周期长短不一。周期性通常是由经济环境的变化引起的。

    除此之外,还有些偶然性因素对时间序列产生影响,致使时间序列呈现出某种随机波动。时间序列中除去趋势、周期性和季节性之后的偶然性波动称为随机性(randomness),也称不规则波动(irregular variations)。 

    时间序列的成分可以分为四种:趋势(T)、季节性或季节变动(S)、周期性或循环波动(C)、随机性或不规则波动(I)。

    构成要素:长期趋势,季节变动,循环变动,不规则变动。
    1)长期趋势( T )现象在较长时期内受某种根本性因素作用而形成的总的变动趋势。
    2)季节变动( S )现象在一年内随着季节的变化而发生的有规律的周期性变动。
    3)循环变动( C )现象以若干年为周期所呈现出的波浪起伏形态的有规律的变动。
    4)不规则变动(I )是一种无规律可循的变动,包括严格的随机变动和不规则的突发性影响很大的变动两种类型。


    时间序列类型

    绝对数时间序列


    时期序列:由时期总量指标排列而成的时间序列 。
    时期序列的主要特点有:
    1)序列中的指标数值具有可加性。
    2)序列中每个指标数值的大小与其所反映的时期长短有直接联系。
    3)序列中每个指标数值通常是通过连续不断登记汇总取得的。


    时点序列:由时点总量指标排列而成的时间序列
    时点序列的主要特点有:
    1)序列中的指标数值不具可加性。
    2)序列中每个指标数值的大小与其间隔时间的长短没有直接联系。
    3)序列中每个指标数值通常是通过定期的一次登记取得的。

    相对数时间序列

    把一系列同种相对数指标按时间先后顺序排列而成的时间序列叫做相对数时间序列。


    平均数时间序列

    平均数时间序列是指由一系列同类平均指标按时间先后顺序排列的时间序列。

    编制时间序列数据时需要注意的问题

    保证序列中各期指标数值的可比性

    • 时期长短最好一致
    • 总体范围应该一致
    • 指标的经济内容应该统一
    • 计算方法应该统一
    • 计算价格和计量单位可比

     


    增长率分析

    是对现象在不同时间的变化状况所做的描述。由于对比的基期不同,增长率有不同的计算方法。

    (1)增长率(growth rate):增长速度,是时间序列中报告期观察值与基期观察值之比减1后的结果,用%表示。由于对比的基期不同,可分为环比增长率和定基增长率。

    环比增长率:是报告期观察值与前一时期观察值之比减1,说明现象逐期增长变化的程度;

    定基增长率是报告期观察值与某一固定时期观察值之比减1,说明现象在整个观察期内总的增长变化程度。

    设增长率为G:          环比增长率 :

     

                                       定基增长率 :

     

    (2)平均增长率(average rate of increase):平均增长速度,是时间序列中逐期环比值(环比发展速度)的几何平均数减1的结果:

       n:环比值的个数

    (3)增长率分析中应注意的问题

    • 当时间序列中的观察出现0或负数时,不宜计算增长率。这种序列计算增长率,要么不符合数学公理,要么无法解释其实际意义。可用绝对数进行分析。
    • 有些情况下,不能单纯就增长率论增长率,注意增长率与绝对水平结合起来。增长率是一个相对值,与对比的基数值的大小有关。这种情况,计算增长1%的绝对值来克服增长率分析的局限性:增长1%的绝对值表示增长率每增长一个百分点而增加的绝对数量:增长1%的绝对值=前期水平/100

    时间序列预测的程序

    时间序列分析的主要目的之一是根据已有的历史数据对未来进行预测。时间序列含有不同的成分,如趋势、季节性、周期性和随机性。对于一个具体的时间序列,它可能含有一种成分,也可能同时含有几种成分,含有不同成分的时间序列所用的预测方法是不同的。

    预测步骤:

    第一步:确定时间序列所包含的成分,确定时间序列的类型

    第二步:找出适合此类时间序列的预测方法

    第三步:对可能的预测方法进行评估,以确定最佳预测方案

    第四步:利用最佳预测方案进行预测

    1、确定时间序列成分

    (1)确定趋势成分

    确定趋势成分是否存在,可绘制时间序列的线图,看时间序列是否存在趋势,以及存在趋势是线性还是非线性。

    利用回归分析拟合一条趋势线,对回归系数进行显著性检验。回归系数显著,可得出线性趋势显著的结论。

    (2)确定季节成分

    确定季节成分是否存在,至少需要两年数据,且数据需要按季度、月份、周或天来记录。可绘图,年度折叠时间序列图(folded annual time series plot),需要将每年的数据分开画在图上,横轴只有一年的长度,每年的数据分别对应纵轴。如果时间序列只存在季节成分,年度折叠时间序列图中的折线将会有交叉;如果时间序列既含有季节成分又含有趋势,则年度折叠时间序列图中的折线将不会有交叉,若趋势上升,后面年度的折线将会高于前面年度的折线,若下降,则后面年度的折线将会低于前面年度的折线。

    2、选择预测方法
    确定时间序列类型后,选择适当的预测方法。利用时间数据进行预测,通常假定过去的变化趋势会延续到未来,这样就可以根据过去已有的形态或模式进行预测。时间序列的预测方法:传统方法:简单平均法、移动平均法、指数平滑法等,现代方法:Box-Jenkins 的自回归模型(ARMA)。

    一般来说,任何时间序列都会有不规则成分存在,在商务和管理数据中通常不考虑周期性,只考虑趋势成分和季节成分。

    不含趋势和季节成分的时间序列,即平稳时间序列只含随机成分,只要通过平滑可消除随机波动。因此,这类预测方法也称平滑预测方法。

    3、预测方法的评估
    在选择某种特定的方法进行预测时,需要评价该方法的预测效果或准确性。评价方法是找出预测值与实际值的差距,即预测误差。最优的预测方法就是预测误差达到最小的方法。

    预测误差计算方法:平均误差,平均绝对误差、均方误差、平均百分比误差、平均绝对百分比误差。方法的选择取决于预测者的目标、对方法的熟悉程度。

    (1)平均误差(mean error):Y:观测值,F:预测值,n预测值个数

                  

    由于预测误差的数值可能有正有负,求和的结果就会相互抵消,这种情况下,平均误差可能会低估误差。

    (2)平均绝对误差(mean absolute deviation)是将预测误差取绝对值后计算的平均无擦,MAD:

            

    平均绝对误差可避免误差相互抵消的问题,因而可以准确反映实际预测误差的大小。

    (3)均方误差(mean square error):通过平方消去误差的正负号后计算的平均误差,MSE:

         

    (4)平均百分比误差和平均绝对百分比误差

    ME,MAD,MSE的大小受时间序列数据的水平和计量单位的影响,有时并不能真正反映预测模型的好坏,只有在比较不同模型对同一数据的预测时才有意义。平均百分比误差(mean percentage error,MPE)和平均绝对百分比误差(mean absolute percentage error,MAPE)则不同,它们消除了时间序列数据的水平和计量单位的影响,是反映误差大小的相对值。

     

     

    平稳序列的预测

    平稳时间序列只含有随机成分,预测方法:简单平均法、移动平均法、指数平滑法。

    主要通过对时间序列进行平滑以消除随机波动,又称平滑法。平滑法可用于对时间序列进行短期预测,也可对时间序列进行平滑以描述序列的趋势(线性趋势和非线性趋势)。

    (1)简单平均法:根据已有的t期观察值通过简单平均法来预测下一期的数值。设时间序列已有的t期观察值为

    ,则t+1期的预测值为:

    到了t+1期后,有了t+1期的实际值,t+1期的预测误差为:e_{t+1}=Y_{t+1}-F_{t+1}

     

    t+2期预测值:

    简单平均法适合对较为平稳的时间序列进行预测,即当时间序列没有趋势时,用该方法比较好。但如果时间序列有趋势或季节成分,该方法的预测则不够准确。简单平均法将远期的数值和近期的数值看作对未来同等重要。从预测角度,近期的数值比远期的数值对未来有更大的作用,因此简单平均法预测的结果不够准确。

    (2)移动平均法(moving average):通过对时间序列逐期递移求得平均数作为预测值的一种预测方法,有简单移动平均法(simple moving average)和加权移动平均法(weighted moving average).

    简单移动平均将最近k期数据加以平均,作为下一期的预测值。设移动平均间隔为k(1<k<t),则t期的移动平均值为:

    是对时间序列的平滑结果,通过这些平滑值可描述出时间序列的变化形态或趋势。也可以用来预测。

    t+1期的简单移动平均预测值为:

    t+2期的简单移动平均预测值为:

    移动平均法只使用最近k期的数据,在每次计算移动平均值时,移动的间隔都为k,也适合对较为平稳的时间序列进行预测。应用关键是确定合理的移动平均间隔k。对于同一个时间序列,采用不同的移动间隔,预测的准确性是不同的。可通过试验的方法,选择一个使均方误差达到最小的移动间隔。移动间隔小,能快速反映变化,但不能反映变化趋势;移动间隔大,能反映变化趋势,但预测值带有明显的滞后偏差。

    移动平均法的基本思想:移动平均可以消除或减少时间序列数据受偶然性因素干扰而产生的随机变动影响,适合短期预测。

    (3)指数平滑法(exponential smoothing)是通过对过去的观察值加权平均进行预测,使t+1期的预测值等t期的实际观察值与t期的预测值的加权的平均值。指数平滑法是从移动平均法发展而来,是一种改良的加权平均法,在不舍弃历史数据的前提下,对离预测期较近的历史数据给予较大权数,权数由近到远按指数规律递减,因此称指数平滑。指数平滑有一次指数平滑法、二次指数平滑法、三次指数平滑法等。

    一次指数平滑法也称单一指数平滑法(single exponential smoothing),只有一个平滑系数,且观察值离预测时期越久远,权数变得越小。一次指数平滑是将一段时期的预测值与观察值的线性组合作为t+1时期的预测值,预测模型为:F_{t+1}=\alpha Y_t+(1-\alpha )F_t      \alpha:平滑系数(0\leq \alpha\leq 1

    t+1期的数据是t期的实际观察值与t期的预测值的加权平均。1期的预测值=1期的观察值

    2期预测值:F_{2}=\alpha Y_1+(1-\alpha )F_1=\alpha Y_1+(1-\alpha )Y_1=Y_1

    3期预测值:F_{3}=\alpha Y_2+(1-\alpha )F_2=\alpha Y_2+(1-\alpha )Y_1

    4期预测值:F_{4}=\alpha Y_3+(1-\alpha )F_3=\alpha Y_3+\alpha (1-\alpha )Y_2+ (1-\alpha )^2Y_1

    对指数平滑法的预测精度,用均方误差来=衡量:

    F_{t+1}=\alpha Y_t+(1-\alpha )F_t

              =F_t+\alpha (Y_t-F_t)

    是t期的预测值加上用调整的t期预测误差(Y_t-F_t)。

    使用指数平滑法时, 关键问题是确定一个合适的平滑系数\alpha,不同\alpha的对预测结果产生不同的影响。

    \alpha=0,预测值仅仅是重复上一期的预测结果;\alpha=1,预测值就是上一期的实际值;

    \alpha越接近1,模型对时间序列变化的反应就越及时,因为它给当前的实际值赋予了比预测值更大的权数;

    \alpha越接近0,给当前的预测值赋予了更大的权数,模型对时间序列变化的反应就越慢。

    当时间序列有较大随机波动时,选较大\alpha,以便能很快跟上近期的变化;当时间序列比较平稳时,选较小\alpha

    实际应用中,需考虑预测误差,用均方误差衡量预测误差大小。确定时,可选择几个\alpha进行预测,然后找出预测误差最小的作为最后的\alpha值。

    与移动平均法一样,一次指数平滑法可用于对时间序列进行修匀,以消除随机波动,找出序列的变化趋势。

    用一次指数平滑法进行预测时,一般取值不大于0.5,若大于0.5,才能接近实际值,说明序列有某种趋势或波动过大。

    阻尼系数 \beta=1-\alpha  ,阻尼系数越小,近期实际值对预测结果的影响越大,反之,越小。阻尼系数是根据时间序列的变化特性来选取。

    指数平滑法

    指数平滑法实际上是一种特殊的加权移动平均法。

    其特点是:

    第一,指数平滑法进一步加强了观察期近期观察值对预测值的作用,对不同时间的观察值所赋予的权数不等,从而加大了近期观察值的权数,使预测值能够迅速反映市场实际的变化。权数之间按等比级数减少,此级数之首项为平滑常数a,公比为(1- a)。

    第二,指数平滑法对于观察值所赋予的权数有伸缩性,可以取不同的a 值以改变权数的变化速率。如a取小值,则权数变化较迅速,观察值的新近变化趋势较能迅速反映于指数移动平均值中。因此,运用指数平滑法,可以选择不同的a 值来调节时间序列观察值的均匀程度(即趋势变化的平稳程度)。

    据平滑次数不同,指数平滑法分为:一次指数平滑法、二次指数平滑法和三次指数平滑法等。


    趋势型序列的预测

    趋势预测分析法亦称时间序列预测分析法,是根据事业发展的连续性原理,应用数理统计方法将过去的历史资料按时间顺序排列,然后再运用一定的数字模型来预计、推测计划期产(销)量或产(销)额的一种预测方法。
    由于趋势测计划期间的销售数量或销售金额预测分析法所采取的数学方法不同,又可分为:

    • 算术平均法。以过去若干时期的销售量(或销售金额)的算术平均数作为计划期的销售预测数。这一方法的优点是计算简单,但由于取的是平均值,因而是比较粗糙的,测出的预计数量与实际数量会发生较大的误差,所以这种方法只适用于销售量比较稳定的产品,如没有季节性的食品、日用品等。
    • 移动加权平均法。是根据过去若干时间的销售量(或销售金额)按其距计划期的远近分别进行加权(近期所加权数大些,远期所加权数小些;然后计算其加权平均数,作为计划期的销售预测数。所谓“移动”是对计算平均数的讨期不断往后推移。
    • 指数平滑法。在预则计划期销售量(或销售金额)时,导入平滑系数(或称加权因子)进行计算。指数平滑法与移动加权平均法实质上是近似的,其优点是可以排除在实际销售中所包含的偶然因素的影响。但确定平滑指数的值还带着一定的主观成分。平滑系数越大,则近期实际数对预测结果的影响越大,反之则小。所以采用较小的平滑系数,使此法的平均数能反映观察值变动的长期趋势;也可以采用较的平滑系数,使此法的平均数能反映观察值丘期的变动趋势,以便进行近期的销售预测,

     


    复合型序列的分解预测

    复合型序列是指含有趋势、季节、周期和随机成分的序列。

    这类序列的预测方法通常是将时间序列的各个因素依次分解出来,然后进行预测。

    由于周期成分的分析需要有多年的数据,实际中很难得到多年的数据,因此采用的分解模型为:

    \large Y_{t} = T_{t}\times S_{t} \times I_{t}

    这一模型表示该时间序列中含有趋势成分、季节成分和随机成分。

    这类序列的预测方法主要有季节性多元回归模型、季节自回归模型和时间序列分解法预测等。

    分解法预测通常按下面的步骤进行:

    第1步:确定并分离季节成分。

    第2步:建立预测模型并进行预测。

    第3步:计算最后的预测值。

                 用预测值乘以相应的季节指数,得到最终的预测值。

    季节指数(seasonal index)刻画了序列在一个年度内各月或各季节的典型季节特征。

    季节指数的计算方法有多种,例如平均趋势剔除法。

    “移动平均趋势剔除法”来测定季节变动趋势。其基本步骤如下:

    第一,先根据各年的季度(或月度)资料(Y)计算四季(或12个月)的移动平均数,然后为了“正位”,再计算二季(月)移动平均数,作为各期的长期趋势值(T)。

    第二,将实际数值(Y)除以相应的移动平均数(T),得到各期的Y/T。这就是消除了长期趋势影响的时间数列,它是一个相对数,称为季节指数。其结果为表中第四列数值。

    第三,将Y/T重新按“同期平均法”计算季节比率的方式排列。然后,按照该方法要求,先计算“异年同季平均数”,然后再计算“异年同季平均数的平均数”,即消除长期趋势变动后,新数列的序时平均数;最后,计算季节比率并画图显示。


    季节波动

    季节波动是指某些社会现象由于受到社会因素和自然因素的影响,在一年之内随着季节的更替而呈现的有规律性的周期性波动。在一年之内,由于季节的变动,会使某些社会经济现象(一定的时间序列)产生规律性的变化,这种规律性变化通常称之为季节波动。如食品、服装、某些季节性特点很强的产品或商品等,它们的生产和消费都随季节的变换而呈现周期性的波动,出现“旺季”和“淡季”。

    季节波动具有三个明显的特征:
    (1)季节波动有一定的规律性和周期性;
    (2)季节波动每年重复出现,具有重复性;
    (3)季节波动的波动轨迹具有相似性。 

    测定季节波动的方法很多,常用的两种方法为:同期平均法和趋势剔除法。 
    同期平均法
    这种方法是测定季节波动最简便的方法。它是以若干年资料数据求出同月(季)的平均水平与全年总月(季)水平,二者对比得出各月(季)的季节指数来表明季节波动的程度。按月平均法可以分为直接按(季)月平均法和比率按月平均法两种。  


    1、直接按月平均法
    直接按月(季)平均法将整个时问序列的趋势值视为常数。计算步骤如下:
    (1)计算各年同月(季)的平均数;
    (2)计算各年所有月份(或季度)的总平均数;
    (3)计算季节指数。 [4] 
    2、比例按月(季)平均法
    这种方法是在按月(季)平均之前,先将历年各月(季)的数据同其本年的月(季)平均数相比,得出说明该年度的季节比率;然后再将各年度同期(月或季)的比率进行平均,求出季节指数。 


    移动平均趋势剔除法
    在具有明显的长期趋势变动的数列中,为了测定季节波动,必须先将趋势变动因素加以剔除。假定趋势变动、季节波动、循环波动和不规则变动对时间序列影响可以用乘法模型反映,用移动平均趋势剔除法测定季节波动的步骤如下:
    (1)对原时间序列求移动平均数,作为相应时期的趋势值。
    (2)剔除原数列中的趋势变动,即将原数列各项除以移动平均数的对应时间数据。
    (3)以消除趋势变动后的数列计算季节指数,测定季节波动。 

     

    展开全文
  • 数据挖掘之时间序列分析

    万次阅读 多人点赞 2018-08-27 22:12:59
    时间序列分析的目的是给定一个已被观测了的时间序列,预测该序列的未来值。 表1 常用的时间序列模型 模型名称 描述 平滑法 常用于趋势分析和预测,利用修匀技术,削弱短期随机波动对序列的影响,使...

    按时间顺序排列的一组随机变量X1,X2,…,Xt表示一个随机事件的时间序列。

    时间序列分析的目的是给定一个已被观测了的时间序列,预测该序列的未来值。

    表1 常用的时间序列模型
    模型名称 描述
    平滑法

    常用于趋势分析和预测,利用修匀技术,削弱短期随机波动对序列的影响,使序列平滑化。

    根据所用平滑技术的不同,可分为移动平均法和指数平滑法。

    趋势拟合法

    把时间作为自变量,相应的序列观察值作为因变量,建立回归模型。

    根据序列的特征,可分为线性拟合和曲线拟合。

    组合模型

    时间序列的变化主要受到长期趋势(T)、季节变动(S)、周期变动(C)和不规则变动(\varepsilon)这四个因素的影响。

    根据序列的特点,可以构建加法模型和乘法模型。

    加法模型:x = T+S+C+\varepsilon

    乘法模型:x = T\timesS\timesC\times\varepsilon

    AR模型 以前p期的序列值为自变量,随机变量Xt为因变量建立线性回归模型
    MA模型 随机变量Xt的取值与前各期的序列值无关,建立Xt与前q期的随机扰动(\varepsilon)的线性回归模型
    ARMA模型 随机变量Xt的取值,不仅与前p期的序列值有关,还与前q期的随机扰动(\varepsilon)有关
    ARIMA模型

    许多非平稳序列差分后会显示出平稳序列的性质,称这个非平稳序列为差分平稳序列。

    对差分平稳序列可以使用ARIMA模型进行拟合

    ARCH模型 能准确地模拟时间序列变量的波动性变化,适用于序列具有异方差性并且异方差函数短期自相关
    GARCH模型及其衍生模型 称为广义ARCH模型,是ARCH模型的拓展。更能反映实际序列中的长期记忆性、信息的非对称性等性质

     

    1、时间序列分析之前,需要进行序列的预处理,包括纯随机性和平稳性检验。根据检验结果可以将序列分为不同的类型,采取不同的分析方法。

    表2 不同检验结果的分析方法
    纯随机序列

    又叫白噪声序列,序列的各项之间没有任何相关关系,序列在进行完全无序的随机波动。

    白噪声序列是没有信息可提取的平稳序列,可以终止分析

    平稳非白噪声序列

    均值和方差是常数。通常建立一个线性模型来拟合该序列的发展,从而提取有用信息。

    ARMA模型是最常用的平稳序列拟合模型。

    非平稳序列

    均值和方差不稳定。一般将其转变成平稳序列,应用有关平稳时间序列的分析方法,如ARMA模型。

    如果时间序列经差分运算后,具有平稳性,称该序列为差分平稳序列,使用ARIMA模型进行分析。

    (1)纯随机性检验

    如果序列是纯随机性检验,则序列值之间应该没有任何关系。实际上纯随机性序列的样本自相关系数不会绝对为零,但是很接近零,并在零附近随机波动。

    纯随机性检验,又叫白噪声检验,一般是构造检验统计量来检验。常用的检验统计量有Q统计量、LB统计量,由样本各延迟期数的自相关系数,可以计算出检验统计量,然后计算对应的p值,如果p值大于显著性水平\alpha,则表示接受原假设,是纯随机序列,停止分析。

    (2)平稳性检验

    如果时间序列在某一常数附近波动且波动范围有限,即有常数均值和常数方差,并且延迟k期的序列变量的自协方差和自相关系数是相等的,或者说延迟k期的序列变量之间的影响程度是一样的,则称该时间序列为平稳序列。

    两种检验方法:

    a. 根据时序图和自相关图的特征做出判断的图检验,该方法操作简单、应用广泛,缺点是带有主观性;

    时序图检验:根据平稳时间序列的均值和方差都为常数的性质,平稳序列的时序图显示序列值始终在一个常数附近随机波动,且波动的范围有界。

    如果有明显的趋势性或周期性,通常不是平稳序列。

    自相关图检验:平稳序列具有短期相关性,所以平稳序列中,只有近期的序列值对现时值得影响比较明显,间隔越远的过去值对现时值的影响越小。

    随着延迟期数k的增加,平稳序列的自相关系数会比较快的衰减趋向于零,并在零附近随机波动,而非平稳序列的自相关系数衰减的速度比较慢。

    b. 构造检验统计量,目前最常用的方法是单位根检验。

    单位根检验是指检验序列中是否存在单位根,因为存在单位根就是非平稳时间序列。

     

    2、平稳时间序列分析

    ARMA模型的全称是自回归移动平均模型,可以细分为AR模型、MA模型和ARMA模型三类,都可以看做是多元线性回归模型。

    建模步骤:

    (1)计算自相关系数(ACF)和偏自相关系数(PACF)

    (2)ARMA模型识别,也叫模型定阶,由AR(p)模型、MA(q)模型和ARMA(p,q)的自相关系数和偏自相关系数的性质,选择合适的模型。

    表3 ARMA模型识别原则
    模型 自相关系数(ACF) 偏自相关系数(PACF)
    AR(p) 拖尾 p阶截尾
    MA(q)

    q阶截尾

    拖尾
    ARMA(p,q) 拖尾 拖尾

    (3)估计模型中未知参数的值,并进行参数检验

    (4)模型检验

    (5)模型优化

    (6)模型应用:进行短期预测。

    3、非平稳时间序列分析

    实际上,在自然界中绝大部分序列都是非平稳的。

    分析方法分为两类:

    (1)确定性因素分解的时序分析

    把所有序列的变化都归结为四个因素,长期趋势、季节变动、循环变动和随机变动的综合影响。

    缺点是由随机因素导致的波动难以确定和分析,对随机信息浪费严重,会导致模型拟合精度不够理性。

    (2)随机时序分析

    根据时间序列的不同特点,随机时序分析可以建立的模型有ARIMA模型、残差自回归模型、季节模型、异方差模型等。

    ARIMA模型建模步骤:

    a. 检查序列的平稳性

    b. 对原始序列进行差分,并进行平稳性和白噪声检验

    c. 选择ARIMA模型

    需要为ARIMA(p、d、q)模型指定参数p、d、q。其中d为差分次数。

    或者使用forecast包里面的auto.arima函数实现最优ARIMA模型的自动选取。

    表4 结合ACF和PACF图选择ARIMA模型的方法
    模型 ACF PACF
    ARIMA(p,d,0) 逐渐减小到零 在p阶后减小到零
    ARIMA(0,d,q) q阶后减小到零 逐渐减小到零
    ARIMA(p,d,q) 逐渐减小到零 逐渐减小到零

    d. 拟合模型

    e. 预测


    举例说明ARIMA模型的应用。

    R语言实现:

    1、读取数据集

    2、生成时序对象,检验平稳性

    sales = ts(data) #生成时序对象
    
    plot.ts(sales,xlab="时间",ylab="销量") #作时序图
    
    acf(sales) #作自相关图
    
    library(fUnitRoots)
    unitrootTest(sales) #单位根检验

    时序图如下,具有单调递增趋势。

    自相关图如下,自相关系数长期大于零,说明序列间具有很强的长期相关性。

    单位根检验 结果如下,p值显著大于0.05,判断为非平稳序列。(非平稳序列一定不是白噪声序列

    3、对原始序列进行一阶差分,并进行平稳性检验。

    difsales = diff(sales) #一阶差分
    
    plot.ts(difsales,xlab="时间",ylab="销量残差") #作时序图
    
    acf(difsales) #作自相关图
    
    unitrootTest(difsales) #单位根检验

    时序图如下,在均值附近比较平稳的波动。

    自相关图如下,有很强的短期相关性。

    单位根检验 结果如下,p值小于0.05,所以一阶差分后的序列是平稳序列。

    4、白噪声检验

    Box.test(difsales,type = "Ljung-Box") #白噪声检验

    结果为

    p值显著小于0.05,所以一阶差分后的序列是平稳非白噪声序列。

    5、拟合ARIMA模型

    第一种方法:

    pacf(difsales) #作偏自相关图

    偏自相关图如下,

    根据表4的选择方法,选定ARIMA(1,1,0)模型。

    fit = arima(sales,order=c(1,1,0)) #ARIMA(1,1,0)模型

    第二种方法:

    auto.arima(CWD) #另一个实例

    输出结果如下:

    6、模型检验

    模型确定后,检验其残差是否为白噪声,如果不是白噪声,说明残差中还存在有用的信息,需要修改模型参数,进一步提取。

    fit = arima(CWD,order = c(0,1,1)) #另一个实例
    
    r3 = fit$residuals
    
    Box.test(r3,type = "Ljung-Box")

    7、预测

    library(forecast) 
    forecast(fit,5) #预测接下来5期的序列值
    
    plot(forecast(fit,5)) #作预测图,深色区域分别为80%和95%的置信区间

    结果为

    8、模型评价

    采用三个衡量模型预测精度的统计量指标:平均绝对误差、均方根误差、平均绝对百分误差。这三个指标从不同方面反映了模型的预测精度。

    mae = mean(abs(pre-real)) #平均绝对误差
    
    rmse = mean((pre-real)^2) #均方根误差
    
    mape = mean(abs(pre-real)/real) #平均绝对百分误差

    结合实际业务分析,将误差阈值设定在一个值,如1.5,评价模型的预测精度。

     

    Python实现:

    #ARIMA时序模型
    import pandas as pd
    
    forecastnum = 5
    data = pd.read_excel("arima_data.xls",index_col=u'日期') #pandas自动将“日期”列识别为datetime格式
    
    #时序图
    import matplotlib.pyplot as plt
    plt.rcParams['font.sans-serif'] = ['SimHei'] 
    plt.rcParams['axes.unicode_minus'] = False
    data.plot()
    plt.show()
    
    #自相关图
    from statsmodels.graphics.tsaplots import plot_acf
    plot_acf(data).show()
    
    #ADF单位根检验
    from statsmodels.tsa.stattools import adfuller as ADF
    print(u'原始序列的ADF检验结果为:',ADF(data[u'销量']))
    #返回值依次是adf、pvalue

    输出结果为:

    可以得出时间序列不平稳,需要进行差分操作。

    D_data = data.diff().dropna() #差分
    D_data.columns = [u'销量差分']
    D_data.plot() #时序图
    plt.show()
    
    plot_acf(D_data).show() #自相关图
    
    from statsmodels.graphics.tsaplots import plot_pacf
    plot_pacf(D_data).show() #偏自相关图
    
    print(u'差分序列的ADF检验结果为:',ADF(D_data[u'销量差分']))

    输出结果为:

    这时差分后的序列符合平稳性。

    #白噪声检验
    from statsmodels.stats.diagnostic import acorr_ljungbox
    print(u'差分序列的白噪声检验结果为:',acorr_ljungbox(D_data,lags=1)) #返回统计量和p值

    输出结果为:

    p值小于显著性水平,所以非白噪声。

    from statsmodels.tsa.arima_model import ARIMA
    data[u'销量'] = data[u'销量'].astype(float)
    #定阶
    pmax = int(len(D_data)/10) #一般阶数不超过length/10
    qmax = int(len(D_data)/10) 
    bic_matrix =[] #bic矩阵
    for p in range(pmax+1):
        tmp = []
        for q in range(qmax+1):
            try: #存在部分报错
                tmp.append(ARIMA(data,(p,1,q)).fit().bic)
            except:
                tmp.append(None)
        bic_matrix.append(tmp)
        
    bic_matrix = pd.DataFrame(bic_matrix)
    p,q = bic_matrix.stack().idxmin() #先用stack展平,用idxmin找出最小值位置
    print (u'BIC最小的p值和q值为:%s,%s' % (p,q))
    
    model = ARIMA(data,(p,1,q)).fit() #建立ARIMA(0,1,1)模型
    model.summary2() #模型报告
    
    model.forecast(5) #预测5天的数据,返回预测结果、标准误差、置信区间

    输出结果为:

    展开全文
  • 时间序列分析

    万次阅读 2017-05-16 20:25:10
    http://blog.csdn.net/pipisorry/article/details/62053938时间序列简介时间序列是时间间隔不变的情况下收集的时间点集合。这些集合被分析用来了解长期发展趋势,为了预测未来或者表现分析的其他形式。但是什么时间...
  • 使用R语言进行时间序列分析

    万次阅读 多人点赞 2018-04-09 15:25:34
    一、时间序列的定义 时间序列是将统一统计值按照时间发生的先后顺序来进行排列,时间序列分析的主要目的是根据已有数据对未来进行预测。一个稳定的时间序列中常常包含两个部分,那么就是:有规律的时间序列+噪声。...
  • 【Python】时间序列分析完整过程

    万次阅读 多人点赞 2019-05-20 11:31:39
    1. 导言 1.1 基本定义   根据维基百科上对时间序列的定义,我们简单将其理解为: 时间序列:一系列以时间顺序作为索引的数据点...  咱们先来看看,对时间序列数据分析,需要用到哪些库吧 ~ import numpy as np ...
  • EXCEL篇—时间序列分析(季节指数法)

    万次阅读 多人点赞 2019-08-13 13:35:42
    之前跟大家一起分享了如何用EXCEL进行回归分析,现在跟大家一起来学习一下如何用EXCEL做时间序列分析。 在百科里,时间序列分析分析的解释是这样的:时间序列(或称动态数列)是指将同一统计指标的数值按其发生的...
  • 金融时间序列分析:1. 基础知识

    万次阅读 多人点赞 2017-01-10 16:55:30
    1. 金融时间序列1.1什么是时间序列金融时间序列是属于时间序列数据的一种,他们就是有很强的时间性,数据前后具有很强的依赖性,切无法调整顺序,一般都是二维数据。 时间序列由于具有很强的序列行,而且数据前后...
  • 时间序列建模的基本步骤 时间序列建模的基本步骤 习题 时间序列经典教材推荐 时间序列模型 (一):模型概述 时间序列模型 (二):移动平均法 时间序列模型 (三):指数平滑法 时间序列模型 (四):差分...
  • Excel-时间序列图(趋势)分析

    万次阅读 2014-01-24 20:27:11
    时间序列图是描述流程特性值在一段时间内变化波动的趋势和规律的统计工具,如整个流程大体在什么范围内运行、是否具有波动较大的时期或时点等。 通过对趋势的分析,也可以实现对未来数据变化的预测。通过对波动的...
  • 第一章 时间序列分析简介按照时间的顺序把随机事件变化发展的过程记录下来就构成了一个时间序列。对时间序列进行观察、研究、找寻它变化发展的规律,预测它将来的走势就是时间序列分析。描述型时序分析:通过直观的...
  • 时间序列分析--ARIMA模型

    万次阅读 多人点赞 2017-06-01 15:33:01
    指数平滑法对时间序列上连续的值之间的相关性没有要求。但是,如果你想使用指数平滑法计算出预测区间, 那么预测误差必须是不相关的, 且必须是服从零均值、 方差不变的正态分布。即使指数平滑法对时间序列连续数值...
  • 场景:节日客流量预测季节销量预测实时股价预测案例:客流量预测解读:通过实际值和预测值的对比可直观看出预测的准确程度原理:时间序列回归(TSR)是一种动态数据处理的统计方法,研究随机时间序列数据遵循的统计...
  • 数据分析技术:时间序列分析;时间是把杀猪刀; SPSS分析技术:时间序列描述;磨刀不误砍柴工,充分了解是获得满意结果的前提; SPSS分析技术:季节性分解;如果你们公司的产品或服务有很明显的淡旺季,那...
  • 时间序列模型 (一):模型概述

    万次阅读 多人点赞 2019-05-03 20:18:37
    时间序列的其它博文系列: 时间序列模型 (一):模型概述 时间序列模型 (二):移动平均法 时间序列模型 (三):指数平滑法 时间序列模型 (四):差分指数平滑法、 自适应滤波法v 时间序列模型 (五): ...
  • 时间序列的预处理拿到一个观察序列后,首先要对它的平稳性和纯随机性进行检验,这两个重要的检验称为序列的预处理。根据检验的结果可以将序列分为不同的类型,对不同的类型我们采用不同的分析方法。 2.1 平稳性检验...
  • 多元时间序列分析

    万次阅读 2016-11-05 19:24:39
    时间序列分析就是对可以获得的部分的系统输出数据进行分析,提取其蕴含的系统特征,构造对应的等价系统,从而完成对该系统的功能刻划,并依据相应的模型完成对系统未来行为预测的过程。从本质上讲,时序分析仍然是发现...
  • 时间序列异常事件检测

    万次阅读 2015-02-11 20:23:10
    在人们对数据进行分析处理的过程中,经常会遇到少量这样的数据,它们与数据一般模式不一致,或者说与大多数样相比有些不一样。我们称这样的数据为异常数据,对异常数据的处理在某些领域很有价值,例如在网络安全领域...
  • 无意中发现了一个巨牛的人工智能...现实世界中,我们有一些序列之间不知道是谁影响谁,换句话说,我们不知道因果性。这次,我们讲一讲格兰杰因果关系检验。 这个检验的思想很质朴: 我们构造这样一个式子,然...
1 2 3 4 5 ... 20
收藏数 302,710
精华内容 121,084
关键字:

时间序列分析