簡體   English   中英

DCC GARCH模型-R中的矩陣誤差

[英]DCC GARCH model- matrix error in R

我有一個適合DCC GARCH模型的模型,適用於2010-2017年期間70多家金融機構的每日股票收益。我正在嘗試建立機構之間的相互關聯。 但是,下面的代碼給我一個錯誤。 問題是我不知道此錯誤的來源。

下面是我的代碼:

rm(list = ls())
options(error=recover)
library(rmgarch)
library(xts)
library(foreign)

dat=read.csv("equity_returns2_2010-17_updated.csv", stringsAsFactors = FALSE)
tickers = unique(dat[,2])
R = do.call(cbind, lapply(1:length(tickers), function(i){
  tmp = dat[which(dat[,2]==tickers[i]),c(1,3)]
  tmp = xts(as.numeric(tmp[,2]), as.Date(strptime(tmp[,1],"%Y%m%d")))
  colnames(tmp)=tickers[i]
  return(tmp)
}))

head(R)
exc=sapply(1:ncol(R), function(i) length(which(is.na(R[,i]))))
exc=which(exc>1)
if(length(exc)>0) R = R[,-exc]
head(R)
which(is.na(R), arr.ind = TRUE)
R = na.omit(R)

m = ncol(R)
spec=ugarchspec(mean.model=list(armaOrder=c(1,0)),variance.model=list(garchOrder=c(1,1),model="gjrGARCH", variance.targeting=TRUE))
spec = multispec(replicate(m, spec))

mspec=dccspec(uspec = spec)
fit = dccfit(mspec, dat=R, solver=c("solnp","solnp"), solver.control=list(trace=1))

直到“適合”為止,它的效果都很好。 一旦我跑步fit它會出現以下錯誤:

.
.
.
.
Iter: 1 fn: 2654.2613    Pars:  36.63415  0.97195  0.10379  0.93518 -0.08157
Iter: 2 fn: 2654.2613    Pars:  36.63417  0.97195  0.10379  0.93518 -0.08157
solnp--> Completed in 2 iterations

Iter: 1 fn: 2654.2613    Pars:  36.63415  0.97195  0.10379  0.93518 -0.08157
Iter: 2 fn: 2654.2613    Pars:  36.63417  0.97195  0.10379  0.93518 -0.08157
solnp--> Completed in 2 iterations

error: matrix multiplication: inverse of singular matrix; suggest to use solve() instead

關於如何解決問題的任何想法? 提前致謝。

我看不到您的代碼有任何問題。 我認為您不應該使用代碼,而是要研究數據以查看問題所在。 您是否將此代碼與其他任何數據集一起運行?

暫無
暫無

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

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