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