使用支持向量机预测时间序列的未来值
Posted
技术标签:
【中文标题】使用支持向量机预测时间序列的未来值【英文标题】:Forecast future values for a time series using support vector machin 【发布时间】:2015-06-19 05:50:39 【问题描述】:我在 R 中使用支持向量回归来预测单变量时间序列的未来值。将历史数据拆分为测试集和训练集,我通过在 R 中使用 svm 函数对测试数据找到一个模型,然后对训练数据使用 predict() 命令来预测训练集的值。然后我们可以计算预测误差。我想知道那会发生什么?我们有一个模型,通过在训练数据上检查模型,我们看到模型是有效的。如何使用此模型从训练数据中预测未来值?一般来说,我们在 R 中使用 predict 函数并给它一个预测范围 (h=12) 来预测 12 个未来值。根据我所见,SVM 的 predict() 命令没有这样的命令,需要一个训练数据集。我应该如何构建一个训练数据集来预测不在我们历史数据集中的未来数据?
谢谢
【问题讨论】:
【参考方案1】:只是在黑暗中刺伤... SVM 不是用于预测,而是用于分类,特别是有监督的。我猜您正在尝试预测股票价值,不是吗?如何对现有数据进行分类,使用您选择的某个大小,例如一次 100 个值,用于噪声 (N)、向上 (U)、大向上 (UU)、向下 (D) 和大向下 (DD)。这样,当您的数据进入时,您滑动分类框架并让它告诉您即将到来的趋势是否是 N、U、UU、D、DD。
【讨论】:
感谢您的来信。我在这里(***.com/questions/7782501/…)看到我可以使用 predict 选项来预测测试集的值(或分类)。我想知道如何对我的历史数据(未来预测或分类)之外的数据进行分类。有什么命令可以做到吗?【参考方案2】:您可以做的是构建一个数据框,其中包含表示实际股票价格及其 n 个滞后值的列。并将其用作训练集/测试集(实际值是输出,之前的值是解释变量)。使用这种方法,您可以对未来的预测进行 1 天(或任何粒度),然后您可以使用您的预测进行另一次预测,依此类推。
【讨论】:
以上是关于使用支持向量机预测时间序列的未来值的主要内容,如果未能解决你的问题,请参考以下文章