簡體   English   中英

帶有DLM包的VAR(1)最大似然估計

[英]VAR(1) with DLM package Maximum Likelihood estimation

我正在嘗試以DLM形式編寫VAR(1),並且正在使用以下代碼:

y是200x3的矩陣

build <- function(u) {dlm(m0=c(y[1,]),
C0=1*diag(3),
FF=diag(3),V=diag(c(1e-3,1e-3,1e-3)), 
GG= matrix(c(u[1:9]), ncol=3), 
W=matrix(c (exp(u[10]),u[11],u[12],u[11], exp(u[13]),u[14],u[12],u[14], exp(u[15]) ),ncol=3))}

init <- rep(0,15)
outMLE <- dlmMLE(y,init, build)

R無法計算dlmMLE並報告:“ W不是有效的方差矩陣”。

我將不勝感激任何建議,謝謝。

我偶然發現了您的問題,並且沒有對代碼進行過巧妙的解析...如果我錯過了要點,請原諒我...

但是僅查看您的方差矩陣的構造,就可能沒有適當地限制它。 例如,以下內容符合您的W構造,但不能用作cov矩陣:matrix(c(1,2,2,2,1,2,2,2,2,1),3,3)。 (嘗試計算相關矩陣!)一種更標准的方法是通過Cholesky分解對協方差矩陣進行參數化。 對於任何6個參數,例如a1-a6,讓

W_ = matrix(c(a1,a2,a3,0,a4,a5,0,0,a6),3,3)#任意下三角矩陣,則... W = W_%*%t(W_)

也許有幫助。

畫了

此處存在相同的問題:“不是有效的方差矩陣”。 上面提供的解決方案,即作為一個任意的下三角書寫解決了我的問題。 例如:

M = matrix(c(exp(x[(m+1)]),x[(m+4)],x[(m+5)],0,exp(x[(m+2)]),x[(m+6)],0,0,exp(x[(m+3)])),3,3)
W(model) = M %*% t(M)

我無法重現您的問題。 這就是我得到的。 最好,英尺

> library(dlm)
> set.seed(12345)
> p <- 3
> y <- matrix(rnorm(600),ncol=3)
> build <- function(u) {dlm(m0=c(y[1,]),
+ C0=1*diag(3),
+ FF=diag(3),V=diag(c(1e-3,1e-3,1e-3)),
+ GG= matrix(c(u[1:9]), ncol=3),
+ W=matrix(c (exp(u[10]),u[11],u[12],u[11], exp(u[13]),u[14],u[12],u[14], exp(u[15]) ),ncol=3))}
> init <- rep(0,15)
> outMLE <- dlmMLE(y,init, build)
> outMLE
$par
 [1]  0.009390099  0.012975013  0.016513477 -0.086087006 -0.034091979
 [6]  0.005505462  0.022439820 -0.042064248  0.111033064  0.134691617
[11]  0.048333708  0.055505701 -0.086836031  0.069454628 -0.035391634

$value
[1] 300.5475

$counts
function gradient 
      10       10 

$convergence
[1] 0

$message
[1] "CONVERGENCE: REL_REDUCTION_OF_F <= FACTR*EPSMCH"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM