【发布时间】:2016-02-26 21:03:44
【问题描述】:
循环计算并存储 auto.arima() 和 forecast() 在 Dataframe 中的结果
可以使用以下内容生成我的带有随机数据的数据帧的小样本
df <- data.frame(col1 = runif(24, 400, 700),
col2 = runif(24, 350, 600),
col3 = runif(24, 600, 940),
col4 = runif(24, 2000, 2600),
col5 = runif(24, 950, 1200))
colnames(df) <- c("NorthHampton to EastHartford", "NorthHampton to Edison",
"NorthHampton to Yonkers", "North Hampton to Brooklyn", "NorthHampton to Rotterdam" )
我正在尝试在 R 中使用 auto.arima() 运行一系列 ARIMA 模型,并且难以以所需格式生成我的输出。下面是我开始的示例部分。
ts <- ts(df, frequency = 12, start = c(2014, 1), end = c(2015, 12))
model <- list()
results <- list()
for (i in 1:ncol(ts)) {
fit <- auto.arima(ts[,i], stepwise = F, approximation = F)
model <- forecast(fit)$method
results <- forecast(fit, h = 3)$mean
# print(forecast(fit)$method)
# print(forecast(fit, h=3)$mean)
}
理想情况下,我希望我的循环填充data.frame,其格式如下:
Lane Model Time PointEstimate
Northampton to East Hartford "ARIMA(0,0,0) with non-zero mean" Jan-16
Northampton to East Hartford "ARIMA(0,0,0) with non-zero mean" Feb-16
Northampton to East Hartford "ARIMA(0,0,0) with non-zero mean" Mar-16
Northampton to Edison "ARIMA(0,0,0) with non-zero mean" Jan-16
Northampton to Edison "ARIMA(0,0,0) with non-zero mean" Feb-16
Northampton to Edison "ARIMA(0,0,0) with non-zero mean" Mar-16
Northampton to Yonkers "ARIMA(0,0,0) with non-zero mean" Jan-16
列 Lane 的结果应与原始数据框中的列名相同。 Model 的结果是来自 forecast(fit)$method 的结果,而 Point Estimate 应该是 forecast(fit, h = 3)$mean 的结果,在这种情况下,每个项目在 dataframe h times (3) 中重复。
我认为我的循环正在执行我需要的计算我只是不知道如何存储结果,然后将结果附加到循环结束的下一次迭代。感谢您在这方面获得的任何帮助。
【问题讨论】:
标签: r for-loop dataframe forecasting