2
我有两个索引的时间序列,每行代表同一天的收盘价格。我想去第30行,回顾过去30天的时间并计算皮尔森相关性。然后将该值存储在一个新的向量中。然后,重复整个时间序列的计算。HT在数据框架中创建一个新的矢量,并采用现有矢量的相关性
这是Excel中的一项微不足道的任务,所以我相信它可以在R中完成。我不知道要使用的方法。
我有两个索引的时间序列,每行代表同一天的收盘价格。我想去第30行,回顾过去30天的时间并计算皮尔森相关性。然后将该值存储在一个新的向量中。然后,重复整个时间序列的计算。HT在数据框架中创建一个新的矢量,并采用现有矢量的相关性
这是Excel中的一项微不足道的任务,所以我相信它可以在R中完成。我不知道要使用的方法。
有很多方法可以做到这一点(与R中的所有内容一样)。我总是建议在处理时间序列数据时使用时间序列。
的zoo
包可能是最流行的时间序列包(虽然你也可以看看其他如XTS,时间序列,它,FTS):
library(zoo)
z <- zoo(data.frame(a=1:50, b=3:52), as.Date(1:50))
rollapply(z, 30, cor, by.column=F, align = "right")
你也可以找到在该chart.RollingCorrelation
功能PerformanceAnalytics
包有用。
感谢您的快速响应。你让我朝着正确的方向前进。通过帮助文件混淆以获得最终解决方案。 – Milktrader 2010-03-18 02:15:00
我从动物园获得了rollapply方法。检查它与我从Excel获得的结果相匹配。 我做了不同的一件事是用read.zoo方法读入文件,并从头开始敲掉动物园对象问题。 要设置的重要参数是by.column = F。我一开始并没有把它扔进垃圾。 – Milktrader 2010-03-18 02:46:39
是的。我在我的例子中设定了这个理由。 by.column = F意味着它不会单独对每列进行滚动应用,而是一次全部将其全部传递。还要确保你使用align =“right”。 – Shane 2010-03-18 03:16:00