《金融时间序列预测》

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

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

以下是几天来一直困扰我的问题:

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

2.除了开窗之外,我应该在我的过程中加入哪些操作符来帮助我得到偏离数据的预测值?

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

4.我很惊讶SVM (kernel type: 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 optimaiton操作符中微调Gamma和C。我发现这给了我一个更稳定的模型。

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

    你好理查德,

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

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

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

    C vs gamma.pngGamma vs C - SVM

    wirtcal

答案

  • RichardtheboyRichardtheboy 成员职位:7贡献我

    谢谢托马斯的建议!我会在这个方向上努力,看看能找到什么:)

  • RichardtheboyRichardtheboy 成员职位:7贡献我

    我可以询问更多关于如何在过程中实现滞后算子/移动平均算子的说明吗?我完全搞不懂这些术语:(谢谢

  • RichardtheboyRichardtheboy 成员职位:7贡献我

    谢谢TBone !

    我在模型的构建上做了很大的改进,但是一个新的问题出现了。

    以下文字摘自您推荐给我的那本书的第十章。

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

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

  • RichardtheboyRichardtheboy 成员职位:7贡献我

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

登录注册置评。