Я пытаюсь запустить модель DCC Garch для 4 переменных, но сталкиваюсь с проблемой при запуске последней строки моего кода, соответствующей модели.
Таким образом, я ищу решение этой проблемы, что-то не так в моем коде? Это мой набор данных? Я совсем новичок в R и вроде бы борюсь с этим.
Я видел похожий пост, но данный ответ не просветил меня, поэтому я публикую свой собственный пример
Вот мой код с проблеском моих данных:
library(xts)
library(quantmod)
library(rmgarch)
library(rugarch)
MV<-read.csv(file = "Book17.csv", header = TRUE, sep = ";",dec = ".",stringsAsFactors = F)
head(MV)
MV$Dates<-strptime(x=as.character(MV$Dates),format = "%d/%m/%Y %H:%M")
library(xts)
MV1<-xts(MV[-1], order.by=MV$Dates)
head(MV1)
sapply(MV1, mode)
sapply(MV1, class)
str(MV1)
MV1$BTC_returns=diff(log(MV1$BTC))
MV1$XBTV8_returns=diff(log(MV1$XBTV8))
MV1$XBTX8_returns=diff(log(MV1$XBTX8))
MV1$BTCV8_returns=diff(log(MV1$BTCV8))
head(MV1)
MV2 <- data.frame(MV1$BTC_returns, MV1$XBTV8_returns, MV1$XBTX8_returns, MV1$BTCV8_returns)
head(MV2)
BTC_returns XBTV8_returns XBTX8_returns BTCV8_returns
2018-09-04 07:30:00 -0.000262 -0.000262 -0.000262 -0.000262
2018-09-04 08:00:00 0.001732 0.001732 0.001732 0.001732
2018-09-04 08:30:00 0.001180 0.001180 0.001180 0.001180
2018-09-04 09:00:00 0.000442 0.000442 0.000442 0.000442
2018-09-04 09:30:00 0.003010 0.003010 0.003010 0.003010
2018-09-04 10:00:00 -0.002305 -0.002305 -0.002305 -0.002305
m = ncol(MV2)
uspec.n = multispec(replicate(m, ugarchspec(mean.model = list(armaOrder = c(1,0)))))
multf = multifit(uspec.n, MV2)
spec1 = dccspec(uspec = uspec.n, dccOrder = c(1, 1), distribution = 'mvnorm')
MV_fit = dccfit(spec1, data = MV2, fit.control = list(eval.se = TRUE), fit = multf)
Запустив эту последнюю строку, я получу следующее сообщение об ошибке:
MV_fit = dccfit(spec1, data = MV2, fit.control = list(eval.se = TRUE), fit = multf)
error: matrix multiplication: problem with matrix inverse; suggest to use solve() instead