使用quantmod和预测包预测数据系列

时间:2014-02-20 07:52:09

标签: r time-series quantmod

我是ts的新手,而xts是对象。

在处理时间序列数据时,我遇到了问题

require(quantmod)
require(forecast)
ticker <- "^GSPC"
getSymbols(ticker, src="yahoo", to = "2013-12-31")
prices <- GSPC[,6]  # First get data using package quantmod
# then forecasting using package forecast
prices.ts <- as.ts(prices)
prices.ets <- ets(prices.ts)
prices.fore <- forecast(prices.ets, h=10)
# then plot
plot(prices.fore, xaxt = "n")

我的问题是:

1。当我试图在csv文件中保存带有日期的GSPC时。我搜索并尝试了这个

write.zoo((GSPC, file = "GSPC.csv", sep = ",", qmethod = "double"))

错误消息:Error: unexpected ',' in "write.zoo((GSPC,",我检查了语法,似乎是正确的,我尝试了其他组合。所有失败的类似错误消息。

我也尝试index(GSPC)来获取日期。

然后cbind(index(GSPC), GSPC[, 6])。它也失败了..

错误讯息:Error in merge.xts(..., all = all, fill = fill, suffixes = suffixes) : dims [product 1762] do not match the length of object [3524]

但是当我检查了长度

> length(GSPC[,6])
[1] 1762
> length(index(GSPC))
[1] 1762

2。情节是这样的

enter image description here

没有x-lab和y-lab。我尝试了here发布的已接受答案的方法。但失败了。

特别是,我没有达到以下代码的目的。它似乎改变了情节的外观,但它根本不会改变外观。我不知道我是否会失去一些积分。

a = seq(as.Date("2011-11-01"), by="weeks", length=11)
axis(1, at = decimal_date(a), labels = format(a, "%Y %b %d"), cex.axis=0.6)
abline(v = decimal_date(a), col='grey', lwd=0.5)

另外,我想从as.Date(“2013-01-01”)绘制。

你能提出一些建议吗?

非常感谢!

1 个答案:

答案 0 :(得分:1)

  1. 您还有其他括号。使用

    write.zoo(GSPC, file = "GSPC.csv", sep = ",", qmethod = "double")

    我不知道您尝试使用indexcbind命令实现了什么目标。 index不提供数据。如果您希望GSPC的第6列只使用GSPC[,6]

  2. 看起来你有一些非标准的绘图尺寸。启动一个新的图形窗口,您将它们重置为默认值。但除非明确指定,否则你不会得到xlab和ylab。而且你不会得到x轴因为你设置了xaxt="n"

  3. 有关最后一个代码块的问题似乎与您的数据无关。