我正在研究使用ARIMA进行预测的数据集,而且我已经接近最后一步了,但是我收到了错误,无法找到参考来找出我所缺少的内容。
执行以下命令时,我不断收到错误消息:
class BoxComponent extends React.Component {
render() {
const {onClick} = this.props;
return (
<div className="box" onClick={onClick}>
</div>
);
}
}
我将简要介绍一下我所做的工作,我将数据集从数据框更改为时间序列,并进行所有测试以检查波动性,并检测数据是否静止。
然后我将DataAsStationary作为良好的干净数据来应用ARIMA,但由于我想在列车数据上训练模型并在数据的其他部分进行测试,我将数据集分成70%的训练并测试30%:
ForcastData<-forecast(fitModel,testData)
Error in rep(1, n.ahead) : invalid 'times' argument
我使用自动选择算法,发现Arima(2,0,3)是最好的。
ind <-sample(2, nrow(DataAsStationary), replace = TRUE, prob = c(0.7,0.3))
traingData<- DataStationary1[ind==1,]
testData<- DataStationary1[ind==2,]
我必须提到我确实检查了残差是否与不相关(白噪声)并处理它。
autoARIMAFastTrain1<- auto.arima(traingData, trace= TRUE, ic ="aicc", approximation = FALSE, stepwise = FALSE)
之后我使用训练数据集来拟合模型:
library(tseries)
library(astsa)
library(forecast)
无法找到有关错误的任何资源:
rep(1,n.ahead)中的错误:无效的'times'参数
任何建议!!真
我试过
fitModel <- Arima(traingData, order=c(2,0,3))
fitted(fitModel)
ForcastData<-forecast(fitModel,testData)
output <- cbind(testData, ForcastData)
accuracy(testData, ForcastData)
plot(outp)
但我收到错误
forecast.Arima未找到!
知道我为什么会收到错误吗?
答案 0 :(得分:2)
您需要以不同的方式指定forecast()
的参数;由于您没有发布示例数据,我将使用gold
包中的forecast
数据集进行演示:
library(forecast)
data(gold)
trainingData <- gold[1:554]
testData <- gold[555:1108]
fitModel <- Arima(trainingData, order=c(2, 0, 3))
ForcastData <- forecast(fitModel, testData)
# Error in rep(1, n.ahead) : invalid 'times' argument
ForcastData <- forecast(object=testData, model=fitModel) # no error
accuracy(f=ForcastData) # you only need to give ForcastData; see help(accuracy)
ME RMSE MAE MPE MAPE MASE
Training set 0.4751156 6.951257 3.286692 0.09488746 0.7316996 1.000819
ACF1
Training set -0.2386402
您可能希望花一些时间使用forecast
package documentation来查看各种函数的参数是什么以及它们出现的顺序。
关于forecast.Arima
未找到错误,您可以看到this answer有关预测包的其他问题 - 实际上该功能并非由用户调用,而是由forecast
函数。
编辑:
收到您的评论后,以下内容似乎有所帮助:
library(forecast)
# Read in the data
full_data <- read.csv('~/Downloads/onevalue1.csv')
full_data$UnixHour <- as.Date(full_data$UnixHour)
# Split the sample
training_indices <- 1:floor(0.7 * nrow(full_data))
training_data <- full_data$Lane1Flow[training_indices]
test_data <- full_data$Lane1Flow[-training_indices]
# Use automatic model selection:
autoARIMAFastTrain1 <- auto.arima(training_data, trace=TRUE, ic ="aicc",
approximation=FALSE, stepwise=FALSE)
# Fit the model on test data:
fit_model <- Arima(training_data, order=c(2, 0, 3))
# Do forecasting
forecast_data <- forecast(object=test_data, model=fit_model)
# And plot the forecasted values vs. the actual test data:
plot(x=test_data, y=forecast_data$fitted, xlab='Actual', ylab='Predicted')
# It could help more to look at the following plot:
plot(test_data, type='l', col=rgb(0, 0, 1, alpha=0.7),
xlab='Time', ylab='Value', xaxt='n', ylim=c(0, max(forecast_data$fitted)))
ticks <- seq(from=1, to=length(test_data), by=floor(length(test_data)/4))
times <- full_data$UnixHour[-training_indices]
axis(1, lwd=0, lwd.ticks=1, at=ticks, labels=times[ticks])
lines(forecast_data$fitted, col=rgb(1, 0, 0, alpha=0.7))
legend('topright', legend=c('Actual', 'Predicted'), col=c('blue', 'red'),
lty=1, bty='n')
答案 1 :(得分:0)
我能够跑
ForcastData <- forecast(object=testData, model=fitModel)
没有错误 现在想绘制testData和预测数据并检查我的模型是否准确:
所以我做了:
输出&lt; - cbind(testData,ForcastData) 图(输出) 并给了我错误:
Error in error(x, ...) :
improper length of one or more arguments to merge.xts
所以当我检查ForcastData时,它给出了输出:
> ForcastData
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
2293201 -20.2831770 -308.7474 268.1810 -461.4511 420.8847
2296801 -20.1765782 -346.6400 306.2868 -519.4593 479.1061
2300401 -18.3975657 -348.8556 312.0605 -523.7896 486.9945
2304001 -2.2829565 -332.7483 328.1824 -507.6860 503.1201
2307601 2.7023277 -327.8611 333.2658 -502.8509 508.2555
2311201 4.5777316 -328.6756 337.8311 -505.0893 514.2447
2314801 4.3198927 -331.4470 340.0868 -509.1913 517.8310
2318401 3.8277285 -332.7898 340.4453 -510.9844 518.6398
2322001 1.4364973 -335.2403 338.1133 -513.4662 516.3392
2325601 -0.4013561 -337.0807 336.2780 -515.3080 514.5053
我以为我会得到我的testData中的结果列表。我需要获得显示2行实际数据(testData)和预期数据(ForcastData)的图表。 我真的经历了很多关于预测的文档,但我无法找到解释我想做的事情。