2014-02-18 39 views
1

我正在使用R软件(Lib e1071),并试图使用支持向量回归进行预测。我正在做的方式如下:金融时间序列预测/ SV回归

我使用N = 3倍的产率windowizing原始收盘价:

s[t-3] s[t-2]  s[t-1] -> s[t] 
1.2350 1.2358  1.2354  1.2360 
.   .   .    . 
.   .   .    . 

etc... 

我想预测的值是Y = S [T]。 SVM类型是“eps-regression”,内核是“radial”。此外,我执行10倍交叉验证以获得最佳参数,伽玛和成本。



但是我有一个问题:



预测总是最后值S [K-1]的非常接近的值,实例:

Last Vector: 

s[t-3] s[t-2]  s[t-1] -> s[t] 

1.2350 1.2358  1.2354  1.2355 

预测值将是最后s [t-1]值非常接近的值。我试图增加学习向量的数量(10K)并增加N收益(最多7),但结果是一样的。

有人可以告诉我为什么会发生这种情况,我怎么能得到真正的预测?



**

附录

**

关于从user__42样的答复,我有一些问题了解你的解释:

1)可以说,我有以下3个训练矢量集

10 s[t-3]   12 s[t-2]  15 s[t-1] ->  11 s[t] 
5 s[t-4]   8 s[t-3]  9 s[t-2] ->  10 s[t-1] 
6 s[t-5]   12 s[t-4]  10 s[t-3] ->  15 s[t-2] 

建议尝试的预测是Y”

y'[t] = y[t] - y[-t] 

以上述例子

y'[t] = 11 - 15 -> y'[t] = y[t] - y[-1] 

但在实时预测,不知Y [t]的计算y'

y'[t] = x - 15 

2)考虑到上面的例子,你能解释一下你所说的以下表述的意思是:

y'[nt] 


y'[-nt] 


y[nt] 
+0

这可能对http://stats.stackexchange.com/更好。他们可能有更多的见解。 –

+0

你想做什么?财务数据是一个过于广泛的术语。 – Pedrom

+0

我希望现在更清楚。谢谢。 –

回答

0

如果你使用真正的金融时间序列数据这种行为是挑战的一部分 - 因为财务时间系列非常嘈杂

你可以尝试:

  1. 写下你的内核参数,并尝试NU-SVR与相同的内核参数和选择NU = 0.1。这样,你会增加模型的复杂融合反对“死记硬背”(德文翻译与谷歌!“auswendiglernen”)

1.a.edit你可以尝试损失函数,而不是经典ε不敏感LF ,像高斯损失funktion(没有xp我自己)

1.b.edit我确实使用了FaLK-SVR一次。你可以将数据拆分为子数据 - 邻域:我认为这将帮助你获得更少的“平均”结果。 FaLKM-LIB是准备在LIBSVM使用实施筑底:http://disi.unitn.it/~segata/FaLKM-lib/

  1. 包括在之间只(T-1,T S [吨-13]和s [T-27](未值! -2,t-3,t-13和t-27)给机器一个关于总体趋势的线索。

  2. 你肯定需要更多的功能,如果你认真地试图预测像这个系列说天气;-),micro-blogging或计算功能(通过隐马尔可夫)

  3. 谷歌更容易玩具数据或查找here

+0

感谢您的回答。我确实尝试了你的建议(1.和2.),不幸的是,我得到了同样的行为。预测总是非常接近最后的价格。也许增加时间序列的间隔可能有帮助?即:(t-2,t-5,t-9,t-13和t-27) –

+0

更新:我增加了这样的间距:[t-1],[t-13],[t-包括建议1.和2.结果:相同的初始结果。 –

+0

好吧,让我明白no3:你的输入值是简单的y [-t]值 - 所以机器没有错误,把y [-1]作为y的最接近猜测。尝试使用y'[ - nt]预测y'[t] = y [t] -y [-t]作为输入。这样你的核心距离从x1 = [1,2,3,4]到x2 = [3,4,5,6]将为零。如果您需要y [t]作为输出,只需将(已知)y [-t]添加到y'[t]。还可以尝试混合y'[ - nt]和y [-nt]值来覆盖低值和高值的不同行为。尝试将尽可能多的信息放入内核中。玩(y [-nt] -y [-nt-2])等等...... –