簡體   English   中英

用時間序列估計R中的相關矩陣?

[英]Estimating correlation matrix in R with time series?

我有一個基於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之間的相關性。

收到錯誤的原因是,您提供的時間序列示例(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"))使用向量cor(yp, y = yp, use = "all.obs", method = c("pearson"))並得到一個271x271的相關矩陣,但是不會一點,因為您將獲得1的相關性。

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

為了生成所需的相關矩陣,您需要比較兩個不同的時間序列,而不是將一個時間序列與其自身進行比較。 例如,您可以將一段時間內的道瓊斯工業平均水平與歐元/美元匯率進行比較。

暫無
暫無

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

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