将有些困难的状态空间模型转换为R(MARSS / DLM)

问题描述 投票:1回答:1

我目前正在尝试获得与论文“ Seasonal Changes in Central England Temperatures - Proietti & Hillebrand (2015)”相同的估算结果

在此模型中,他们定义了我已使用following state space model重写的"standard" state space equations from Koopman & Durbin (2012). The blue variables are the ones that need to be estimated, the expected results are reported in the first paper (page 14).

了解模型的非常小的摘要:y_t是每月包含数据的1xT向量,X_t是12x1“选择”向量,因此y_t允许每月使用不同的参数值。

[我尝试先估计模型,而忽略了最初会产生一些错误的X_t矩阵...例如,不允许Q中的第一个元素为零,这在我看来很奇怪。没有创新,因此创新向量没有方差,对吗?同样,即使进行了1,000次迭代,收敛仍然没有达到。我想明天早上我将尝试进行10,000次迭代,也许会有所帮助。

但是,令我难过的主要是如何在此状态空间模型中允许X_t。这又会将模型更改为60个参数(因为每个参数都是12x1向量)。任何帮助将是可爱的:)

library(KFAS)

yTOT = yTOT[yTOT$YR > 1771,]
yTOT = yTOT[yTOT$YR < 2014,]

y = t(as.matrix(yTOT$VAL))

B = matrix(list(0,"b1",0,0,1,0,0,0,"b2"),3,3, byrow=TRUE)
U = matrix(list("u1",0,0),3,1)                           
C = 0
c = 0
G = matrix(list(1,0,0, 0,1,0, 0,0,1),3,3, byrow=TRUE)
w = matrix(list(0,"w1","w2"),3,1)
Z = matrix(c(1,0,1),1,3)                                  
A = matrix(0, 1,1)                                        
D = 0
d = 0
H = 0
v = 0
R = matrix(0, 1,1)                                        
Q = matrix(list(1,0,0, 0,1,0, 0,0,"q1"),3,3, byrow=TRUE) 
x0 = matrix(0, 3,1)
V0 = matrix(0, 3,3)

model.gen=list(Z=Z,A=A,R=R,B=B,U=U,Q=Q,x0=x0,V0=V0,tinitx=0)
kemfit = MARSS(y, model=model.gen, control=list(maxit=1000))
r time-series kalman-filter state-space
1个回答
0
投票
我不确定我是否理解您的问题并且无法打开您发送的图像,但有几点评论:

“他不允许Q中的第一个元素为零,在我看来这很奇怪。\ mu没有创新,因此创新矢量没有方差。”我相信在涉及状态方程式时,您必须有一个方差项,因此不允许为零。

“如何在此状态空间模型中允许X_t”您必须构建一个矩阵数组,其中每个矩阵都对应一个观测值。快速指南显示了如何构建它的示例。

© www.soinside.com 2019 - 2024. All rights reserved.