当前位置:首页-云算力-正文

比特币最新分析预测

如果要你对比特币走势进行预测,采用哪种方法合适了?

监督学习算法中有很多都可以做回归类预测,比如逻辑回归,决策树,gbdt,xgboost等。

其实,基于时间序列的预测的方法在金融分析中是非常常见的。监督算法是通过训练集找到特征与因变量之间的关系,然后将测试集中的输入特征带入已经训练好的模型中,得到输出结果。时间序列与监督学习最大的不同,时间序列寻找因变量与时间的关系,它会分析目标变量的趋势,周期,时间和不稳定因素等。这些趋势和周期都是在时间维度的基础上,我们要观察的重要特征。

列举下时间序列分析的典型案例,来增加对时间序列的感性认识:

气候学家通过时序数据预测全球气候变化
公司需要时序分析来预测产品的需求及未来销量
地震学家通过时序数据预测地震

时间序列模型

在时间序列预测模型中,有一些经典的模型,包括 AR、MA、ARMA、ARIMA。

AR 的英文全称叫做 Auto Regressive,中文叫自回归模型。这个算法的思想比较简单,它认为过去若干时刻的点通过线性组合,再加上白噪声就可以预测未来某个时刻的点。

白噪声:期望为0,方差为常数的随机数

AR模型还有一个阶数,叫AR(p)模型,也叫p阶自回归模型。指的是通过此刻节点前p个点的线性组合再加上白噪声来预测当前此刻点的值。

MA 的英文全称叫做 Moving Average,中文叫做滑动平均模型。AR模型通过过去几个点的线性组合来预测当前点,白噪声是影响过去几个点来间接影响当前预测值。MA模型通过历史白噪声线性组合来影响当前点。

MA模型也有一个阶数,MA(q)模型。也叫作 q 阶移动平均模型。

ARMA的英文全称是Auto Regressive Integrated Moving Average 模型;中文叫做自回归滑动平均模型,它是AR模型与MA模型的结合。自然,ARMA也有两个阶数,ARMA(p,q).

ARIMA 的英文全称是 Auto Regressive Integrated Moving Average 模型.中文叫差分自回归滑动平均模型,也叫求合自回归滑动平均模型。

ARIMA 多了一个差分的过程,作用是对不平稳数据进行差分平稳处理之后,再进行建模。

ARIMA 是一个三元组的阶数 (p,d,q),d表示差分的阶数。

建模工具

在使用 ARMA 工具前,你需要先引用相关工具包:

比特币最新分析预测_第1张比特币最新分析预测_第1张
比特币最新分析预测_第3张比特币最新分析预测_第3张
比特币最新分析预测_第5张比特币最新分析预测_第5张

AIC: 1619.6326

我们需要引入 AIC 准则,也叫作赤池消息准则,评价模型拟合的好坏。AIC越小越好。

比特币最新分析预测_第7张比特币最新分析预测_第7张

创建了1901-1990年的时间序列数据data,创建了ARMA(7,0)模型,传入数据data,使用fit函数进行拟合,predict函数预测出1991-2000年之间的值。

实际工作中,可以给p,q一个范围,让其都跑一下,选择AIC小的为最终模型。

比特币走势预测

比特币的走势预测,除了历史数据外,还受很多外界环境的影响,比如行业周期,汇率波动,各国之间的政策,以及用户对比特币的关注度高度相关。(这些都可以作为模型的特征,不过这并不在本文的研究范围)

本篇文章,只考虑历史数据对比特币趋势的影响。

需要的历史数据可以从此处下载:

数据集各字段如下:

比特币最新分析预测_第9张比特币最新分析预测_第9张

我们的目标是构造 ARMA 时间序列模型,预测比特币未来8个月的(平均)价格。(显然,我的数据集刚好比较贴合这个模型,实际工作中需要很多尝试方可确定)。

首先我们需要加载数据。

1、我们可以先可视化看大概走势。

2、我们根据需要选择时间颗粒度:日(数据集本身),周,月,季度,年,本篇文章选择月为时间最小颗粒度。

压缩代码如下:

df_month=df.resample('M').mean()#按天
df_Q=df.resample('Q-DEC').mean()#按季度
df_year=df.resample('A-DEC').mean()#按年

在原始数据中,Weighted_Price是比特币每天价格,如果将时间维度压缩在月颗粒度,那么Weighted_Price就变为每月比特币平均价格。

然后,开始选择模型

1、我们选用ARMA模型,p与q的选择,我们采取range(0,3)的方式遍历,选择AIC最小的参数

2、最终得到的是比特币未来8个月的平均价格。

最终我们给出了代码:

代码测试通过,结果如下

比特币最新分析预测_第11张比特币最新分析预测_第11张
比特币最新分析预测_第13张比特币最新分析预测_第13张
比特币最新分析预测_第15张比特币最新分析预测_第15张
比特币最新分析预测_第17张比特币最新分析预测_第17张

值得注意的是:我们选用月而非日作为时间最小颗粒度,节省了训练时间,我们这样做的依据是:

1、需求是未来8个月的价格;(可以将训练拟合数据压缩为月维度(比如将月中30天价格取平均作为训练集,然后跑模型非常快,本文做法),也可以以日为最小颗粒度,最后预测结果为后8个月(n天),然后按时间节点取平均得到月平均价格)

2、观察趋势图(2,2,1)与(2,2,2)可以发现,日颗粒度的交易价格与月颗粒度的交易价格趋势高度一致。

总结一下:

多元回归,统计学习模型,时间序列之间的区别:

多元回归:多自变量单因变量;自变量之间线性无关(否则多重共线性,需要岭回归修正),自变量与因变量之间高度相关(这正是选择特征的依据)。

多元回归选择特征的依据:方差法:取单个特征方差大的为意向特征;相关系数法:取特征与因变量相关系数大的特征为意向特征。
多元回归求参数方法:最小二乘法(误差函数线性可求导,随机误差满足正态,总之线性回归四个假设得满足)。

统计学习模型:统计学习模型也就是我们常说的机器学习模型,监督学习与非监督学习;监督学习包括判别模型,非判别模型;(也可以是参数学习方法,非参数学习方法;划分依据不同而已)。

二分类问题:多个输入特征一个输出特征。更多关注模型过拟合如何解决,交叉验证与正则化思维贯穿其中。

时间序列分析:本文介绍的AR自回归,MA移动平均模型以及其衍生体ARMIA都是时间序列的经典方法。用历史数据预测未来数据,不考虑特征。