【发布时间】:2014-07-04 15:41:28
【问题描述】:
我有两个时间过程。我想看看是否可以使用一个时间过程 (X_{t,2}) 来更好地预测另一个过程 (X_{t,1})。我有多个来源提供关于 X_{t,2} 的时间数据(例如 3 个测量 X_{t,2} 的时间序列)。所有时间序列都需要季节性成分。
我发现 MARSS 的符号很自然地适合这种类型的模型,代码如下所示:
Z=factor(c("R","S","S","S")) # observation matrix
B=matrix(list(1,0,"beta",1),2,2) #evolution matrix
A="zero" #demeaned
R=matrix(list(0),4,4); diag(R)=c("r","s","s","s")
Q="diagonal and unequal"
U="zero"
period = 12
per.1st = 1 # Now create factors for seasons
c.in = diag(period)
for(i in 2:(ceiling(TT/period))) {c.in = cbind(c.in,diag(period))}
c.in = c.in[,(1:TT)+(per.1st-1)]
rownames(c.in) = month.abb
C = "unconstrained" #2 x 12 matrix
dlmfit = MARSS(data, model=list(Z=Z,B=B,Q=Q,C=C, c=c.in,R=R,A=A,U=U))
我得到一个 beta 估计值,暗示第二个时间过程在预测第一个过程时很有用,但令我沮丧的是,当我使用 MARSSsimulate 进行预测时,MARSS 给了我一个错误,因为其中一个矩阵(与季节性有关)是时间 -变化无常。
任何人,知道解决这个 MARSS 包问题的方法吗?如果没有,关于使用 dlm 包拟合类似模型的任何提示?
【问题讨论】:
标签: r