金融时间序列分析——对收益率序列平稳化处理

102 篇文章 4 订阅
58 篇文章 4 订阅

在逛博客的时候,从AI研习社里看到了一篇文章,最新的优化深度学习交易机器人技术 ,讲到了一个常用的方式,

下图中的三个图中描述的时间序列分别是原始的价格数据,以及做了差分(比如一步的差分其实就是今天的价格和昨天的价格相减再除以昨天的价格),以及对原始数据取对数然后再差分的时间序列的图。

 

之所以这样处理的原因是数据不是平稳的,因此,任何机器学习模型都很难预测未来值。 最重要的是,我们的时间序列包含明显的趋势和季节性,这两者都会影响我们的算法准确预测时间序列的能力。 我们可以通过使用差分和变换技术解决该问题,从我们现有的时间序列中产生更正态的分布。

差分是从该时间步的值减去每个时间步的导数(收益率)的过程。在本文例子中,可实现消除趋势的预期结果,但是,数据仍然具有明确的季节性。 我们可以尝试通过在差分之前的每个时间步长取对数来移除它,这产生最终的平稳时间序列
 

df['diffed'] = df['Close'] - df['Close'].shift(1) 
df['logged_and_diffed'] = np.log(df['Close']) - np.log(df['Close'].shift(1)

在文章中,当然也有提到检验时间序列平稳性的工具,那就是增广的Dickey-Fuller检验

如果这样做得到p值0.00,允许我们拒绝检验的零假设,并确认时间序列是平稳的

from statsmodels.tsa.stattools import adfuller    
df['logged_and_diffed'] = np.log(df['Close']) - np.log(df['Close']).shift(1)    
result = adfuller(df['logged_and_diffed'].values[1:], autolag="AIC")    
print('p-value: %f' % logged_and_diffed_result[1])

我们对转换后的数据集运行Augmented Dicker-Fuller测试,以确保平稳性

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量化橙同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值