一章状态空间模型和卡尔曼滤波.ppt
第十一章 状态空间模型和卡尔曼滤波State Space Models and Kalman Filter,上世纪60年代初,由于工程控制领域的需要,产生了卡尔曼滤波(Kalman Filtering)。进入70年代初,人们明确提出了状态空间模型的标准形式,并开始将其应用到经济领域。80年代以后,状态空间模型已成为一种有力的建模工具。许多时间序列模型,包括典型的线性回归模型和ARIMA模型都能作为特例写成状态空间的形式,并估计参数值。在计量经济学文献中,状态空间模型被用来估计不可观测的时间变量:理性预期,测量误差,长期收入,不可观测因素(趋势和循环要素)。状态空间模型在经济计量学领域其他方面的大量应用请参见Hamilton(1994)和Harvey(1989)。,在一般的统计模型中出现的变量都是可以观测到的,这些模型以反映过去经济变动的时间序列数据为基础,利用回归分析或时间序列分析等方法估计参数,进而预测未来的值。状态空间模型的特点是提出了“状态”这一概念。而实际上,无论是工程控制问题中出现的某些状态(如导弹轨迹的控制问题)还是经济系统所存在的某些状态都是一种不可观测的变量,正是这种观测不到的变量反映了系统所具有的真实状态,所以被称为状态向量。这种含有不可观测变量的模型被称为UC模型(Unobservable Component Model)。,UC模型通过通常的回归方程式来估计是不可能的,必须利用状态空间模型来求解。状态空间模型建立了可观测变量和系统内部状态之间的关系,从而可以通过估计各种不同的状态向量达到分析和观测的目的。EViews状态空间对象对单方程或多方程动态系统提供了一个直接的、易于使用的界面来建立、估计及分析方程结果。它提供了大量的建立、平滑、滤波及预测工具,帮助我们利用状态空间形式来分析动态系统。,利用状态空间形式表示动态系统主要有两个优点:第一,状态空间模型将不可观测的变量(状态变量)并入可观测模型并与其一起得到估计结果;其次,状态空间模型是利用强有效的递归算法卡尔曼滤波来估计的。卡尔曼滤波可以用来估计单变量和多变量的ARMA模型、MIMIC(多指标和多因果)模型、马尔可夫转换模型以及变参数模型。,11.1 状态空间模型理论及方法 在本节中,我们仅就如何定义并预测一个线性状态空间模型做以简要的讨论,更为详细的内容可以查询 Hamilton(1994),Harvey(1993)。一、状态空间模型表示 k 1维向量 yt 的动态线性状态空间表示可通过下面的方程组给出:(11.1)(11.2)式中,t 为m 1维不可观测的状态向量,t,t 是服从于零均值正态分布的扰动向量。不可观测的状态向量假定服从于一阶向量自回归过程。,我们将第一个方程称为“信号(Signal Equation)”或“量测(Measurement Equation)”方程,第二个方程称为“状态(State Equation)”或“转移(Transition Equation)”方程。扰动向量 t,t 的同一时刻的协方差矩阵为:(11.3)Zt,Tt,Rt,Ht,Qt,Gt 和 dt,ct 被称为系统矩阵或向量。系统矩阵 Zt,Tt,Rt,Ht,Qt,Gt 可以依赖于一个未知参数的集合。状态空间模型的一个主要的任务就是估计这些参数。,为了和模型中的其它参数,如 dt 或ct 相区别,这些参数将通过 向量表示,并被称为超参数(Hyperparameters)。超参数确定了模型的随机性质,而在 dt 或ct中出现的参数仅影响确定性的可观测变量和状态的期望值。在状态空间模型中可以引入外生变量做为解释变量,也可以引入 yt 的延迟变量,这些都可以放到 dt 中去。如果dt 或ct是未知参数的一个线性函数,这些参数也可以作为超参数的一部分元素。,例 1 一阶移动平均模型MA(1)(11.4)通过定义状态向量t=(yt,t)可以写成状态空间形式 量测方程:(11.5)状态方程:(11.6)这种形式的特点是不存在量测方程噪声。,对于任何特殊的统计模型,状态向量t 的定义是由结构确定的。它的元素一般包含具有实际解释意义的成分,例如趋势或季节要素。状态空间模型的目标是,所建立的状态向量t 包含了系统在时刻 t 的所有有关信息,同时又使用尽可能少的元素。所以如果状态空间模型的状态向量具有最小维数,则称为最小实现(Minimal Realization)。对一个好的状态空间模型,最小实现是一个基本准则。然而对于任一特殊问题的状态空间模型的表示形式却不是惟一的,这一点很容易验证。,考虑通过定义一个任意的非奇异矩阵B,得到t*=Bt,为新的状态向量。用B矩阵左乘状态方程(11.2),得到(11.7)式中Tt*=BTt B-1,ct*=Bct,Rt*=BRt。相应的量测方程是(11.8)式中Zt*=Zt B-1。,例2 对二阶自回归模型AR(2)(11.9)考虑两个可能的状态空间形式(k=1,m=2)是(11.10)(11.11)换一种形式(11.12),例3 由于各种各样的外界冲击和政策变化等因素的影响,经济结构不断发生变化,用OLS等固定参数模型表现不出来这种经济结构的变化,因此,需要考虑采用变参数模型(Time-varying Parameter Model)。下面利用状态空间模型来构造变参数模型。量测方程:(11.13)状态方程:(11.14)(11.15),在(11.13)式中,xt 是具有随机系数 t 的解释变量的集合,zt 是有固定系数 的解释变量集合,随机系数向量t 是对应于(11.1)中的状态向量,称为可变参数。变参数t 是不可观测变量,必须利用可观测变量 yt 和 xt 来估计。在(11.14)式中假定变参数 t 的变动服从于AR(1)模型(也可以简单地扩展为AR(p)模型),扰动向量 t,t 假定为相互独立的,且服从均值为0,方差为 2和协方差矩阵为 Q 的正态分布。,二、卡尔曼滤波(Kalman Filtering)以下设 YT 表示在 t=T 时刻所有可利用的信息的信息集合,即YT=yT,yT-1,y1。状态向量的估计问题根据信息的多少分为三种类型:(1)当 t T 时,超出样本的观测区间,是对未来状态的估计问题,称为预测(Prediction);(2)当 t=T 时,估计观测区间的最终时点,即对现在状态的估计问题,称为滤波(Filtering);,(3)当 t T 时,是基于利用现在为止的观测值对过去状态的估计问题,称为平滑(Smoothing)。假设对一段期间为 T 的时间序列观测数据,使用期间 T 的所有信息,对期间内状态向量的估计过程,我们称之为固定期间平滑。存在着多种形式的平滑方法(如:固定点平滑、固定延迟平滑等等),EViews使用固定期间平滑方法。,考虑状态向量t 在时刻 s 的条件分布,我们可以定义条件分布的均值和方差矩阵:(11.16)(11.17)期望算子的下标表示条件分布期望作用的期间。令 s=t-1 则可得到一个重要的条件分布,即可以得到状态向量 t 的向前一步均值 at t 1 和向前一步方差 Pt t-1。,当给定at-1和Pt-1时,t 的条件分布的均值和估计误差的协方差矩阵由下式给定,即:(11.18)(11.19)上面的两个方程称为预测方程(Prediction Equations)。,当得到新的观测值 yt,就能够修正t 的估计 att-1,更新方程(Updating Equations)是:(11.20)(11.21),(11.11)上述的(11.18)(11.11)一起构成Kalman滤波的公式。t 的条件分布的均值 at 是t 在最小均方误差意义下的最优估计量。,给出一步向前状态条件均值,我们还可以得到 yt 的一步向前(线性)最小均方误差估计:(11.23)一步向前预测误差可以通过下面的公式得到:(11.24)预测误差的方差被定义为;(11.25),卡尔曼滤波是在给出新的信息条件下更新状态向量的向前一步预测均值和方差的连续递归算法,具体的递归步骤如上所示。只要给出状态向量初值0=a0 和协方差矩阵的初值 P0,以及系统矩阵 Zt,Tt,Rt,Ht,Qt,dt,ct 的值和 yt 的观测值,就可以利用卡尔曼滤波计算出状态向量和最小均方误差矩阵的估计att-1,Ptt-1,at,Pt 为同期的或“滤波”的状态向量和方差,分别为向前一步预测、预测误差、预测误差方差。,平滑(Smoothing)(t=T 1,T 2,1)(t=T-1,T-2,1)(11.26)其中,T|T,PT|T 是平滑的初值,由基本滤波最后的迭代得到。,三、估计未知参数 在讨论利用卡尔曼滤波递推公式求状态向量的估计量时,假定状态空间模型的系统矩阵Zt,Ht,Tt,Rt 和Qt 是已知的。但实际上系统矩阵是依赖于一个未知参数的集合,这些未知参数用向量 表示,并被称为超参数。例如:在例1的一阶移动平均模型MA(1)中=,2,在例2的二阶自回归模型AR(2)中=1,2,2,在例3变参数模型的=,2,Q。,在应用卡尔曼滤波时,我们必须先把系统矩阵中的未知元素 用它们的估计值代替。在 t 和 t 服从正态分布条件下,样本的对数似然函数为:(11.27)其中 EViews利用数值微分和标准迭代技术求解带有未知参数的似然函数。,四、初始条件 卡尔曼滤波、平滑和预测过程的估计都要求给出状态向量的初值0和状态协方差矩阵的初值P0。对于一些固定参数模型,其稳定状态条件允许我们利用系统矩阵去解0 和P0的值。对另一些模型,在估计不确定性的同时,我们可以得到0 的初步估计。但在许多情况中,我们关于初始条件可能没有任何信息,而采用扩散先验。,11.2 在EViews中定义状态空间模型 EViews可以处理大量的单方程和多方程状态空间模型,提供了指定系统方程、协方差矩阵和初始条件控制的详细方法。在定义和估计一个状态空间模型时,第一步是创建一个状态空间对象。从主菜单中选择Objects/New Object/Sspace,或在命令窗口键入命令sspace。EViews将创建一个状态空间对象,并打开一个空的状态空间说明窗口。,有两种方法定义一个状态空间模型,最简单的方法就是利用EViews中的“自动指定”功能引导状态空间模型的标准形式。这种方式只需在状态空间过程Procs中选择Define State Space功能,就可以弹出定义对话框,指导创建一个状态空间的过程。这一方式的详细介绍见“自动定义”一节。描述状态空间模型的更一般方法是使用关键字和文本来描述量测方程、状态方程、误差结构、初始条件和待估参数的初值。下面来介绍描述状态空间对象的一般语法。,一、模型指定的语句 1.量测方程 作为缺省,如果一个方程通过关键字“SIGNAL”来明确定义,或没有用关键字,EViews将把其作为量测方程处理。要注意以下几点:(1)量测方程的因变量可以包含表达式。(2)量测方程右端中不能包含量测变量的当期和未来值,在量测方程中任何滞后量测变量都被看作多步向前预测的预测值看待。(3)量测方程必须是同期状态向量的线性方程。状态向量的非线性或存在超前或滞后状态变量将导致错误的信息。(4)量测方程中可以包含外生变量和未知参数,也可以是这些元素的非线性形式。量测方程可以包含误差或误差方差指定的选项,如果方程中不包含误差或误差方差,方程是确定性的。状态空间模型中误差指定的详细内容参看后面的“误差和方差”。,例子:下面是有效的量测方程的定义(注:下面量测方程中的sv1,sv2,sv3,sv4是状态向量)signal y=sv1+sv2*x1+sv3*x2+sv4*y(-1)+var=exp(c(1)log(p)=sv1+c(1)+c(3)*x+sv2*y z=c(1)+sv1+sv2*x1+sv3*x2+var=exp(c(2)下面是不正确的方程的指定:signal y=sv1*sv2*x1+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)因为它们至少违背了上面描述条件中的一个条件(其顺序是:状态向量的非线性、状态向量的滞后、量测向量的超前)。,2.状态方程 状态方程的定义必须包含关键字“STATE”,后面跟随一个有效的状态方程。必须注意以下几点:(1)每一个状态方程必须有一个唯一的因变量名,不允许使用表达式。因为EViews对状态方程不能自动建立工作文件序列。(2)状态方程中不能包含量测方程的因变量,或因变量的超前和滞后变量。(3)每一个状态方程必须是状态变量一期滞后的线性方程。如果在状态方程中存在状态变量的非线性关系、同期、超前或多期滞后将产生错误信息。需要强调的是,在状态方程中一期滞后约束条件不是限定的,因为更高阶的滞后被当作新的状态变量。关于这种情况的例子在后面的AR(2)模型中提供。(4)状态方程中可以包含外生变量和未知参数,可以是它们的非线性形式。在状态方程中还包含误差或误差方差指定选项。如果在方程中不包含误差或误差方差,状态方程被假定为确定的。关于状态空间模型误差结构指定的详细介绍参看后面的“误差和方差”。,例子:下面两个状态方程定义了一个服从AR(2)过程的不可观测误差:state sv1=c(2)*sv1(-1)+c(3)*sv2(-1)+var=exp(c(5)state sv2=sv1(-1)第一个关于sv1的方程,根据AR(1)的系数c(2),和AR(2)的系数c(3),确定AR(2)模型的参数。误差方差的指定在方框中给出。sv2的状态方程定义为变量sv1的一步滞后,所以sv2(-1)表示sv1的两步滞后。下面是不正确的状态方程:state exp(sv1)=sv1(-1)+var=exp(c(3)state sv2=log(sv2(-1)+var=exp(c(3)state sv3=c(1)+c(2)*sv3(-2)+var=exp(c(3)因为它们至少违背了上面描述条件中的一个条件(其次序是:状态方程因变量是表示式,状态变量是非线性的,出现状态变量的多期滞后)。,3.误差与方差 在误差项的处理中,状态空间对象方程的指定在某种程度上是唯一的。EViews总是把一个隐含的误差项加到一个方程或系统对象的各个方程中去。但如不特殊指定,状态空间量测或状态方程中不能包含误差项。误差项必须被加到(在方括号中)指定方程的后面。把一个误差项加到状态空间方程中去的最简单的方法是指定误差项的方差。即加一个误差表达式到已存在的方程中去。误差表达式由关键字“var”和一个赋值语句组成(用方括号括起)。signal y=c(1)+sv1+sv2+var=1 state sv1=sv1(-1)+var=exp(c(2)state sv2=c(3)+c(4)*sv2(-1)+var=exp(c(2)*x)指定的方差可以是已知常数值,也可以是包含待估计未知参数的表达式。还可以在方差中使用序列表达式建立时变参数模型。,这种方差的直接指定方法不允许不同方程的误差之间存在相关关系。作为默认,EViews假定误差项之间的协方差为零。如果指定误差项间存在相关关系,需要使用“命名误差”方法指定它们间的关系。“命名误差”方法包括两部分:(1)首先,必须通过加一个由关键字“ename”后接等号和变量名的误差表达式为方程中的残差序列命名。y=c(1)+sv1*x1+ename=e1 state sv1=sv1(-1)+ename=e2(2)其次,需要键入由关键字“evar”后接一个误差的方差或两个误差之间的协方差的赋值语句。evar cov(e1,e2)=c(2)evar var(e1)=exp(c(3)evar var(e2)=exp(c(4)*x,可以在单个状态空间方程中合并命名误差和直接方差表达式:state sv1=sv1(-1)+ename=e1,var=exp(c(3)evar cov(e1,e2)=c(4)evar方程的语句结构可以进行自我辨别。简单的辨别有:该项是方差还是协方差,指定误差,记入方差和协方差的指定。在每一个希望指定的命名误差方差或协方差之间要分行指定。如果误差项被命名,但没有相应的“var=”或evar说明,分别地,缺少的方差或协方差的默认值为“NA”或“0”。用“ename=”语句定义的误差项只能存在于evar赋值语句中,而不能直接进入状态或量测方程中。,例4:模型指定的例子可变参数的边际消费倾向 设Y 表示收入,YD 表示个人可支配收入,是居民户在得到政府的转移支付(TR)和向政府纳税(TAX)后可用于支出的净收入,即(11.27)设税收在收入中所占的比例为t,则TAX=tY,消费函数可写为(11.28)式中 是自发消费,c 是边际消费倾向,。构造消费方程的变参数模型,GDPEAt 是年度支出法的GDP,Pt 是消费价格指数,CSt 是居民消费。,量测方程:(11.29)状态方程:(11.30)(11.31)按前面的规则在空白的文本窗口上直接键入如下语句:signal csp=c(1)+sp1*(1-t)*gdpea/p+var=exp(c(2)state sp1=c(3)+c(4)*sp1(-1)+var=exp(c(5)param c(1)442.7 c(2)11.3 c(3)0.105 c(4)0.8 c(5)-7.9其中量测方程中的 是c(1),状态方程的一阶自回归的系数是c(3),模型的方差2,2由参数c(2),c(4)确定,方差被限制为参数的非负函数,协方差 g=0。,也可以写成下面的形式,当有协方差时要这样写;signal csp=c(1)+se1*(1-t)*gdpea/p+ename=e1 state se1=c(3)+c(4)*se1(-1)+ename=e2 evar var(e1)=exp(c(2)evar var(e2)=exp(c(5)evar cov(e1,e2)=c(6)param c(1)442.7 c(2)11.3 c(3)0.115 c(4)0.9 c(5)-9.85 c(6)0.000298,4.指定未知参数(超参数)的初始值 上例中c(1),c(2)的初值可以通过建立回归方程 csp=c(1)+sp1*(1-t)*gdpea/p确定为c(1)=442.7,求方程的方差的对数为c(2)=11.3,根据经验,状态方程的初值c(3),c(4),c(5)可先给为0.005,0.9,-9。然后估计得到状态向量sp1F,建立sp1F的自回归方程 sp1F c sp1F(-1)确定为c(3)=0.105,c(4)=0.8,求方程的方差的对数为c(5)=-7.9。如果不指定EViews将用系数向量的当前值初始化所有参数。可以通过指定中使用PARAM语句来明确指定合适的参数值,例:param c(1)442.7 c(2)11.3 c(3)0.105 c(4)0.8 c(5)-7.9,5.指定状态向量和方差矩阵的初始条件 缺省时,EViews将自动处置初始条件。对一些平稳模型,其稳定状态条件使我们能够解出0和P0的值。当不能解出初始条件时,EViews将把初始值处理为扩散的,设置0=0,给P0一个任意大的正数乘单位矩阵代表其值的不确定性。可能有0和P0的先验信息,这样,可以使用关键字mprior或vprior创建一个包含适当值的向量或矩阵。向量对象的长度必须与状态空间的维数相匹配。其元素的顺序要与指定窗口中状态向量的顺序相一致。mprior v1 vprior m1,例如,假设有一个2个方程的状态空间模型,要设置状态向量与状态向量方差矩阵的初值如下:,(11.32)首先,创建一个向量对象,命名为a0,输入初始值。再创建一个矩阵对象,命名为P0,输入初始值。然后在编辑状态空间模型指定窗口,可以把下面两行加到状态空间对象中去:mprior a0 vprior p0,二、自动指定状态空间模型 为了帮助创建一个状态空间模型,EViews提供了一个“自动指定”工具栏,可以在对话框中为模型创建一个文本表示。如果模型是具有固定参数、递归参数、及不同的随机系数,或者误差项有一般ARMA结构的标准回归模型,这个工具是非常有用的。在状态空间过程procs中,选择Procs/Define State Space。EViews将打开一个三标签的对话框。第一个标签对话框Basic Regression被用来描述模型的基本回归部分。键入因变量和带有固定或递归系数的回归变量。在建立指定时EViews使用系数对象代表未知参数。在底部,可以指定误差项一个ARMA结构。在这里,我们为上面的例子指定一个说明。,第二个标签对话框Stochastic Regressors被用来加带有随机系数的回归变量。在四个编辑区域中键入合适的回归变量。EViews允许定义具有如下五项组合的回归变量:无系数、固定均值系数、AR(1)系数、随机游动系数、带有漂移的随机游动系数。例4是AR(1)系数的形式。,最后,EViews允许选择状态空间模型的基本方差结构。点击第三个标签对话框Variance Specification,为量测方程或状态方程选择方差矩阵类型:单位矩阵(Identity)、共同对角矩阵(Common Diagonal,对角元素是共同的方差)、一般对角矩阵(Diagonal)、无限制矩阵(Unrestricted)。对话框还允许为量测方程和状态方程选择非零的误差协方差阵。需要强调指出的是,状态空间模型可以不必被对话框提供的选择限制。如果发现自动指定对话框的限制了模型指定,可以简单地使用它建立一个基本的指定,然后利用更一般的文本工具描述模型。,三、估计状态空间模型 一旦已经指定了一个状态空间模型,并且验证模型定义是正确的,打开估计对话框估计模型,点击工具菜单的Esimate按钮或者选择Procs/Estimate。和其他估计对象一样,EViews允许选择估计样本区间,循环的最大次数,收敛值,估计算法,导数计算设置和是否显示初始值。对大部分问题,缺省设置提供一个好的初始设置。,在进行模型估计时要注意下面两点:(1)尽管EViews中卡尔曼滤波程序可以自动处理样本中的缺省值,但EViews要求估计样本必须是连续的,连续的观测值之间不能有缺口。(2)如果模型定义中有未知系数,为用卡尔曼滤波估计状态空间模型,需要指定初值。,在选择方差选项并点击OK以后,EViews在状态空间窗口显示估计结果。,11.3 状态空间模型的视窗和过程 EViews提供了一系列专门的工具用来指定和检验状态空间模型。与其他的估计对象相比较,状态空间对象提供了附加的视窗和过程来检验估计结果,处理推断和指定检验,并且提取结果到其他EViews对象中去。,一、视窗(View)1.模型定义视窗(Specification)状态空间模型是比较复杂的。为了帮助检验模型定义,EViews提供了视窗功能,允许在交互方式下查看模型文本定义,系数和协方差定义。点击View菜单选择Specification,不管状态空间模型是否被估计,下面的指定窗口都可以被使用。,(1)文本窗口 这是一个常见的模型指定的文本视窗。当创建或编辑状态空间模型指定时,可以使用这个窗口。文本窗口也可以通过点击状态空间工具栏的Spec按钮进入。(2)系数描述 状态空间模型指定结构的文本描述。左边的变量 yt 和t 被表示为状态向量和残差项的线性函数。矩阵的元素是相应的系数。例如,例1模型的系数描述视图如下:(3)协方差描述 状态空间模型协方差矩阵的文本描述。例如,例1模型有下面的协方差描述视图。,(4)系数值 用当前参数估计的量测方程和状态方程结构的数字描述。如果系统系数矩阵是时变的,EViews将提示对矩阵估计选择一个日期/观测值。(5)协方差值 用当前参数估计的状态空间模型指定结构的数值描述。如果系统协方差矩阵是时变参数的,EViews将提示对矩阵估计选择日期/观测值。2.估计结果(Estimation Output)还可以点击系统工具条的“Stats”,显示估计结果。3.梯度视窗(Gradients and Derivatives)和其他的估计对象视窗相似,如状态空间包含待估参数,该视窗提供了被估计参数(已估计)的对数似然估计的梯度的简要可视信息或当期参数值。,4.实际值、拟合值和残差(Actual,Predicted,Residual Graph)用图表的方式显示量测方程因变量实际值和一步向前拟合值,和一步向前标准残差。5.估计系数协方差矩阵(Coefficient Covariance Matrix)6.Wald检验(Wald Coefficient Tests)允许做估计系数的假设检验。7.Label 视窗 允许为状态空间对象做注释。注意,除了Label和模型定义(Specification)视窗之外,其余的视窗只有在状态空间模型被正确估计的情况下才可以使用。,8.量测视窗 当点击View/Signal Views,EViews显示一个包含视窗选择的次级菜单。Actual Signal Table和Actual Signal Graph显示量测方程因变量的表和图的形式。如果有多个量测方程,Eviews将按其顺序显示多个序列。在状态空间模型没有被估计的条件下,这两个选项也是可以利用的。,Graph Signal Series,可以打开一个对话框,选择显示结果。对话框允许在下列选项中做出选择:量测变量一步向前预测,相应的一步预测残差,标准化的一步残差,平滑的量测变量,平滑的量测方程扰动项,或标准平滑的量测方程扰动项。加上2倍的标准误差的点线图。STd.Residual Correlation Matrix和Std.Residual Covariance Matrix显示量测方程一步向前预测标准差的相关阵和协方差阵。,9.状态视窗 为了检验不可观测的状态变量,点击 View/State Views 显示状态方程子菜单。EViews允许检验状态变量的初值和终值,或者画状态向量的各种平滑和滤波序列图。在估计前后,视窗中有两个选项是可利用的:Initial State Vector 和 Initial State Covariance Matrix 显示状态向量的初始值0,和协方差阵P0。如果未知参数已被估计,EViews将使用估计值计算初始条件。如果状态空间模型没有被估计,使用当期系数值来估计初始条件。,在EViews正在利用系统矩阵的当前值求解初始条件时,这个信息是特别有意义的。在开始估计有困难的情况下,可以从任意初始参数值出发来估计初始条件。窗口中的其他选项,只对已成功估计的模型有效:Final State Vetor 和 Final State Covariance Matrix,显示状态向量终值T,和协方差矩阵终值 PT,在对参数估计后估计得到。Graph State Series菜单,显示包含状态向量信息选项的对话框。可以画下列变量的线性图:状态向量的一步向前预测 at t-1,经过滤波得到的同期状态向量at,平滑的状态向量估计,平滑的状态扰动项的估计,标准的平滑状态扰动项。在每一线性图中,显示数据被包在其倍的标准差带中。,二、过程(Procs)可以使用EViews过程创建、估计、预测状态空间模型和从指定的状态空间模型生成数据。1.自动指定状态空间模型(Define State Space)激活自动指定对话框。可以在交互的方式下指定状态空间模型。2.估计(Estimate)估计指定模型的参数。上面两项功能在模型估计前后都可以使用。自动指定工具将代替存在的状态空间指定和清除任何结果。估计将替代已存在的结果。,3.预测(Forecasting)如果已经对状态空间模型进行了估计,EViews提供生成数据的其他工具:预测允许利用选择的预测方法和初始化方法,来产生状态变量、量测变量和联合标准误差的预测。(1)选择预测方法 可以在动态预测,平滑预测和n期向前预测三种方法中选择其一。注意,任何在量测方程右边的延迟内生变量都被做为外生变量的看待。,对于 n 步向前预测和动态预测,在预测窗口的开始处,通常利用一步向前预测的状态向量和方差初始化状态向量。对于平滑预测,一般使用状态向量和方差的相应的平滑值进行预测的初始化。对某些情况,预测滤波和平滑可以选择初始值的不同设置。EViews的预测程序提供了可控的初始设置。然而,如果选择了不同的设置,根据可利用信息,预测的解释将发生变化。,(2)预测结果输出 EViews允许在工作文件中以序列形式存储预测输出结果。只须点击输出框,在相应的编辑区域指定序列名。可以指定一列变量名或一个通配符表达式。如果选择列变量名,变量名的数目必须与指定的量测变量的数目相匹配。如果输出序列的名字已经在工作文件中存在,EViews将全部覆盖序列的内容。如果使用一个通配符表达式,EViews将利用通配符表达式在适当的位置替代每一个量测变量的名字。例如,如果有一个具有量测变量y1、y2的模型,选择通配符“*F”存储一步预测的结果,EViews将使用序列名y1F和y2F存贮输出结果。对该功能有两点限制:一是不能使用通配符表达式“*”存储量测变量的结果,因为这将导致对原始量测数据的覆盖。二是当量测方程因变量通过表达式指定,或量测变量出现在多个方程中,不能使用通配符。对于这两点,EViews将不能产生新的序列,只产生错误信息。需要注意的是,如果量测方程的因变量是一个表达式,EViews将只提供表达式的预测,因此,如果量测变量是log(y),EViews将只预测y的对数。,我们分别利用动态预测,平滑预测和1期(n=1)向前预测三种方法在期间1978至2003对CSP进行预测,分别得到预测结果CSP_D、CSP_S、CSP_1。下面是3个预测值和实际值Y画在一起的图形,可以看出动态预测CSP_D和平滑预测CSP_S的结果重合了。1期向前预测CSP_1与实际值接近。,(3)设置初始条件 可以使用状态变量和状态协方差的One-step ahead预测或Smoothed预测估计值做为预测的初始值。这两种初始化方法在使用估计样本的信息数量上是不同的。一步向前预测使用直到预测期开始的信息,平滑预测使用全部估计期的信息。相应地,还可以使用EViews计算初始条件。在预测开始时,EViews将求解Riccati代数方程,获得状态向量和状态向量协方差的初始值。如果不能得到初始状态的解,EViews将使用扩散的初始值。最后,可以选择提供一个向量和包含预测初始值的特征对象。选择User并在编辑区域输入有效的EViews对象名。当计算n步向前预测时,EViews将调整预测期的起始时期,以便使用指定的方法可以得到每一期的初始条件。对于一步向前预测和平滑预测方法,意味着在预测期间最初n-1个观测值被做为估计样本,更早期的观测值被设为NA。对于其他初始化方法,预测样本的终点调整没有被要求。,4产生量测序列(Make Signal Series)EViews允许创建序列保存各种量测变量的计算结果。只需点击菜单就可进入显示结果对话框。可以选择一步向前预测量测变量,一步预测残差,平滑量测变量或量测方程扰动项估计 或。EViews还允许存储这些变量的相应的标准误差(、和 对角线元素的平方根),或一步预测残差和平滑扰动项 和。,选择一步向前预测量测变量,则EViews将在工作文件中用名为CSPF的序列来存储。点击CSP和CSPF,建立组,可以通过画图观察CSP的模拟情况:可以在编辑区通过一列变量或通配符给序列命名,生成一组量测变量序列。当量测方程变量是表达式时,EViews将只输出整个表达式的结果。,5产生状态序列(Make State Series)打开一个对话框保存各种状态变量的计算结果。可以选择存储一步向前预测状态变量估计结果at t 1,滤波状态变量均值at,平滑状态变量,状态变量扰动项,标准化的状态扰动项,或相应的标准误差序列(Pt t 1、Pt、Vt 和 对角线元素的平方根)。,选择存储一步向前预测状态变量估计结果 at t 1,则消费模型中边际消费倾向的变参数 t,即状态变量SP1,用SP1F的名字存储在工作区里。画图如下。可以看到1978年以来按可比价格计算的我国居民边际消费倾向变化很大,在0.453 0.58之间变动,收入每增加100亿元,将有45.358亿元被用于居民消费。Pt 是以1978年为1的年度居民消费价格指数。,简单地选择一种输出类型,在编辑区键入输出序列的文件名。指定输出变量名的规则与Forecast过程描述的相同。注意,在存储状态结果时通配符“*”是允许使用的。这时,EViews使用指定的状态变量名。6产生内生变量组(Make Endogenous Group)生成一个包含量测方程因变量序列的组对象。7产生梯度组(Make Gradient Group)创建一个包含对数似然函数梯度序列的组对象。这些对象被命名为“GRAD01,GRAD02,”。8建立新的状态空间对象(Make Kalman Filter)创建一个包含当期指定形式的新的状态空间对象,其所有的参数被它们的估计值替代。这样,可以“freeze”当前的状态空间做额外的分析。9建立模型(Make Model)创建一个包含状态空间方程的模型对象。10修正系数(Update Coefs from Sspace)将用适当的系数向量替代待估参数。,11.4 状态空间模型的应用实例 例5 经济增长对钢材需求拉动作用的动态分析 本例选用中国钢压延加工业销售收入(steelt)代表钢材市场的需求变量,选择对钢铁工业影响较大的宏观经济变量:基本建设投资(investjt)、房地产开发投资(investft)和出口商品总值(exportt)做解释变量,利用状态空间的变参数模型方法建立了动态的钢材需求模型(协整检验表明钢压延加工业销售收入与基本建设投资、房地产开发投资和出口商品总值之间具有长期的均衡关系):(11.33)其中 t、t、t分别为各个时点上钢压延加工业销售收入对基本建设投资、房地产开发投资和出口商品总值的敏感程度,也称为弹性。下面分别分析近年来基本建设投资、房地产开发投资和出口商品总值对钢材需求的动态影响。,写成状态空间模型形式:param c(1)-1.85 c(2)-4.5 signal log(steelsa)=c(1)+sh1*log(investjsa(-5)+sh2*log(investfsa(-4)+sh3*log(exportsa(-7)+var=exp(c(2)state sh1=sh1(-1)state sh2=sh2(-1)state sh3=sh3(-1)这里未知参数c(1)和 c(2)的初值是通过建立普通回归方程EQ01,用常数项-1.85作为c(1)的初值,求方程残差的方差=h,再求z=log(h)=-4.5,取z为c(2)的初值。在procs中选择产生状态序列(Make State Series),产生状态向量sh1F、sh2F、sh3F,分别为钢材销售收入对基本建设投资、房地产开发投资和出口商品总值的动态弹性 t、t、t。,1.基本建设投资对钢材需求的拉动作用 从图11.3中我们可以看出钢材需求的基本建设投资弹性 t 具有较大的波动性。2000年1月 2000年12月间弹性 t 由0.5下降到0.25左右,2001年上半年在低位上徘徊,但在2001年10月开始出现一个跳跃式的上升,增至0.5以上,在高位保持一年不变后,2003年降至0.4左右。,2.房地产开发投资对钢材需求的拉动作用 从图11.4中我们可以看出钢材需求的房地产开发投资弹性 t 波动性较大,在2001年9月出现了最高值0.54,但是总的趋势是逐渐上升,2002年下半年略有下降,2003年又持续上升到0.3附近。可见,房地产开发投资对国内钢材需求具有一定的拉动作用。,3.出口贸易对钢材需求的拉动作用 钢材需求的出口产品总值弹性 t 的变化,可以看出 t也存在较大的波动性。表明入世之后出口贸易对国内市场的钢材需求的拉动作用明显减小。图中2001年10