【发布时间】:2016-06-02 05:12:26
【问题描述】:
假设我有一些时间序列如下,我想预测c1 领先一步,这样做在 R 中非常简单且容易:
testurl = "https://docs.google.com/spreadsheets/d/1jtpQaSxNY1V3b-Xfa5OJKDCLE6pNlzTbwhSHByei4EA/pub?gid=0&single=true&output=csv"
test = getURL(testurl)
mydata = read.csv(textConnection(test), header = TRUE)
data <- ts(mydata['c1'])
fit <- auto.arima(data)
fcast <- forecast(fit)
fcast
请注意,这些数字只是随机数,auto.arima 建议我们使用arima(0,1,0),预测领先一步为 52。
但是,如果想使用c2 和c3 来改进(例如就 aic 和 bic 而言)样本外预测怎么办?那么一个人实际上将如何继续呢?
c1 c2 c3
40 0,012 1
41 0,015 1
42 0,025 1
40 −0,015 1
44 0,000 0
50 0,015 0
52 0,015 1
51 0,020 1
50 0,025 1
52 0,030 0
53 0,045 1
52 0,030 1
52 0,025 0
52 0,000 0
51 0,010 0
50 −0,02 1
48 −0,025 1
49 −0,030 1
51 −0,040 1
52 −0,350 0
【问题讨论】:
-
您可以使用参数
xreg添加额外的列。但是您需要为预测提供示例回归量auto.arima(data, xreg=as.matrix(mydata[-1])) -
感谢您的评论,示例回归量将是 c2 领先一步的值?如果是这样,c2 也必须被预测或预测?假设这可能是统计部分中更好的主题..
-
是的。如果您为
c2提供了一个值,为c3提供了一个值。您可以将该矩阵添加到预测中。请记住,您不是在预测所有三列,而是根据时间和c2和c3预测c1。 time 变量是固有提供的,其他变量必须由您提供。 -
谢谢,我可能在这里缺乏一些理论,
c2和c3的值应该由我提供,但不是选择c2的最佳方式和c3实际上分别预测它们并选择该值? -
你可以这样做。获得
ts(c2)的估计值,c3的估计值相同。我以前用过。
标签: r time-series forecasting