[英]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.