首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中对财务数据xts对象进行简单的滚动线性回归?

如何在R中对财务数据xts对象进行简单的滚动线性回归?
EN

Stack Overflow用户
提问于 2013-07-21 14:17:57
回答 2查看 5.8K关注 0票数 5

使用30分钟的数据,我已经在网上放了一个样本。它是ES和NQ的2个合约之间的价差的名义美元价值(ES-2*NQ)。示例很小,但应该足够长,如果您愿意,可以直接在演示中使用。R代码来获取并使用它,就像我正在尝试的那样:

代码语言:javascript
复制
demo.xts <- as.xts(read.zoo('http://dl.dropboxusercontent.com/u/31394273/demo.csv', sep=',', tz = '', header = TRUE, format = '%Y-%m-%d %H:%M:%S'))

head(demo.xts):

代码语言:javascript
复制
                        [,1]
2013-05-27 00:00:00 -37295.0
2013-05-27 00:30:00 -37292.5
2013-05-27 01:00:00 -37300.0
2013-05-27 01:30:00 -37280.0
2013-05-27 02:00:00 -37190.0
2013-05-27 02:30:00 -37245.0

我主要追求的是滚动窗口回归(或linear regression curve,正如我的交易平台所称)-保存它,然后绘制它。而且,我认为在此之前,我应该能够在指定的时间段内绘制单个简单的回归。在窗口回归之后,我会添加标准差“带”,但我认为我可以在稍后使用TTR的"runSD“对滚动回归进行计算。我想要的东西的样本:

我认为这个-- Rolling regression xts object in R --给了我最接近我想要的东西。它似乎适用于我的数据,但我不知道如何将产生的“系数”转换为我想要使用的名义美元价值图中的直线或曲线。

引用任何包(如TTR)都很好;我很乐意加载任何能让这件事变得更简单或容易的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-21 19:01:34

可以使用predict计算回归线上的点,使用tail提取最近的点。

代码语言:javascript
复制
# Sample data
library(quantmod)
getSymbols("^GSPC", from="2009-01-01")

# Rolling regression (unweighted), with prediction intervals
x <- rollapplyr( 
  as.zoo(Ad(GSPC)), 
  width=300, by.column = FALSE, 
  FUN = function(x) {
    r <- lm( x ~ index(x) )
    tail(predict(r, interval="prediction"),1)
  } 
)

# Plots
plot( index(GSPC), Ad(GSPC), type="l", lwd=3, las=1 )
lines( index(x), x$fit, col="purple", lwd=3 )
lines( index(x), x$lwr, col="purple", lwd=3, lty=3 )
lines( index(x), x$upr, col="purple", lwd=3, lty=3 )
abline( lm( Ad(GSPC) ~ index(GSPC) ), col="light blue", lwd=3 )  

票数 8
EN

Stack Overflow用户

发布于 2013-07-21 19:46:59

我最近在TTR中添加了一个rollSFM (滚动单因素模型)函数。下面是一个运行24周期滚动回归的例子:

代码语言:javascript
复制
reg <- rollSFM(demo.xts, .index(demo.xts), 24)
rma <- reg$alpha + reg$beta*.index(demo.xts)
chart_Series(demo.xts, TA="add_TA(rma,on=1)")

基本的想法是按时退回你的价格。.index返回demo.xts的时间索引的数字表示形式(即自纪元以来的秒数),因此第二个参数是时间。平方包含每个时间点的线性回归拟合值( reg对象还包含R平方)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17769646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档