《高铁梅老师的EVIEWS教学课件第二十二章状态空间模型和卡尔曼滤波共55页》由会员分享,可在线阅读,更多相关《高铁梅老师的EVIEWS教学课件第二十二章状态空间模型和卡尔曼滤波共55页(55页珍藏版)》请在金锄头文库上搜索。
1、第二十二章 状态空间模型和卡尔曼滤波State Space Models and State Space Models and Kalman Kalman FilterFilter 上世纪60年代初,由于工程控制领域的需要,产生了卡尔曼滤波 (KalmanFiltering)。进入70年代初,人们明确提出了状态空间模型的标准形式,并开始将其应用到经济领域。80年代以后,状态空间模型已成为一种有力的建模工具。许多时间序列模型,包括典型的线性回归模型和ARIMA模型都能作为特例写成状态空间的形式,并估计参数值。在计量经济学文献中,状态空间模型被用来估计不可观测的时间变量:理性预期,测量误差,长期收
2、入,不可观测因素(趋势和循环要素)。状态空间模型在经济计量学领域其他方面的大量应用请参见Hamilton(1994)和Harvey(1989)。 在一般的统计模型中出现的变量都是可以观测到的,这些模型以反映过去经济变动的时间序列数据为基础,利用回归分析或时间序列分析等方法估计参数,进而预测未来的值。状态空间模型的特点是提出了“状态”这一概念。 而实际上,无论是工程控制问题中出现的某些状态(如导弹轨迹的控制问题)还是经济系统所存在的某些状态都是一种不可观测的变量,正是这种观测不到的变量反映了系统所具有的真实状态,所以被称为状态向量。这种含有不可观测变量的模型被称为UC模型(Unobservabl
3、eComponentModel),UC模型通过通常的回归方程式来估计是不可能的,必须利用状态空间模型来求解。状态空间模型建立了可观测变量和系统内部状态之间的关系,从而可以通过估计各种不同的状态向量达到分析和观测的目的。EViews状态空间对象对单方程或多方程动态系统提供了一个直接的、易于使用的界面来建立、估计及分析方程结果。它提供了大量的建立、平滑、滤波及预测工具,帮助我们利用状态空间形式来分析动态系统。 利用状态空间形式表示动态系统主要有两个优点:第一,状态空间模型将不可观测的变量(状态变量)并入可观测模型并与其一起得到估计结果;其次,状态空间模型是利用强有效的递归算法卡尔曼滤波来估计的。卡
4、尔曼滤波可以用来估计单变量和多变量的ARMA模型、MIMIC(多指标和多因果)模型、马尔可夫转换模型以及变参数模型。 22.122.1 状态空间模型理论及方法状态空间模型理论及方法状态空间模型理论及方法状态空间模型理论及方法 在本节中,我们仅就如何定义并预测一个线性状态空间模型做以简要的讨论,更为详细的内容可以查询Hamilton(1994)、Harvey(1993)。 一、模型表示一、模型表示 维向量 的动态线性状态空间表示可通过下面的方程组给出:(22.1)(22.2) 式中, 为 维不可观测的状态向量, 是服从于零均值正态分布的扰动向量。不可观测的状态向量假定服从于一阶向量自回归过程。
5、我们将第一个方程称为“信号”或“量测”方程,第二个方程称为“状态”或“转移”方程。扰动向量 的同一时刻的协方差矩阵为: (22.3) Zt,Tt,Ht,Qt 和 ct ,dt 被称为系统矩阵或向量。系统矩阵Zt,Tt,Ht,Qt 可以依赖于一个未知参数的集合。状态空间模型的一个主要的任务就是估计这些参数,如例1和例2中MA(1)和AR(2)模型的MA和AR参数, 是未知的。为了和模型中的其它参数,如ct 或dt相区别,这些参数将通过 向量表示,并被称为超参数(Hyperparameters)。超参数确定了模型的随机性质,而在 ct 和 dt 中出现的参数仅影响确定性的可观测变量和状态的期望值。
6、在状态空间模型中可以引入外生变量做为解释变量,也可以引入 yt 的延迟变量,这些都可以放到 ct 中去。如果 ct 或 dt 是未知参数的一个线性函数,这些参数也可以作为超参数的一部分元素。 例例 1 1 一阶移动平均模型MA(1) (22.4) 通过定义状态向量 可以写成状态空间形式 量测方程 (22.5) 状态方程 (22.6)这种形式的特点是不存在量测方程噪声。 对于任何特殊的统计模型,状态向量 的定义是由结构确定的。它的元素一般包含具有实际解释意义的成分,例如趋势或季节要素。状态空间模型的目标是,所建立的状态向量 包含了系统在时刻t的所有有关信息,同时又使用尽可能少的元素。所以如果状态
7、空间模型的状态向量具有最小维数,则称为最小实现(MinimalRealization)。对一个好的状态空间模型,最小实现是一个基本准则。然而对于任一特殊问题的状态空间模型的表示形式却不是惟一的,这一点很容易验证。考虑通过定义一个任意的非奇异矩阵B,得到 ,为新的状态向量。用B矩阵左乘状态方程(22.2),得到 (22.7)式中 , , 。相应的量测方程是 (22.8)式中 。 例例2 2 对二阶自回归模型AR(2) (22.9) 考虑两个可能的状态空间形式( )是 (22.10) (22.11)换一种形式 (22.12) 例例3 3 由于各种各样的外界冲击和政策变化等因素的影响,经济结构不断发
8、生变化,用OLS等固定参数模型表现不出来这种经济结构的变化,因此,需要考虑采用变参数模型(Time-varyingParameterModel)。下面利用状态空间模型来构造变参数模型。 量测方程:(22.13)状态方程:(22.14)(22.15)在(22.13)式中,xt 是具有固定系数 的解释变量的集合,zt 是有随机系数t 的解释变量集合,随机系数向量t 是对应于(22.1)中的状态向量,称为可变参数。变参数t 是不可观测变量,必须利用可观测变量yt 和xt 来估计。在(22.14)式中假定变参数t 的变动服从于AR(1)模型(也可以简单地扩展为AR(p)模型),扰动向量 假定为相互独立
9、的,且服从均值为0,方差为 和协方差矩阵为 Q 的正态分布。 二、滤波二、滤波 ( ( Filtering )Filtering ) 考虑状态向量t 在时刻s的条件分布,我们可以定义条件分布的均值和方差矩阵: (22.16) (22.17) 期望算子的下标表示条件分布期望作用的期间。 令 则可得到一个重要的条件分布,即可以得到状态向量t 的向前一步均值 和向前一步方差 。 当给定 和 时,t 的条件分布的均值和估计误差的协方差矩阵由下式给定,即:(22.18)(22.19) 上面的两个方程称为预测方程(PredictionEquations)。 当得到新的观测值 ,就能够修正 的估计 ,更新方
10、程(UpdatingEquations)是:(22.20)(22.21) (22.22) 上述的(22.18) (22.22)一起构成Kalman滤波的公式。t 的条件分布的均值 是 t 在最小均方误差意义下的最优估计量。 给出一步向前状态条件均值,我们还可以得到 yt 的一步向前(线性)最小均方误差估计: (22.23) 一步向前预测误差可以通过下面的公式得到: (22.24) 预测误差的方差被定义为; (22.25) 卡尔曼滤波是在给出新的信息条件下更新状态向量的向前一步预测均值和方差的连续递归算法,具体的递归步骤如上所示。只要给出状态向量初值0=a0和协方差矩阵的初值 P0 ,以及系统矩
11、阵 Zt,Tt,Ht,Qt ,ct,dt 的值和 yt 的观测值,就可以利用卡尔曼滤波计算出状态向量和最小均方误差矩阵的估计 ,同期的或“滤波”的状态向量和方差为at ,Pt, 向 前 一 步 预 测 、 预 测 误 差 、 预 测 误 差 方 差 为 。 三、平滑三、平滑 ( ( Smoothing )Smoothing ) 假设对一段期间为T 的时间序列观测数据,使用期间T 的所有信息,对期间内状态向量的估计过程,我们称之为固定期间平滑。存在着多种形式的平滑方法(如:固定点平滑、固定延迟平滑等等),在这里我们使用固定期间平滑方法。 平滑使用所有的样本信息得到状态向量的平滑估计为状态向量方差
12、的平滑估计为 。矩阵 也被解释为状态平滑估计 的均方误差。 四、预测四、预测 ( ( Forecasting )Forecasting ) 对状态空间模型有很多种预测方法。这些方法的不同点主要在于使用什么样的信息和怎样使用信息。我们将主要讲解EViews支持的三种预测方法。 1 1、n n 步向前预测步向前预测 前面我们考察了一步向前预测的概念。现在,我们来考察多步向前预测的概念,在这里,我们利用给定期间内的可利用信息,对表达式(22.16)(22.17)进行少量的变动,就可以得到n步向前状态条件均值和方差:(22.29)(22.30) n 步向前预测:(22.31) 相应的n 步向前预测的最
13、小均方误差矩阵为:(22.32) 对于n =1,2,,同前面一样,在时刻t的可利用信息的基础上, 仍然可以被解释为 的最小均方误差估计, 是误差协方差矩阵的最小均方估计值。 n 步向前预测可以通过少量地改变卡尔曼递归算法计算出来(Harvey 1989)。对于在s =t +n期间的预测,使用时刻t的信息,利用状态向量和状态协方差阵的预测值只需初始化时刻t +1的卡尔曼滤波,对每一期s预测样本进行重复操作,s =t +1, t +n*。 2、动态预测动态预测的概念和其他EViews估计对象的概念相似。在动态预测中,我们从时刻t的预测样本开始,对于预测间隔的每一期n =1,n*计算完整的一组n期向
14、前预测。这样,如果我们希望从第t期开始动态地预测到第t +n*期,则对第t +1期我们计算一步向前预测,对第t +2期计算2步向前预测,持续下去,直到对第t +n*期计算n*步向前预测。这表明对n步向前预测,我们只需初始化时刻t +1的卡尔曼滤波,并且运用期内信息对期外进行滤波。然而对于动态预测,要求计算所有的预测值,因为从预测期开始信息系统没有被更新。3 3、平滑预测、平滑预测 相应地,我们可以计算平滑预测,就是使用预测样本的所有可利用信息,计算平滑值(例如 )。这些向前预测值可以通过初始化预测期间的初始状态求得,使用所有相关的信号数据对整个预测期间进行卡尔曼平滑滤波。这个技术对于设置信号的
15、信息被用来对全部预测样本插值时是很有用的。我们解释一下上面描述的预测方法。对于传统的n步向前预测和动态预测,在预测窗口的开始处,通常利用一步向前预测的状态向量和方差初始化状态向量。对于平滑预测,一般使用状态向量和方差的相应的平滑值进行预测的初始化。对某些情况,预测滤波和平滑可以选择初始值的不同设置。EViews的预测程序提供了可控的初始设置(在“状态空间”过程中叙述)。然而,如果选择了不同的设置,根据可利用信息,预测的解释将发生变化。五、估计未知参数五、估计未知参数 在应用卡尔曼滤波时,我们必须先把系统矩阵中的未知元素 用它们的估计值代替。在 和 服从正态分布条件下,样本的对数似然函数为:(2
16、2.33)其中,。 EViews利用数值微分和标准迭代技术求解带有未知参数的似然函数。 六、初始条件六、初始条件 卡尔曼滤波、平滑和预测过程的估计都要求给出状态向量的初值 和状态协方差矩阵的初值 。对于一些固定参数模型,其稳定状态条件允许我们利用系统矩阵去解 和 的值。对另一些模型,在估计不确定性的同时,我们可以得到 的初步估计。但在许多情况中,我们关于初始条件可能没有任何信息,而采用扩散先验。22.2 22.2 在在在在EViewsEViews中定义状态空间模型中定义状态空间模型中定义状态空间模型中定义状态空间模型EViews可以处理大量的单方程和多方程状态空间模型,提供了指定系统方程、协方
17、差矩阵和初始条件控制的详细方法。 在定义和估计一个状态空间模型时,第一步是创建一个状态空间对象。从主菜单中选择Objects/NewObject/Sspace,或在命令窗口键入命令sspace。EViews将创建一个状态空间对象,并打开一个空的状态空间说明窗口。 有两种方法定义一个状态空间模型,最简单的方法就是利用EViews中的“自动指定”功能引导状态空间模型的标准形式。这种方式只需在状态空间过程Procs中选择DefineStateSpace功能,就可以弹出定义对话框,指导创建一个状态空间的过程。这一方式的详细介绍见“自动定义”一节。 描述状态空间模型的更一般方法是使用关键字和文本来描述量
18、测方程、状态方程、误差结构、初始条件和待估参数的初值。下面来介绍描述状态空间对象的一般语法。 一、模型指定的语句一、模型指定的语句一、模型指定的语句一、模型指定的语句 1 1、量测方程量测方程 作为缺省,如果一个方程通过关键字“SIGNAL”来明确定义,或没有用关键字,EViews将把其作为量测方程处理。要注意以下几点: (1)量测方程的因变量可以包含表达式。 (2)量测方程中不能包含量测变量的当期和未来值,在量测方程中任何滞后量测变量都被看作多步向前预测的预测值看待。 (3)量测方程必须是同期状态向量的线性方程。状态向量的非线性或存在超前或滞后状态变量将导致错误的信息。 (4)量测方程中可以
19、包含外生变量和未知参数,也可以是这些元素的非线性形式。 量测方程可以包含误差或误差方差指定的选项,如果方程中不包含误差或误差方差,方程是确定性的。状态空间模型中误差指定的详细内容参看后面的“误差和方差”。 例子:例子: 下面是有效的量测方程的定义(注:下面量测方程中的sv1,sv2,sv3,sv4是状态向量)signaly=sv1+sv2*x1+sv3*x2+sv4*y(-1)+var=exp(c(1)log(p)=sv1+c(1)+c(3)*x+sv2*yz=c(1)+sv1+sv2*x1+sv3*x2+var=exp(c(2) 下面是不正确的方程的指定:signaly=sv1*sv2*x1
20、+var=exp(c(1)log(p)=c(1)+c(3)*x+sv1(-1)z=sv1+sv2*x1+c(3)*z(1)+c(1)+var=exp(c(2) 因为它们至少违背了上面描述条件中的一个条件(其顺序是:状态向量的非线性、状态向量的滞后、量测向量的超前)。 1 1 1 1、状态方程状态方程 状态方程的定义必须包含关键字“STATE”,后面跟随一个有效的状态方程。必须注意以下几点:(1)每一个状态方程必须有一个唯一的因变量名,不允许使用表达式。因为EViews对状态方程不能自动建立工作文件序列。(2)状态方程中不能包含量测方程的因变量,或因变量的超前和滞后变量。(3)每一个状态方程必须
21、是状态变量一期滞后的线性方程。如果在状态方程中存在状态变量的非线性关系、同期、超前或多期滞后将产生错误信息。需要强调的是,在状态方程中一期滞后约束条件不是限定的,因为更高阶的滞后被当作新的状态变量。关于这种情况的例子在后面的AR(2)模型中提供。(4)状态方程中可以包含外生变量和未知参数,可以是它们的非线性形式。 在状态方程中还包含误差或误差方差指定选项。如果在方程中不包含误差或误差方差,状态方程被假定为确定的。关于状态空间模型误差结构指定的详细介绍参看后面的“误差和方差”。 例子:例子: 下面两个状态方程定义了一个服从AR(2)过程的不可观测误差:statesv1=c(2)*sv1(-1)+
22、c(3)*sv2(-1)+var=exp(c(5)statesv2=sv1(-1) 第一个关于sv1的方程,根据AR(1)的系数c(2),和AR(2)的系数c(3),确定AR(2)模型的参数。误差方差的指定在方框中给出。sv2的状态方程定义为变量sv1的一步滞后,所以sv2(-1)表示sv1的两步滞后。 下面是不正确的状态方程:stateexp(sv1)=sv1(-1)+var=exp(c(3)statesv2=log(sv2(-1)+var=exp(c(3)statesv3=c(1)+c(2)*sv3(-2)+var=exp(c(3) 因为它们至少违背了上面描述条件中的一个条件(其次序是:状
23、态方程因变量是表示式,状态变量是非线性的,出现状态变量的多期滞后)。 3 3、误差与方差误差与方差 在误差项的处理中,状态空间对象方程的指定在某种程度上是唯一的。EViews总是把一个隐含的误差项加到一个方程或系统对象的各个方程中去。但如不特殊指定,状态空间量测或状态方程中不能包含误差项。误差项必须被加到(在方括号中)指定方程的后面。 把一个误差项加到状态空间方程中去的最简单的方法是指定误差项的方差。即加一个误差表达式到已存在的方程中去。误差表达式由关键字“var”和一个赋值语句组成(用方括号括起)。signaly=c(1)+sv1+sv2+var=1statesv1=sv1(-1)+var=
24、exp(c(2)statesv2=c(3)+c(4)*sv2(-1)+var=exp(c(2)*x) 指定的方差可以是已知常数值,也可以是包含待估计未知参数的表达式。还可以在方差中使用序列表达式建立时变参数模型。 这种方差的直接指定方法不允许不同方程的误差之间存在相关关系。作为默认,EViews假定误差项之间的协方差为零。如果指定误差项间存在相关关系,需要使用“命名误差”方法指定它们间的关系。“命名误差”方法包括两部分: (1)首先,必须通过加一个由关键字“ename”后接等号和变量名的误差表达式为方程中的残差序列命名。y=c(1)+sv1*x1+ename=e1statesv1=sv1(-1
25、)+ename=e2 (2)其次,需要键入由关键字“evar”后接一个误差的方差或两个误差之间的协方差的赋值语句。evarcov(e1,e2)=c(2)evarvar(e1)=exp(c(3)evarvar(e2)=exp(c(4)*x 可以在单个状态空间方程中合并命名误差和直接方差表达式:statesv1=sv1(-1)+ename=e1,var=exp(c(3)evarcov(e1,e2)=c(4)evar方程的语句结构可以进行自我辨别。简单的辨别有:该项是方差还是协方差,指定误差,记入方差和协方差的指定。在每一个希望指定的命名误差方差或协方差之间要分行指定。如果误差项被命名,但没有相应的
26、“var=”或evar说明,分别地,缺少的方差或协方差的默认值为“NA”或“0”。 用“ename=”语句定义的误差项只能存在于evar赋值语句中,而不能直接进入状态或量测方程中。 二、模型指定的例子二、模型指定的例子二、模型指定的例子二、模型指定的例子 下面的例子描述一个解释变量带有随机系数sr1和递归系数sr2的模型,sr1和因变量cp的误差项间存在相关关系(22-1/cp_y):例例例例1 1量测方程:状态方程:在方程中,cp(实际消费),y (实际收入),r(利率)。cp=c(1)+sr1*y+sr2*r(-2)+ename=e1,var=exp(c(2)statesr1=sr1(-1
27、)+ename=e2,var=exp(c(3)statesr2=sr2(-1)evarcov(e1,e2)=c(4)模型的方差 、 和协方差 g 由参数c(2)、c(3)和c(4)确定,cp和sr1的方差被限制为参数的非负函数。 1 1 1 1、指定未知参数指定未知参数(超参数)的初始值超参数)的初始值 上例中c(1),c(2),c(3),c(4)的初值分别为3.88,0.165,0.001,0.28。除非另外指定,否则EViews将用相应系数向量的当前值初始化所有参数。 可以通过在状态空间形式指定中使用PARAM或PARAM语句来明确指定合适的参数值。 例:paramc(1)3.88c(2)
28、0.165c(3)0.001c(4)0.28 2 2 2 2、指定状态向量和方差矩阵的初始条件指定状态向量和方差矩阵的初始条件 缺省时,EViews将自动处置初始条件。对一些平稳模型,其稳定状态条件使我们能够解出0和P0的值。当不能解出初始条件时,EViews将把初始值处理为扩散的,设置0=0,给P0一个任意大的正数乘单位矩阵代表其值的不确定性。 可能有0和P0的先验信息,这样,可以使用关键字mprior或vprior创建一个包含适当值的向量或矩阵。设置初始状态值时,键入“mprior”,后接向量对象名。向量对象的长度必须与状态空间的维数相匹配。其元素的顺序要与指定窗口中状态向量的顺序相一致。
29、mpriorv1vpriorm1 要设置状态向量方差矩阵P的初始值,键入“vprior”后接一个标志对象名(表示这是一个标志对象,而不是一个普通的矩阵对象)。标志的维数必须与状态空间的维数相匹配,其顺序要与指定的状态向量的顺序相一致。如果你想设置一个元素为扩散的,只需把该元素设置为“NA”缺省值。 EViews将重新设置所有相应的方差和协方差是扩散的。 例如,假设有一个2个方程的名字为SS1的状态空间模型,要设置状态向量与状态向量方差矩阵的初值如下: , (22.17) 首先,创建一个向量对象,命名为a0,输入初始值。操作步骤如下:按下Objects/Newobject按钮,选择Matric-
30、Vector-Coef并键入文件名a0。按OK键,选择Vector类型,并指定向量的维数(在这里是2)。当按下OK键后,EViews将显示向量a0的空白窗口。按Edit+/-按钮,转换到编辑模式,输入合适的值。然后再创建一个矩阵对象,命名为p0,创建的方式类似。 相比较,会发现使用命令创建和初始化向量和矩阵更容易一些。可以在命令窗口中键入下面的命令:vector(2)a0a0.fill1,0matrix(2,2)p0p0.fill(b=c)1,0.5,0.5,2 然后在编辑状态空间模型指定窗口,可以把下面两行加到状态空间对象中去:mpriora0vpriorp0 同样,也可以在命令窗口键入下面
31、的命令:ss1.appendmpriora0ss1.appendvpriorp0 关于矩阵对象与填加“fill”或追加“append”命令的详细说明,参见命令与程序指南“Command and Programming Reference”。 三、模型定义视窗三、模型定义视窗 状态空间模型是比较复杂的。为了帮助检验模型定义,EViews提供了视窗功能,允许在交互方式下查看文本指定,在当前参数值下检验系统估计矩阵估计值。 点击View菜单选择Specification,不管状态空间模型是否被估计,下面的指定窗口都可以被使用。(1 1)文本窗口文本窗口这是一个常见的模型指定的文本视窗。当创建或编辑状
32、态空间模型指定时,可以使用这个窗口。文本窗口也可以通过点击状态空间工具栏的Spec按钮进入。 (2 2)系系数数描描述述状态空间模型指定结构的文本描述。左边的变量 yt 和 被表示为状态向量和残差项的线性函数。矩阵的元素是相应的系数。例如,例1模型的系数描述视图如下: (3 3)协协方方差差描描述述状态空间模型协方差矩阵的文本描述。例如,例1模型有下面的协方差描述视图。 (4 4)系数值系数值 用当前参数估计的量测方程和状态方程结构的数字描述。如果系统系数矩阵是时变的,EViews将提示对矩阵估计选择一个日期/观测值。 (5 5)协方差值协方差值用当前参数估计的状态空间模型指定结构的数值描述。
33、如果系统协方差矩阵是时变参数的,EViews将提示对矩阵估计选择日期/观测值。 四、自动指定四、自动指定 为了帮助创建一个状态空间模型,EViews提供了一个“自动指定”工具栏,可以在对话框中为模型创建一个文本表示。如果模型是具有固定参数、递归参数、及不同的随机系数,或者误差项有一般ARMA结构的标准回归模型,这个工具是非常有用的。 在状态空间过程procs中,选择Procs/DefineStateSpace。EViews将打开一个三标签的对话框。 第一个标签对话框BasicRegression被用来描述模型的基本回归部分。键入因变量和带有固定或递归系数的回归变量。在建立指定时EViews使用
34、COEF对象代表未知参数。在底部,可以指定误差项一个ARMA结构。在这里,我们为上面的例子指定一个说明。 第二个标签对话框StochasticRegressors被用来加带有随机系数的回归变量。在四个编辑区域中键入合适的回归变量。EViews允许定义具有如下四项组合的回归变量:固定均值系数、AR(1)系数、随机游动系数、带有漂移的随机游动系数。 最后, EViews允许选择状态空间模型的基本方差结构。点击第三个标签对话框VarianceSpecification,为量测方程或状态方程选择方差矩阵类型:单位矩阵(Identity)、共同对角矩阵(CommonDiagonal,对角元素是共同的方差
35、)、一般对角矩阵(Diagonal)、无限制矩阵(Unrestricted)。对话框还允许为量测方程和状态方程选择非零的误差协方差阵。 需要强调指出的是,状态空间模型可以不必被对话框提供的选择限制。如果发现自动指定对话框的限制了模型指定,可以简单地使用它建立一个基本的指定,然后利用更一般的文本工具描述模型。 五、估计状态空间模型五、估计状态空间模型 一旦已经指定了一个状态空间模型,并且验证模型定义是正确的,打开估计对话框估计模型,点击工具菜单的Esimate按钮或者选择Procs/Estimate。 和其他估计对象一样,EViews允许选择估计样本区间,循环的最大次数,收敛值,估计算法,导数计
36、算设置和是否显示初始值。对大部分问题,缺省设置提供一个好的初始设置。 在进行模型估计时要注意下面两点: (1) 尽管EViews中卡尔曼滤波程序可以自动处理样本中的缺省值,但EViews要求估计样本必须是连续的,连续的观测值之间不能有缺口。 (2) 如果模型定义中有未知系数,为用卡尔曼滤波估计状态空间模型,需要指定初值。 六、解释估计结果六、解释估计结果 在选择方差选项并点击OK以后,EViews在状态空间窗口显示估计结果。 例例例例2 2 建立变参数的IS模型:其中GDP/P是实际收入,r 是利率,则自发支出0用状态变量sv1表示, 1用状态变量sv2表示,1/1(即sv2的倒数)是IS曲线
37、的斜率,随着时间的推移,可以观察IS曲线的变化,是越来越陡峭还是越来越平坦,从而看出货币政策的有效性。(22_1/is): y =sv1+sv2*r(-3) + var=abs(c(4) state sv1 =sv1(-1) + var=abs(c(2) state sv2 =c(1)*sv2(-1) + var=abs(c(3) param c(1) 0.94 c(2) 3.5 c(3) 0.00001 c(4) 81 估计这个模型,EViews将打开估计输出视窗: 输出视窗与其他EViews估计对象相似。上面的信息描述估计的基本信息:状态空间对象名、估计方法、估计的时间和日期、样本区间、包
38、含的样本数、收敛信息和系数估计。还显示最终的状态向量的一步向前预测值 和误差协方差矩阵 对角线元素的平方根。视窗的底部描述了最大对数似然估计值,估计参数的数目,以及相关的信息准则。对于状态向量和协方差矩阵整个路径的设置,EViews提供了一系列视窗和过程来检验状态结果。22.322.3 状态空间模型的视窗和过程状态空间模型的视窗和过程状态空间模型的视窗和过程状态空间模型的视窗和过程EViews提供了一系列专门的工具用来指定和检验状态空间模型。与其他的估计对象相比较,状态空间对象提供了附加的视窗和过程来检验估计结果,处理推断和指定检验,并且提取结果到其他EViews对象中去。 一、状态空间视窗一
39、、状态空间视窗 1 1、一般视窗、一般视窗 许多状态空间视窗与前面讨论的相似: (1 1)模模型型定定义义视视窗窗(SpecificationSpecification)查看模型文本定义,系数和协方差定义。仅看文本窗口还可以点击系统工具条的“Spec”。 ( 2 2) 估估 计计 结结 果果 ( Estimation Estimation OutputOutput)还可以点击系统工具条的“Stats”,显示估计结果。 (3 3)梯梯度度视视窗窗(Gradients Gradients and and DerivativesDerivatives) 和其他的估计对象视窗相似,如果状态空间包含待估
40、参数,该视窗提供了被估计参数(已估计)的对数似然估计的梯度的简要可视信息或当期参数值。 (4 4)实实际际值值、拟拟合合值值和和残残差差(Actual, Actual, Predicted, Predicted, Residual Residual GraphGraph)用图表的方式显示量测方程因变量实际值和一步向前拟合值,和一步向前标准残差。 (5 5)估计系数协方差矩阵估计系数协方差矩阵(Coefficient Covariance MatrixCoefficient Covariance Matrix) (6 6)WaldWald检验检验(WaldWald Coefficient Tes
41、ts Coefficient Tests) 允许做估计系数的假设检验。 (7 7)Label Label 视窗视窗 允许为状态空间对象做注释。 注意,除了Label和模型定义(Specification)视窗之外,其余的视窗只有在状态空间模型被正确估计的情况下才可以使用。 2 2、量测视窗、量测视窗 当点击View/SignalViews,EViews显示一个包含视窗选择的次级菜单。 ActualSignalTable和ActualSignalGraph显示量测方程因变量的表和图的形式。如果有多个量测方程,Eviews将按其顺序显示多个序列。在状态空间模型没有被估计的条件下,这两个选项也是可以
42、利用的。 GraphSignalSeries,可以打开一个对话框,选择显示结果。对话框允许在下列选项中做出选择:量测变量一步向前预测 ,相应的一步预测残差 ,标准化的一步残差 ,平滑的量测变量 ,平滑的量测方程扰动项 ,或标准平滑的量测方程扰动项 。加上2倍的标准误差的点线图。 STd.ResidualCorrelationMatrix和Std.ResidualCovarianceMatrix显示量测方程一步向前预测标准差的相关阵和协方差阵。3 3、状态视窗状态视窗 为了检验不可观测的状态变量,点击View/StateViews显示状态方程子菜单。EViews允许检验状态变量的初值和终值,或者
43、画状态向量的各种平滑和滤波序列图。在估计前后,视窗中有两个选项是可利用的: InitialStateVector和InitialStateCovarianceMatrix显示状态向量的初始值 ,和协方差阵 。如果未知参数已被估计,EViews将使用估计值计算初始条件。如果状态空间模型没有被估计,使用当期系数值来估计初始条件。 在EViews正在利用系统矩阵的当前值求解初始条件时,这个信息是特别有意义的。在开始估计有困难的情况下,可以从任意初始参数值出发来估计初始条件。窗口中的其他选项,只对已成功估计的模型有效: FinalStateVetor和FinalStateCovarianceMatri
44、x,显示状态向量终值 ,和协方差矩阵终值 ,在对参数估计后估计得到。 GraphStateSeries菜单,显示包含状态向量信息选项的对话框。可以画下列变量的线性图:状态向量的一步向前预测 ,经过滤波得到的同期状态向量 ,平滑的状态向量估计 ,平滑的状态扰动项的估计 ,标准的平滑状态扰动项 。在每一线性图中,显示数据被包在其倍的标准差带中。 二、状态空间过程二、状态空间过程 可以使用Eviews过程创建、估计、预测状态空间模型和从指定的状态空间模型生成数据。1 1、自动指定状态空间模型自动指定状态空间模型(Define State SpaceDefine State Space) 激活自动指定
45、对话框。可以在交互的方式下指定状态空间模型。 2 2、估计估计(EstimateEstimate) 估计指定模型的参数(22-1/IS)。 上面两项功能在模型估计前后都可以使用。自动指定工具将代替存在的状态空间指定和清除任何结果。估计将替代已存在的结果。 3 3、预测预测 如果已经对状态空间模型进行了估计,EViews提供生成数据的其他工具:预测允许利用选择的预测方法和初始化方法,来产生状态变量、量测变量和联合标准误差的预测。 (1)(1) 选选选选择择择择预预预预测测测测方方方方法法法法 可以在动态预测,平滑预测和n期向前预测三种方法中选择其一。注意,任何在量测方程右边的延迟内生变量都被做为
46、外生变量的看待。(2)(2)预测结果输出预测结果输出预测结果输出预测结果输出EViews允许在工作文件中以序列形式存储预测输出结果。只须点击输出框,在相应的编辑区域指定序列名。 可以指定一列变量名或一个通配符表达式。如果选择列变量名,变量名的数目必须与指定的量测变量的数目相匹配。如果输出序列的名字已经在工作文件中存在,EViews将全部覆盖序列的内容。 如果使用一个通配符表达式,EViews将利用通配符表达式在适当的位置替代每一个量测变量的名字。例如,如果有一个具有量测变量y1、y2的模型,选择通配符“*F”存储一步预测的结果,EViews将使用序列名y1F和y2F存贮输出结果。对该功能有两点
47、限制:一是不能使用通配符表达式“*”存储量测变量的结果,因为这将导致对原始量测数据的覆盖。二是当量测方程因变量通过表达式指定,或量测变量出现在多个方程中,不能使用通配符。对于这两点,EViews将不能产生新的序列,只产生错误信息。 需要注意的是,如果量测方程的因变量是一个表达式,EViews将只提供表达式的预测,因此,如果量测变量是log(y),EViews将只预测y的对数。我们分别利用动态预测,平滑预测和1(n=1)期向前预测三种方法在期间1993:1至2000:4进行预测,分别得到预测结果YF、YF1、YF2。下面是3个预测值和实际值Y画在一起的图形,可以看出动态预测YFD和平滑预测YFS
48、的结果重合了。1期向前预测YF1与实际值接近。 (3 3)设设设设置置置置初初初初始始始始条条条条件件件件 有几个选项是可以选用的。可以使用状态变量和状态协方差的One-stepahead预测或Smoothed预测估计值做为预测的初始值。这两种初始化方法在使用估计样本的信息数量上是不同的。一步向前预测使用直到预测期开始的信息,平滑预测使用全部估计期的信息。 相应地,还可以使用EViews计算初始条件。在预测开始时,EViews将求解Riccati代数方程,获得状态向量和状态向量协方差的初始值。如果不能得到初始状态的解,EViews将使用扩散的初始值。 最后,可以选择提供一个向量和包含预测初始值
49、的特征对象。选择User并在编辑区域输入有效的EViews对象名。 当计算n步向前预测时,EViews将调整预测期的起始时期,以便使用指定的方法可以得到每一期的初始条件。对于一步向前预测和平滑预测方法,意味着在预测期间最初n-1个观测值被做为估计样本,更早期的观测值被设为NA。对于其他初始化方法,预测样本的终点调整没有被要求。 4 4产生量测序列产生量测序列(MakeSignalSeries) EViews允许创建序列保存各种量测变量的计算结果。只需点击菜单就可进入显示结果对话框。 可以选择一步向前预测量测变量 ,一步预测残差 ,平滑量测变量或量测方程扰动项估计 或 。EViews还允许存储这
50、些变量的相应的标准误差( 、 和 对角线元素的平方根),或一步预测残差和平滑扰动项 和 。 选择一步向前预测量测变量 ,则EViews将在工作文件中用名为YF的序列来存储。点击Y和YF,建立组,可以通过画图观察Y的模拟情况: 可以在编辑区通过一列变量或通配符给序列命名。点击OK按钮,生成一组量测变量序列。当量测方程变量是表达式时,EViews将只输出整个表达式的结果。 5 5产生状态序列产生状态序列(MakeStateSeries) 打开一个对话框保存各种状态变量的计算结果。 可以选择存储一步向前预测状态变量估计结果 ,滤波状态变量均值 ,平滑状态变量 ,状态变量扰动项 ,标准化的状态扰动项
51、,或相应的标准误差序列( 、 、 和 对角线元素的平方根)。 选择存储一步向前预测状态变量估计结果,则IS模型中的自发支出0t的状态变量SV1和利率r 的变参数1t,即状态变量SV2,分别用SV1F和SV2F的名字存储在工作区里。画图如下。从中可以看出IS曲线的斜率是负的,且SV2F的绝对量是逐渐下降的,从而说明1/1t是越来越大,IS曲线是逐渐陡峭的,也就是调整利率对实际收入的影响逐渐减弱。 简单地选择一种输出类型,在编辑区键入输出序列的文件名。指定输出变量名的规则与Forecast过程描述的相同。注意,在存储状态结果时通配符“*”是允许使用的。这时,EViews使用指定的状态变量名。 6
52、6产生内生变量组产生内生变量组(MakeEndogenousGroup) 生成一个包含量测方程因变量序列的组对象。 7 7产生梯度组产生梯度组(MakeGradientGroup) 创建一个包含对数似然函数梯度序列的组对象。这些对象被命名为“GRAD#”,在这里#是工作文件中唯一的数字。 8 8建立新的状态空间对象建立新的状态空间对象(MakeKalmanFilter) 创建一个包含当期指定形式的新的状态空间对象,其所有的参数被它们的估计值替代。这样,可以“freeze”当前的状态空间做额外的分析。 9 9建立模型建立模型(MakeModel) 创建一个包含状态空间方程的模型对象。 1010修
53、正系数修正系数(UpdateCoefsfromSspace) 将用适当的系数向量替代待估参数。 22.5 22.5 EViewsEViews命令命令命令命令为表示一个状态空间对象,使用关键字Sspace后接一个有效的EViews名。可以使用追加过程在每一行状态空间命令后追加文本行。SspacetvpTvp.appendcs=c(1)+sv1*incTvp.appendstatesv1=sv1(-1)+var=c(2)为了在收敛标准1e-8下估计模型的未知参数,最大重复次数为500,显示初始值和其他估计选项,可以键入:tvp.m1(m=500,c=1e-8,showopts)为了显示平滑的量测变量和一步向前状态变量估计,键入:tvp.singalgraphs(t=smooth)tvp.stategraphs(t=pred)我们把四期向前状态变量预测存储在SV1中,把量测变量预测存储在序列CSF中:tvp.forecast(method=n,n=4)state*signalcsf返返 回回