假设您有月度数据,例如来自Air Passengers数据集。您不需要时间序列类型的数据,只需包含时间步长和值的数据框。让我们将它们命名为x和y。接下来,您开发一个svm模型,并指定需要预测的时间步长。使用predict函数计算给定时间步长的预测结果。就是这样。然而,支持向量机通常不被视为时间序列预测的最佳方法,特别是对于长时间序列数据。它可以在几个观察值前表现良好,但我不会期望它能为整个下一年的每日数据进行良好的预测(但这显然取决于数据)。以下是基于SVM的简单R代码:
data(AirPassengers)
monthly_data <- unclass(AirPassengers)
months <- 1:144
DF <- data.frame(months,monthly_data)
colnames(DF)<-c("x","y")
svmodel <- svm(y ~ x,data=DF, type="eps-regression",kernel="radial",cost=10000, gamma=10)
nd <- 1:156
prognoza <- predict(svmodel, newdata=data.frame(x=nd))
ylim <- c(min(DF$y), max(DF$y))
xlim <- c(min(nd),max(nd))
plot(DF$y, col="blue", ylim=ylim, xlim=xlim, type="l")
par(new=TRUE)
plot(prognoza, col="red", ylim=ylim, xlim=xlim)
![see plot of the forecasted values](https://istack.dev59.com/M6v60.webp)