第六章ARIMAX模型.docx

上传人:牧羊曲112 文档编号:1674543 上传时间:2022-12-13 格式:DOCX 页数:49 大小:581.36KB
返回 下载 相关 举报
第六章ARIMAX模型.docx_第1页
第1页 / 共49页
第六章ARIMAX模型.docx_第2页
第2页 / 共49页
第六章ARIMAX模型.docx_第3页
第3页 / 共49页
第六章ARIMAX模型.docx_第4页
第4页 / 共49页
第六章ARIMAX模型.docx_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《第六章ARIMAX模型.docx》由会员分享,可在线阅读,更多相关《第六章ARIMAX模型.docx(49页珍藏版)》请在三一办公上搜索。

1、第六章 ARIMAX模型一、ARIMAX模型的概念有时考虑其它序列对一个时间序列的影响,如太阳黑子对某地区降雨量的影响,石油价格对股价的影响。带有输入序列的一般ARIMA模型也称为ARIMAX模型。Box和刁锦寰提出ARIMAX模型。例子 1)9.11事件对道琼斯指数的影响 2)广告对销售量的效应 3)美国月批发物价指数对零售价指数的影响 4)1960年前后时间X1、冬季X2、夏季X3对臭氧数据Yt)固有股减少X1、道琼斯指数X2、石油价格X3对上证指数数学模型设,是时间序列,(i=1,k) 其中,称为传递函数模型,称为输入因子(干预因子),称为输出因子。Xt(1)Xt(2) xt(k).注:

2、为减少参数个数,通常考虑简化为:其中(i=1,k)= 称上述模型为ARIMAX模型,又称为带有干预序列的ARIMA模型或动态回归模型。这个模型把相应序列表示为随机波动的过去值和其它序列(称为输入序列)的过去值的结合。响应序列也称为相依序列或输出序列,输入序列也称为独立序列或预测因子序列。二、两个独立滑动平均过程之和它是阶数分别为的两个独立平均过程之和即均是均值为零的白噪声且相互独立记可得的自相关函数当时为零故可表示成阶的单一滑动平均过程 为零均值白噪声(证明可参考Hamiton 时间序列分析)三、附加噪声对一般模型的影响考虑ARIMA 设本身不可观测,只能观测到 表示有关的附加的噪声,则对有若

3、对有即 则有 四、带有回归项和时间序列误差的模型 为解释变量,而误差是一个ARMA(p,q),生成。该式可以写为:。在传统模型中我们有,的最小二乘估计为,并具有性质。但在自相关误差的情形下,这种性质不再成立。此时最小二乘估计的 协方差阵为。因此一般的样本性质和统计推断的 方=1法,如关于估计的通常标准差公式,t-统计量及置信区间等就不再有效。例:,的子协方差为。的最小二乘估计为,它的方差为:如果模型中误差为不相关的,我们会取,而这会引起明显的错误推断。当对时间序列数据拟合回归模型时,总是需要考虑误差项存在自相关的可能性的。通常,对于误差识别一个恰当模型的可行方法是首先得出最小二乘估计,然后再得

4、到相应的回归模型的残差这个残差序列可以用通常的时间序列方法来考察,这样可以对误差项建立一个实验性的模型。是渐近最优的,由此计算的自相关、偏相关等也是渐近最优的。而一般最优的线性估计,也称为广义最小二乘估计为。在实际中,根据噪声项确定具体的ARMA模型,可以确定协方差的具体形式,并可找到一个下三角阵,使得。令得到广义最小二乘估计为。因为的时间序列模型中的参数是未知的,所以必须在计算和极大似然估计以及模型中的参数之间迭代。(BOX JENKINS p415-420)三、 附加噪声的传递函数模型干扰或噪声和的水平独立,且添加到有关的影响上,它们可以写成干预序列如果噪声模型可以用ARIMA(p,d,q

5、)过程表示这里是白噪声,则模型最终可以写成:互协方差和互相关系数一般地,一个双变量随机过程无须是平稳的,但适当进行差分后的过程是平稳的,这里。一般,但称之为互协方差,和互相关系数一般,它关于不是对称的。(P470)互协方差和互相关的估计假设对原始的输入输出序列作了d次差分后有n=N-d对数值,那么滞后k互协方差系数的估计值为:传递函数模型的识别对预白噪化输入的传递函数模型的识别如果系统的输入是白噪声,则识别过程将很大程度被简化。假设适当差分后的输入过程是平稳的,并且可由ARMA模型来描述,那么可以对用通常的识别和估计方法得到一个模型:该式把相关的输入序列转化为非常接近不相关的白噪声。同时我们可

6、以由的平方和得到的估计。如果我们对使用同样的变换得到:则原模型可以写为:其中转换后的噪声序列有将上式两边同时乘以并取数学期望,我们得到:于是因此,将输入白燥化后,在白燥化输入和经相应变换的输出之间的互相关函数直接与脉冲相应函数成正比。在实际中我们并不知道理论互相关函数,故我们可以用其估计量替代:噪声模型的识别假设模型可以写成(如果必要,做适当的差分之后)用前面所述方法给出传递函数的初步估计后,噪声序列的估计由下式得到:还可以用初步识别所确定的试用传递函数模型来替代。于是的计算:先通过写为递推计算出,然后由计算噪声序列。噪声的识别还可以利用经过白燥化后的输入和输出的相关函数来进行,即按照下列方法

7、进行。假如输入可以被完全白燥化,如果可以找到一个随机模型,那么由上式可以对,从而对导出模型。记,便有,同时由于给出了独立性的假设,从而也独立。由此计算得到模型识别后可以用条件平方和法进行参数的计算。干预模型其中 代表干预事件的影响是噪声它表示在没有干预影响时序列的变化一般可设是一个ARIMA(p,d,q) 即干预序列分为脉冲式干预序列和持续式干预序。列。脉冲式干预序列:持续式干预序列:一般有两种通用的形式 它表示在时刻T之后干预的影响仍保留下去的情形 它可表示暂时或瞬间干预的影响干预分析模型可表示为+持续式干预序列需预白噪声化,即先将干预序列拟合ARIMA模型。预白噪声:用途:对非脉冲干预因子

8、,有可能计算机不好计算估计干预因子对应的传递函数的推移算子有关附加异常值与新息异常值模型1设ARIMA(p,d,q)若在时刻T附加异常值,则有称之为附加异常值模型 (AO Model)2新息异常值(IO)模型= 统计诊断引论韦博成 东南大学出版社第三节 SAS实现计算一、差分输入序列的差分由CROSSCORR=选项来指定,并且如同相应序列的差分那样工作。例如Identify=var=y(1) crosscorr=(x1(1) x2(1)表示对Y作一阶差分,对X1,X2作一阶差分,在随后的ESTIMATE语句中,任何在INPUT=选项中用到X1和X2时,这些名字指差分序列。二、使用输入序列为了使

9、用输入序列的过去值和过去误差,你也可以使用被称为输入序列的其它序列的当前和过去值来对响应序列建模。此时要在identify语句中。的crosscorr=选项中列出输入序列,并在随后的ESTIMATE语句中用INPUT=选项说明它们是如何进入模型的。Proc arima data=a;Identify var=sales crosscorr=price;Estimate input=price;本例使用一个称作price的序列来帮组对sales建模。执行了一个sales关于price的简单线性回归,生成和proc reg过程相同的结果。由这些语句所得出的估计模型的数学形式为:模型中可以使用任意多

10、个输入变量,例如:Proc arima data=a;Identify var=sales crosscorr=(price income) ;Estimate input=(price income);由这些语句所得出的估计模型的数学形式为:三、延迟和差分输入序列proc arima data=a; identify var=sales(1) crosscorr=price(1); estimate input=( 1 $ price ); run;这些语句给出估计模型其中price的一阶滞后由input=( 1 $ price ).说明。四、带ARMA误差的回归可以把输入序列与关于误差的A

11、RMA模型结合起来。建立回归模型,但回归模型的误差(噪声序列)假定是一个时间序列模型。 proc arima data=a; identify var=sales crosscorr=(price income); estimate p=1 q=1 input=(price income); run;这些语句给出估计模型:五、平稳性和输入序列注意到噪声序列的平稳性,如果没有输入变量,那么响应序列(在差分或减去均值后)和噪声序列相同,但是如果存在输入,则在输入的影响消除后,噪声序列变为残差。对于输入序列并没有平稳性的要求。 如果输入非平稳,那么响应变量也是非平稳的,尽管噪声是平稳的。当使用输入序

12、列时,你可以首先不假定误差为ARMA模型的情况下拟合输入变量,然后再对噪声部分拟合一个ARMA模型前考虑一下残差的平稳性。识别带有ARMA误差的回归模型对于ARIMA模型可以用identify语句进行识别。当响应序列依赖于输入变量时,这种识别过程并不适用。这是因为我们需要拟合一个ARIMA模型的噪声过程;并且当包括输入序列时,均值调整后的序列不再是噪声序列的一个估计。然而,如果输入序列独立于噪声序列,你可以使用来自回归模型的残差作为噪声序列的估计,然后对此残差序列应用ARIMA模型识别过程。通常此时我们假定噪声过程是平稳的。ESTIMATE语句中的PLOT选项为模型的残差生成与IDENTIFY

13、语句为响应序列生成的一样的散点图。PLOT选项打印出 残差序列的自相关、偏相关和逆相关系数图。下列语句演示了识别带回归变量,噪声过程为ARMA(1,1)模型 proc arima data=a; identify var=sales crosscorr=(price income) noprint; estimate input=(price income) plot; run; estimate p=1 q=1 input=(price income) plot; run;此例中,IDENTIFY 语句包括NOPRINT选项是因为响应变量的自相关图在序列依赖于输入变量时是没有什么作用的,所以

14、不显示出来。第一个ESTIMATE语句拟合了不带噪声的回归模型。平且该语句中还用PLOT选项生成了对于pricehe 和income回归的残差的自相关、偏相关和逆相关系数图。通过PLOT选项的残差输出,你可以确定残差序列的平稳性,并识别出是个ARMA(1,1) 。第二个ESTIMATE 语句拟合最终的模型。尽管这些讨论的是带回归模型,同样的耶适用于包括复杂的传递函数作为输入序列的,噪声为ARIMA模型的识别。六、干预模型和中断时间序列脉冲干预干预可以是一个单一时间事件。例如你想了解一个短期广告攻势对一种产品的销售量的影响。此时,输入变量在某时刻为1而在其它时间为0。这类干预变量也称为脉冲函数。

15、下列语句假设 SALES 是月度数据,一个广告是在 March 1992。下列语句假设saless是ARMA(1,1)。估计干预的效果。 data a; set a; ad = date = 1mar1992d; run; proc arima data=a; identify var=sales crosscorr=ad; estimate p=1 q=1 input=ad; run;连续干预连续干预考虑干预前后的影响。如可以考虑税率对某些经济指标的影响。这种干预被称为阶梯函数。例:考虑新闻对某产品需求的影响。假设1992年三月有报道说某产品可预防心脏病,那么在此后sales持续的较高。下列

16、程序对这种干预效果进行建模。 data a; set a; news = date = 1jul1996d; run; proc arima data=a; identify var=sales crosscorr=news; estimate p=1 q=1 input=news; run;相互作用可以在模型中包含多个干预变量。干预变量可以是脉冲式的也可以是连续干预等任何形式。也可以是离散值的干预变量和连续回归变量混合在同一模型中。只要依赖变量形成一个规则的时间序列,你就可以通过利用输入变量用PROC ARIMA对于误差过程拟合任何一个ARMA模型相连的一般线性模型。此时输入变脸对应于线性模

17、型中的设计矩阵。有理转移函数和分布时滞模型输入序列进入模型的途径也叫转移函数。因此带输入序列的ARIAM模型也叫转移函数模型。在前面的回归模型和干预模型中,转移函数是个单刻度参数。然而,也可以写成转移算子的有理函数的复杂转移函数。这些转移函数如同作用于ARMA或误差项一样作用于输入序列。 分子因子 proc arima data=a; identify var=sales crosscorr=price; estimate input=( (1 2 3) price ); run;这些语句估计下列模型:该模型把PRICE对SALES 的影响拟合为PRICE的当前和三个之前的值的线性函数,也等价

18、于SALES关于和PRICE, LAG(PRICE), LAG2(PRICE),和LAG3(PRICE)的多元线性回归。 这是一个带分子因子的转移函数的例子。对于输入序列的转移函数的分子因子类似于噪声序列所满足ARMA的MA部分。分母因子也可以是一个带分母因子的转移函数。对于输入序列的转移函数的分母因子类似于噪声序列所满足ARMA的AR部分。分母因子是把指数加权和无穷分布时滞引入转移函数。为了说明带分母因子的转移函数,需将分母因子置于INPUT=选项的斜杠号(/)之后。 proc arima data=a; identify var=sales crosscorr=price; estimat

19、e input=( / (1) price ); run;上述转移韩式为:这个转移函数也可以等价地写为: 这个转移函数可以与干预输入共同使用。当它同一个脉冲函数输入一起使用时,结果是随时间变化干预效果逐渐消失,当它同一个阶梯函数输入一起使用时,结果是预效果逐渐上升至某个极限值。有理转移函数 在INPUT=选项中组合各种分子分母因子,就可以指定任意复杂程度的有理转移函数。 input=( k $ ( -lags ) / ( -lags) x) INPUT和转移函数的进一步说明:输入变量及其转移函数可以通过ESTIMATE语句的INPUT=选项指定,这些变量必须在IDENTIFY语句的CROSSC

20、ORR=选项中列出。如果在CROSSCORR中给出的是差分,那么也是差分变量作为在INPUT中用于转移函数的。 ESTIMATE . INPUT=( transfer-function variable . ) 转移函数可以用作纯回归转移函数可以特殊化为:S $ (L1,1, L1,2, . ) (L2,1, . ) . / (Li,1, Li,2, . ) (Li+1,1, . ) . S 是输入变量的延迟时间 (lag)。括号中位参数滞后的多项式因子,(/)之前为分子及其因子,之后为分母及其因子。各个不同的变量用逗号隔开。 项Li,1, Li,2, . , Li,k 表示下列形式: 第一个

21、分母因子的形式依赖于ALTPARM选项。缺省地,第一个分母因子的常数项为1 被自由参数 替代。. Alternative Model ParameterizationALTPARM Option INPUT= Option ALTPARM Model INPUT=(1 2)(12)/(1)X);NoYes差分和输入变量如果对响应变量和输入变量作差分,那么差分运算并不改变模型的意义。如要拟合模型:那么 IDENTIFY语句为: identify var=y(1,12) crosscorr=x(1,12); estimate q=1 input=(/(1)x) noconstant;如果差分部分写

22、为: identify var=y(1,12) crosscorr=x; estimate q=1 input=(/(1)x) noconstant;那么模型为: 由VAR=选项给出的对响应变量所作的差分运算仅仅作用于该变量,而不作用于模型的噪声部分。识别转移函数模型Identify 语句中的CROSSCORR= 选项打印出了不同时间间隔的响应序列和输入序列的样本互相关系数。这些样本互相关系数可以用来识别转移函数的形式。为了使得互相关函数有意义,必须对输入序列的预白燥化模型对输入和响应变量序列进行滤波。 预白噪声处理作为经常出现的情况,如果输入序列时自相关的,则输入序列与响应序列之间的互相关系

23、数对于两者之间的关系会给出误导性指示。解决这个问题的方法就是预白噪声处理。 首先用一个ARIMA模型拟合输入序列,该模型应足以使得残差降为白噪声;然后用此模型过滤输入序列以获取白噪声残差序列,再之后用用同样的模型过滤响应序列,并计算过滤后响应序列和过滤后输入序列的互相关序列。当在用响应序列的IDENTIFY语句前,使用IDENTIFY和ESTIMATE语句来拟合关于输入序列的模型时,ARIMA过程自动地执行这个预白燥化。如果一个不带输入的模型先用来拟合CROSSCORR=选项所指定的一个变量,则此模型被用来对输入序列和响应序列进行预白燥化处理,然后才可以计算输入序列的互相关函数。例 proc

24、arima data=in; identify var=x; estimate p=1 q=1; identify var=y crosscorr=x;X 和 Y 都被ARMA(1,1)模型过滤,然后计算过滤后的互相关系数。注意到预白燥化处理是用来估计互相关系数的。在任何随后的ESTIMATE和FORECAST语句中使用未过滤序列,并且Y在自身时间间隔上的相关系数利用未经过滤的Y序列计算。但ESTIMATE语句中的初始值由预白燥化后的数据获得。因此,带有预白燥化处理的结果和不带预白燥化处理的结果不同。为了取消对输入变量的预白燥化的处理,可以在IDENTIFY语句中使用CLEAR选项,以使PRO

25、C ARIMA忘记以前所有模型。 预白噪声化合差分如果VAR=和 CROSSCORR=选项指定了差分操作,则序列在预白噪声化前作差分。带输入变量的预测为了使用带输入的ARIMA模型预测响应序列,你需要用于预测时刻的输入序列值。你可以在DATA= data set中给出预测时刻的输入变量值,或者用 PROC ARIMA 预测输入变量的值。如果在FORECAST语句使用的数据集中没有输入变量的未来值,则你必须在ARIMA模型过程预测响应序列之前预测输入序列值。如果在拟合响应序列前你用ARIMA模型来拟合需要预测的输入序列, 则FORECAST语句自动对于输入序列使用ARIMA模型以生成所需输入的预

26、测值。下列语句在拟合和预测SALES之前,用 AR(2)拟合PRICE的变化量。FORECAST语句使用此AR(2)自动地预测PRICE来获取生成SALES预测的未来输入值。 proc arima data=a; identify var=price(1); estimate p=2; identify var=sales(1) crosscorr=price(1); estimate p=1 q=1 input=price; forecast lead=12 interval=month id=date out=results; run;来自DATA数据集的输入值和由PROC ARIMA预测

27、的输入值可以结合起来。例如关于SALES的模型可以有三个输入序列: PRICE, INCOME, and TAXRATE。对预测而言,假定税率不变。你可以从另一途径获取的INCOME预测值,但这仅仅是你想 获得的最初几个时刻的SALES预测值。没有用前面例子中的方法预测的PRICE的未来值。 此时,你把所有关于预测时刻的观测值包含在输入数据集中。此时SALES和PRICE赋值为丢失值,对TAXRATE赋值为它的上一个真实值,而对于INCOME在有预测值的时刻赋值为预测值而在以后的时刻赋值为丢失值。在PROC ARIMA阶段,先要估计关于PRICE和INCOME的ARIMA模型,然后再估计SAL

28、ES的模型。 proc arima data=a; identify var=price(1); estimate p=2; identify var=income(1); estimate p=2; identify var=sales(1) crosscorr=( price(1) income(1) taxrate ); estimate p=1 q=1 input=( price income taxrate ); forecast lead=12 interval=month id=date out=results; run;在预测 SALES,ARIMA过程用做输入的值是使用ARI

29、MA模型产生的PRICE的预测值,DATA=的数据集中的TAXRATE 值、以及在DATA=的数据集中找到的INCOME 的值、或者由ARIMA模型在INCOME缺失时所得的预测值。 例5.4 1955年至1977年大气臭氧数据,试建立ARIMAX模型,以1966年前后,1965年后的冬夏为干预引子,并预报1978 年臭氧数据。解:用ozone表示臭氧数据,x1表示1966年前后不同(1966年前为0,1966年后为1),summer,winter表示夏冬(夏冬分别表示为1,其余为0)。对ozone作年差分以便绝大部分为0。模型如下:(1B12)(0zonet-a*x1t)=c*summer+

30、d*winter+(1-eB)(1-Fb12)at程序如下:data air;do t=1 to 228/*最后10个为预报值*/;input ozone ;year=int(t-0.2)/12)+1955;month=(t-(year-1955)*12);x1 = year = 1960;summer = ( 5 month 1965 );winter = ( year 1965 ) - summer;output;end;cards;. ; proc arima data=air; identify var=ozone(12) crosscorr=( x1(12) summer winte

31、r ) noprint; estimate q=(1)(12) input=( x1 summer winter )noconstant method=ml itprint;forecast lead=12 id=t interval=month; run; quit;/*结束arima程序*/参数的最大似然估计Parameter Estimate t Value Approx Pr |t| Variable MA1,1 -0.26684 -3.98 .0001 ozone MA2,1 0.76665 12.83 .0001 ozone NUM1 -1.33062 -6.92 .0001 x1

32、 NUM2 -0.23936 -4.02 chisq6 7.47 0.113212 10.21 0.422018 14.53 0.559324 19.99 0.583430 27.00 0.518036 32.65 0.5336给出模型 No mean term in this model.(无均值) Moving Average Factors(滑动平均因子)第一个因子: Factor 1: 1 + 0.26684 B*(1) 第二个因子:Factor 2: 1 - 0.76665 B*(12)输入因子:Input Number 1(第一个输入(干预)因子) Input Variable(变

33、量名) :x1 Period(s) of Differencing(差分阶数):12 Overall Regression Factor(系数): -1.33062 Input Number 2(第二个输入因子) Input Variable (变量名): summer Overall Regression Factor(系数):-0.23936 Input Number 3(第三个输入因子) Input Variable (变量名):winter Overall Regression Factor(系数): -0.0802模型为:给出预报值:Forecasts for variable oz

34、oneObs Forecast Std Error 95% Confidence Limits217 1.4205 0.7966 -0.1407 2.9817218 1.8446 0.8244 0.2287 3.4604219 2.4567 0.8244 0.8408 4.0725220 2.8590 0.8244 1.2431 4.4748221 3.1501 0.8244 1.5342 4.7659222 2.7211 0.8244 1.1053 4.3370223 3.3147 0.8244 1.6989 4.9306224 3.4787 0.8244 1.8629 5.0946225

35、2.9405 0.8244 1.3247 4.5564226 2.3587 0.8244 0.7429 3.9746227 1.8588 0.8244 0.2429 3.4746228 1.2898 0.8244 -0.3260 2.9057例5.5某天然气炉的天然气输入速率x和co2输出速率y,304个观测数据,(最后4个co2值未知,以便预报)。将天然气炉的天然气输入速率x为干预因子,建立ARIMAX数学模型并预报下5个co2值。解:先对x实行预白噪声化:data seriesj;do t=1 to 300;input x y ;output;end;cards;. ;proc arima

36、 data=seriesj; identify var=x nlags=10; run;输出结果:样本自相关函数指数衰减;偏、逆自相关函数截尾。可认为是AR()模型,并试用AR()模型。程序如下:estimate p=3;run;输出结果:Conditional Least Squares Estimation(参数的条件最小方差估计) Standard ApproxParameter Estimate Error t Value Pr |t| Lag MU -0.11805 0.10911 -1.08 0.2801 0AR1,1 1.96972 0.05479 35.95 .0001 1AR

37、1,2 -1.36536 0.09922 -13.76 .0001 2AR1,3 0.33975 0.05480 6.20 Lag Square DF ChiSq 6 9.36 3 0.0249 12 18.30 9 0.0319 18 26.73 15 0.0311 24 30.02 21 0.0915 30 34.15 27 0.1617 36 39.22 33 0.2109 42 42.22 39 0.3336 48 43.90 45 0.5185 表明基本符合白噪声条件,可认为预白噪声成功。再采用干预模型。试用模型:程序为:identify var=y crosscorr=(x) nl

38、ags=10;estimate input=( 3$ (1,2)/(1,2) x ) plot; run;输出结果:Conditional Least Squares Estimation(参数估计值) Standard ApproxParameter Estimate Error t Value Pr |t| Lag Variable MU 53.32237 0.04932 1081.24 .0001 0 y NUM1 -0.62861 0.25385 -2.48 0.0139 0 x NUM1,1 0.47267 0.62258 0.76 0.4483 1 x NUM1,2 0.73634 0.81052 0.91 0.3644 2 x DEN1,1 0.15429 0.90539 0.17 0.8648 1 x DEN1,2 0.27763 0.57380 0.48 0.6289 2 x AIC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号