首页 文章

估计R中的相关矩阵与时间序列?

提问于
浏览
0

我根据R的数据集得到了从1710年到1980年的太阳黑子数量的时间序列 .

我试图估计"y"值的相关矩阵 . 我尝试使用timeSeries包中的cor( . )函数(https://cran.r-project.org/web/packages/timeSeries/timeSeries.pdf)(第64页) . 但它不起作用 .

让“yp”成为我从1710年到1980年的观测向量(时间序列对象) . 我的代码是:

CorrelationMatrice=cor(yp,y=NULL,use = "all.obs", method = c("pearson"))

感谢您阅读这篇文章 .

错误的形式如下:

Error in cor(yp, y = NULL, use = "all.obs", method = c("pearson")) : 
  give 'x' and 'y' or 'x' as a matrix

我想我的相关矩阵给出了来自yp的每对观察结果ci和cj之间的相关性 .

1 回答

  • 1

    您收到错误的原因是您提供的时间序列示例(yp)是向量 . 如果仔细查看timeSeries包的文档,您将看到使用的示例时间序列是矩阵而不是向量,这就是您收到以下错误消息的原因

    Error in cor(yp, y = NULL, use = "all.obs", method = c("pearson")) : give 'x' and 'y' or 'x' as a matrix
    

    如果使用矩阵表示yp而不是向量,则不会出现错误 . 例:

    my_ts <- <- as.data.frame(timeSeries(matrix(rnorm(24), 12), timeCalendar()))
    
    cor(my_ts, y = NULL, use = "all.obs", method = c("pearson"))
    
               TS.1       TS.2
    TS.1 1.00000000 0.02275777
    TS.2 0.02275777 1.00000000
    

    您可以尝试使用向量同时使用X和Y cor(yp, y = yp, use = "all.obs", method = c("pearson")) 并获得一个271x271的相关矩阵,但是没有太多意义,因为您会得到1的相关性 .

    cor(yp, y = yp, use = "all.obs", method = c("pearson"))
    [1] 1
    

    为了生成您正在寻找的相关矩阵,您需要比较两个不同的时间序列,而不是将一次性序列与自身进行比较 . 例如,您可以将道琼斯工业平均指数与一段时间内的欧元/美元汇率进行比较 .

相关问题