金融时间序列预测

RichardtheboyRichardtheboy 成员职位:7贡献我
2019年6月编辑 帮助

嗨,我是rapidminer的新用户。我想做一个金融时间序列来预测股票市场(主要是香港恒生指数)的未来价值。我试着研究这个论坛来得到我的答案,然而,即使在我阅读了其他帖子和Thomas Ott制作的视频教程(#8-#10关于金融时间序列的教程)之后,我仍然感到困惑。

以下是困扰了我几天的问题:

1.论坛上的一些帖子提到,使用窗口可以帮助生成多元数据,但是这个函数如何帮助我预测非数据值(例如,我有第1天到第10天的数据,我想预测第11天到第20天的值)?

2.除了窗口之外,我应该在我的过程中放入哪些操作符来帮助我获得非数据预测值?

3.是否有任何方式将优化算子(网格)与滑动窗口验证算子中的SVM算子连接在一起?在我目前的模型中,我必须首先运行优化操作符,获得“优化”的值,并将它们放入验证操作符内部的SVM操作符中,然后我必须再次运行该过程。有没有更方便的方法来组织我的流程?

4.我很惊讶SVM的默认设置(内核类型:Dot)在预测股票市场表现方面是相当准确的,但是当我试图使用优化算子来优化“C”和“gamma”值并使用它们来测试我的测试数据时,通常会导致较低的准确性。我想知道是否有更好的运营商来预测市场表现?

感谢您的耐心阅读我所有的问题。我是一名社会科学专业的学生,对挖掘过程不是很熟悉……但我愿意学习:)

下面是我目前模型的XML,如果您能给我一些改进的建议就太好了:)谢谢!

< ?xml version="1.0" encoding="UTF-8"?> <过程version = " 7.2.002”>
> <上下文
<输入/ >
<输出/ >
<宏/ >
> < /上下文

<过程扩展= " true " >


<列出关键= "注释" / >
<列出关键= " data_set_meta_data_information " / >
< /操作符>



<列出关键= " set_additional_roles " >

< / >列表
< /操作符>




< /操作符>


<列出关键= "注释" / >
<列出关键= " data_set_meta_data_information " / >
< /操作符>



<列出关键= " set_additional_roles " >

< / >列表
< /操作符>





< /操作符>



<过程扩展= " true " >



< /操作符>





> < /过程
<过程扩展= " true " >

<列出关键= " application_parameters " / >
< /操作符>










> < /过程
< /操作符>

<列出关键= " application_parameters " / >
< /操作符>


< /操作符>


<列出关键= "注释" / >
<列出关键= " data_set_meta_data_information " / >
< /操作符>



<列出关键= " set_additional_roles " >

< / >列表
< /操作符>




< /操作符>

“参数”<列表键= >

< / >列表
<过程扩展= " true " >


<列出关键= " application_parameters " / >
< /操作符>












> < /过程
< /操作符>























> < /过程
< /操作符>
> < /过程

最好的答案

  • Thomas_OttThomas_Ott RapidMiner认证分析师,RapidMiner认证专家,成员职位:1761年独角兽
    解决方案接受

    你好理查德,

    我建议你去看看Vijay Kotu和Bala Deshpande所著的《预测分析和数据挖掘》第10章,它解释了如何提前预测多个时间段。所以,为了回答你的具体问题,请参见下文:

    1.你将需要使用窗口操作符为你的训练和测试集,上面提到的书讨论了如何建立你的训练和测试集。

    2.这取决于,如果你试图预测市场指数的收盘价,也许你想使用滞后序列操作符或移动平均操作符。我经常用这些算子进行波动预测。

    3.是的,你当然可以。只需在网格优化中嵌入滑动窗口验证操作符,您就可以调整训练/测试窗口和宽度。我经常这样做。窗口大小和步骤对更精确的模型有很大影响。

    4.我通常使用带有RBF内核的SVM,然后在Grid optimization算子中微调Gamma和C。我发现这给了我一个更稳定的模型。

  • Thomas_OttThomas_Ott RapidMiner认证分析师,RapidMiner认证专家,成员职位:1761年独角兽
    解决方案接受

    你好理查德,

    要使用Lag Series操作符,您只需要编辑参数字段并选择您想要延迟的属性(列)以及延迟的值。因此,如果我想将一个名为S&P500_weekly的属性延迟2周,那么我将在lag Series操作符中选择该列并输入值2。

    移动平均操作是类似的,只需选择您想要计算移动平均的属性并选择“时间窗口”。如果您的数据以天为单位,并且您想要一个20DMA,只需输入20作为时间窗口。

    仅供参考,这里有一个关于γ和C如何相互作用的很棒的图表。

    C vs。pngGamma vs C - SVM

    wirtcal

答案

  • RichardtheboyRichardtheboy 成员职位:7贡献我

    谢谢Thomas的建议!我将朝这个方向努力,看看能找到什么:)

  • RichardtheboyRichardtheboy 成员职位:7贡献我

    我可以要求更多关于如何在过程中实现滞后运算符/移动平均运算符的说明吗?我对这些术语很困惑:(谢谢

  • RichardtheboyRichardtheboy 成员职位:7贡献我

    谢谢你!

    我在建立模型方面做了很大的改进,但是又出现了一个新的问题。

    下面这段话摘自你推荐给我的那本书第十章。

    “…但是在开始循环之前,我们需要将最后预测的行存储在一个单独的数据结构中。这是由名为Extract Example Set的宏完成的。Filter Example操作符只是删除已转换数据集的所有行,最后预测的行除外。(P.324)”

    我如何将过滤器示例操作符设置为“删除转换后的数据集的所有行,除了最后预测的行”?我猜这可能与“自定义过滤器”有关,但我一点击进去就迷路了……

  • RichardtheboyRichardtheboy 成员职位:7贡献我

    另一个问题是在“调整日期”操作符中,我如何设置调整以制作一些新的日期?谢谢!

登录注册置评。