dlmMLE结果失败

时间:2016-01-02 15:50:27

标签: r time bayesian mle

我正在尝试使用一些时间序列数据估计本地级别dlm的参数。这是我正在使用的代码,似乎" work",在某种意义上它不会抛出任何警告/错误:

buildSu<- function(x) {
  Vsd<-(x[1:10])
  Vcorr<-(x[11:55])
  V<-Vsd %o% Vsd
  V[1,2] <- V[2,1] <- V[1,2] * Vcorr[1]
  V[1,3] <- V[3,1] <- V[1,3] * Vcorr[2]
  V[1,4] <- V[4,1] <- V[1,4] * Vcorr[3]
  V[1,5] <- V[5,1] <- V[1,5] * Vcorr[4]
  V[1,6] <- V[6,1] <- V[1,6] * Vcorr[5]
  V[1,7] <- V[7,1] <- V[1,7] * Vcorr[6]
  V[1,8] <- V[8,1] <- V[1,8] * Vcorr[7]
  V[1,9] <- V[9,1] <- V[1,9] * Vcorr[8]
 [...]


  Wsd<-(x[56:65])
  Wcorr<-(x[66:110])
  W<-Wsd %o% Wsd
  W[1,2] <- W[2,1] <- W[1,2] * Wcorr[1]
  W[1,3] <- W[3,1] <- W[1,3] * Wcorr[2]
  W[1,4] <- W[4,1] <- W[1,4] * Wcorr[3]
  W[1,5] <- W[5,1] <- W[1,5] * Wcorr[4]
  W[1,6] <- W[6,1] <- W[1,6] * Wcorr[5]
  W[1,7] <- W[7,1] <- W[1,7] * Wcorr[6]
  W[1,8] <- W[8,1] <- W[1,8] * Wcorr[7]
  W[1,9] <- W[9,1] <- W[1,9] * Wcorr[8]
  W[1,10] <- W[10,1] <- W[1,10] * Wcorr[9]
  W[2,3] <- W[3,2] <- W[2,3] * Wcorr[10]
  [...]

  return(list(
    m0=rep(0,10),
    C0=1000 * diag(10),
    FF= diag(10),
    GG=diag(10),
    V=V,
    W=W))
} 

suMLE<-dlmMLE(y=x1, parm=rep(0,110), build=buildSu)

我面临的问题是V和W的结果总是两个10x10矩阵,用0&#39; s填充。我不明白为什么,因为数据是按时间序列制作的,彼此之间应该至少有一点相关性。我是否遗漏了模型规范中的内容(mo,C0,FF,GG)?

非常感谢任何帮助。 非常感谢, 弗朗西斯

0 个答案:

没有答案