vars软件包,root用户命令,本征(伴随)错误:'x'中的值无限或缺失

时间:2019-05-13 21:22:41

标签: r rstudio

在vars包中有命令根,返回伴随系数矩阵的特征值的向量,用于保持对估计VAR的控制。

想法是要执行VAR命令,结果将以矩阵形式构建。 下面给出的数据是2515个观测值,其中包含16个变量 我们需要以矩阵形式计算16中的每16个,也就是说x1中的变量应分别与所有x2列,-x16列以及每列2515的行一起计算。

library(vars)
Y<-read.csv(file with 2515 rows, 16 columns  containing log returns of 16 stocks) ##on y axis dates , x axis returns of 16 stocks   
t= nrow(Y)
k=ncol(Y)
space = 200 
CV = array(NA, c(k, k, (t-space)))
colnames(CV) = rownames(CV) = colnames(Y)
for (i in 1:dim(CV)[3]) {
    var1= VAR(Y[i:(space+i-1),],p=4)
    if(any(roots(var1))>1){ # controls if the VAR process is stationary
      CV[,,i] = CV[,,(i-1)]
   } else {
     CV[,,i] = gfevd(var1, n.ahead=10)$fevd
   }
   if (i%%500==0) {print(i)}
}

#data example 
zz<- " Date lnSP    lnDIA   FTSE100 lnCAC40 lnDAX   lnHSI   lnNikkei    lnAllord    lnJakart    lnKospi"
02/01/2009  3.790799858 3.671216248 3.516116299 3.817415591 3.461823938 3.895178119 2.876151318 3.253749103 3.902801249 3.660858284
09/01/2009  3.405303312 2.928783445 3.196368852 3.017934782 2.978491109 3.48247213  2.87901523  3.297748625 3.251076307 2.896886583
16/01/2009  3.620242513 2.963050217 3.341393069 3.382346293 3.537484777 3.044329497 3.307504219 2.984349877 3.836898946 3.125885455
23/01/2009  3.816126874 3.233886655 3.701829162 3.38884974  3.108158141 4.073703165 3.546682974 2.769097065 2.929896812 3.45317278
30/01/2009  3.717227529 2.598896733 3.288550933 3.278642868 3.135363151 3.50494835  3.168878701 3.283896025 2.858250642 3.097586617
06/02/2009  3.523039127 3.234439543 3.271355932 3.515623219 3.801590626 3.394926972 3.781144772 2.590880246 2.745201786 3.682265122
13/02/2009  2.976136969 3.166732663 2.882118187 3.186838515 3.004125086 3.525177888 3.06092645  3.029159191 2.81127742  3.273933878

Data <- read.table(text=zz, header = TRUE)

错误可能在roots命令中。 我尝试使用diff()的其他方法来规避静态条件,但是无论如何它都无法运行。 因此,非常感谢极客专家的帮助。 我是堆栈流中的新手,并且如果我犯了一些错误,则通常是在编程中->对不起,否则返回(计算):D BR 萨多

0 个答案:

没有答案