Создание регрессии DLM в R: код ошибки для оценки коэффициента MLE (код ошибки 2 из подпрограммы Лапака dgesdd) - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь реализовать модель регрессии DLM в форме: $ y_t = α_t + β_ {1, t} \ x_ {1, t} + β_ {2, t} \ x_ {2, t} + v_t, \ with \ v_t ∼ N (0, σ ^ 2) $
Я использовал пример CAPM из Petris et. и др. (2009) и добавил вторую пояснительную переменную. Однако, когда я пытаюсь использовать следующий код, я получаю сообщение об ошибке для оценки параметра:
Ошибка в dlmLL (y = y, mod = mod, debug = debug): код ошибки 2 из подпрограммы Лапака dgesdd

# dlm.ts: timeseries with 4 columns and 6000 rows
# dlm.ts[,2] = dependent variable, dlm.ts[,3:4] = independent variable 
> mod <- dlmModReg(dlm.ts[,3:4], dV = 0.001845, m0 = c(0,0,0), C0 = diag(c(1e+07, 1,1)))
> outF <- dlmFilter(dlm.ts[,2], mod)
> outF$m[length(dlm.ts[,2]), ]
[1]  0.050363450 -0.001967828 -0.001741600

> buildmodel <- function(u) {
  dlmModReg(dlm.ts[,3:4], dV = exp(u[1]), dW = exp(u[2:4]))}
> outMLE <- dlmMLE(dlm.ts[,2], parm = rep(0,4), buildmodel)
**Error in dlmLL(y = y, mod = mod, debug = debug) : 
  error code 2 from Lapack routine dgesdd**
> mod<-buildCapm(outMLE$par)
> outS<- dlmSmooth(dlm.ts[,2], mod)

Пока что я не смог найти много информации об этом коде ошибки. Может кто-нибудь помочь мне с решением?

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...