永发信息网

如何在不同模型下设定状态滤波初值

答案:2  悬赏:50  手机版
解决时间 2021-04-05 19:13
  • 提问者网友:wodetian
  • 2021-04-05 12:14
如何在不同模型下设定状态滤波初值
最佳答案
  • 五星知识达人网友:想偏头吻你
  • 2021-04-05 12:49
Parameter Starting Values
Unless otherwise instructed, EViews will initialize all parameters to the current values in the
corresponding coefficient vector or vectors. As in the system object, you may override this
default behavior by specifying explicitly the desired values of the parameters using a PARAM
or @PARAM statement. For additional details, see “Starting Values” on page 315.
这是eviews 6 user guide Ⅱ page 393 的一段,我理解是就算不设初始值,eviews会按一定的模式计算。我找到高铁梅的蓝书的工作文件(网上有下载),把所有初始值设定都删了,基本上结果是不变的。

当然初始值得设定, 有详细的介绍,感觉还是靠谱的。
转述一下:在网上看到好多同学说遇到在做卡尔曼滤波时候的一些关于状态方程参数如何确定的问题,这也是我最近遇到的问题。我这两天刚好在写一篇关于货币错配方面的论文,然后想把这个状态空间模型运用到研究中。我是eviews的初学者,这也是第一次建模型。不过按参数Z检验等一些数据来说,模型建立还是蛮成功的。所以我想把模型建立的方法在坛上说说,希望达人能够给予我一些批评和建议,也给想建模型的童鞋一点点启发。
首先来说,要建立状态空间模型。一个量测方程,一个状态方程。由于我有三个自变量,假设模型为
@signal lnaecm=c(1)+sv1*lnfer+sv2*lne+sv3*ex+[var=exp(c(2))] c(1)和c(2)的确定要用ls回归的数据确定 c(1)就是ls的截距项,c(2)就是 log(残差平方和/数据的个数)
接下来看状态方程 @state sv1=c(3)+c(4)*sv1(-1)+[var=exp(c(5))]
@state sv2=c(7)+c(8)*sv2(-1)+[var=exp(c(9))]
@state sv3=c(10)+c(11)*sv3(-1)+[var=exp(c(12))]
三个状态方程的系数确定其实都是类似的,我只对第一个来说。网上说这个系数是经验确定的,确实是这样,不过经验也应该有个方法。看了好多的书,发现高铁梅老师的书里确定的方法还是很管用的。她在一篇文章关于钢材的文章中直接定义@state sv1=sv1(-1),我说不上来理由,不过在我建立的模型中,sv1的AR(1)模型中的系数确实都非常的接近于1,也许可以直接这么建立吧。
不过我使用的方法是先给c(3) c(4) c(5) 赋值:c(3)=0.005 c(4)=0.9 c(5)= -9。用这三个数值建立回归@state sv1=0.005+0.9*sv1(-1)+[var=exp(-9)],这个状态方程,我们可以导出sv1的预测值。就是从proc中的make state series中导出。然后再将导出的sv1f序列建立AR(1)的方程。sv1f=c(13)+c(14)*sv1f(-1)+[var=exp(c(15))],观察各个数据的t检验值,来判断c13-15的值,再将如此得出的数值,重新赋值到原状态方程的c3-5中。”
全部回答
  • 1楼网友:纵马山川剑自提
  • 2021-04-05 14:04
状态转移方程(我习惯上叫它状态空间)是一个实际被测对象的数学模型。这是进行卡尔曼滤波的前提条件。(插一句,对于传统的卡尔曼滤波,这个状态空间必须是线性的,对于非线性系统请参看sigma-point kalmanfilter)卡尔曼滤波简单的说就是通过...
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯