根据来自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之间的相关性。
答案 0 :(得分: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
为了生成您正在寻找的相关矩阵,您需要比较两个不同的时间序列,而不是将一次性序列与自身进行比较。例如,您可以将道琼斯工业平均指数与一段时间内的欧元/美元汇率进行比较。