雷锋网按:自从比特币的价格暴涨以来,关于数字货币的炒作一直不断。每天都有新的数字货币的信息,它们有的被证实是局,有些则会在几个月成为新的顶级货币。炒币人士通常会为了一个传言而买入卖出,自然,也会有人尝试用机器学习来对数字货币的价格变化进行分析,来找出影响数字货币价格变动的因素。近日在外媒Medium上,就有一位叫做ChalitaLertlumprasert的博主发表了如何用机器学习来预测数字货币价格变化的文章,雷锋网整理如下:
机器学习分析数字货币价格变化的原理
在经典的时间序列分析中,我们认为观察到的时间序列是模式和随机变量的组合。使用这种方法,我们可以根据历史数据预测未来的价值。这种方法在大多数情况下可行,但是如果这个时间序列更加随机化呢?如果一个时间序列主要是基于当前事件的推测,而不是具有一定的内在模式呢?嗯,你一定猜到了,低价数字货币就是这样。
那么,究竟是什么在推动数字货币的价格?对于数字货币的猜测?创新?法律问题?公众舆论?供给/需求的变化?比特币的流行程度?甚至,土豪心血来潮决定购买一百万个代币?OK,现在是让数据说话的时候了。
那么,影响加密价格的因素是?
慢雾余弦:比特浏览器用户私钥泄露事件已造成至少41万美元损失:8月26日消息,慢雾余弦于X平台(原推特)发文表示,比特浏览器发生用户私钥泄露事件,目前造成至少41万美元的损失。[2023/8/27 12:58:50]
因素1:许多人说,答案是比特币。区块链技术是首先由比特币实施的分散式数据库系统,被认为是极有可能改变现代商业模式的一种技术趋势。随着比特币备受关注,人们不断推出也基于区块链技术的替代数字货币。从某种意义说,比特币几乎是所有数字加密货币之母,其首先应用了这个行业的基本技术。这就是为什么我认为当比特币价格飙升时,所有其他数字货币都会随之上升,反之亦然。以下图表是比特币和以太坊的价格变化曲线。
正如你所见,这当中的对应关系看起来相当准确。但是,如果没有统计方法上的证明,我们不会急于下结论。稍后,我们将更多地讨论使用格兰杰因果检验来确定一个“协整关系对”。
因素2:很明显,法律因素或其他足以影响游戏规则的技术手段也在影响数字货币的价格。去年九月中国禁止数字货币的时候,所有数字货币价格迅速下降,一切都陷入混乱。为此,我们从PytrendsAPI获取重大事件的GoogleNews搜索频率数据。下面的图表中的红色曲线显示了当数字货币价格下降时,“数字货币”的搜索频率达到峰值。
数据:以太坊相对于比特币的价值呈下降趋势,目前已触及0.0615:金色财经报道,根据 TradingView 的数据,自本月初以来,以太坊相对于比特币的价值一直呈下降趋势,目前已触及 0.0615。这种关系的减弱反映出比特币在过去一个月的价格上涨更为强劲。比特币在此期间上涨了 10%,而以太坊则上涨了 1%。
Pastel Network联合创始人Anthony Georgiades表示,由于将某些数字资产标记为证券的监管存在不确定性,因此在监管机构看来,比特币是唯一保持充分去中心化的数字资产,而且肯定不是证券。
Georgiades指出,如果没有外部冲击,例如信贷危机,市场可能会预期某些投机或交易轮动会推动资金从 BTC 流入 ETH。以太坊的独特之处,例如其促进从 DeFi 到 NFT 等广泛应用的能力,是与比特币的关键区别,并提出了独特的价值主张。[2023/6/23 21:55:13]
很有意思吧?在本项目中,搜索的关键词由Google关键词工具选择,这个工具不仅让你知道关键词的流行程度,还提供了相关关键词的列表。通过所提供的列表和PytrendAPI,我们获得了七个不同的关键词的搜索频率数据。在稍后的章节中我将详细介绍这些术语。
Tether在Tether Treasury铸造12.5亿枚USDT:金色财经报道,据Whale Alert数据显示,稳定币发行商Tether于今日17:53-18:12分左右12.5亿枚USDT在Tether Treasury铸造。Tether首席技术官Paolo Ardoino补充表示,10亿枚USDT库存在Tron网络上补充。以太坊网络上有2.5亿枚作为库存补充。请注意,这是一个授权但未发行的交易,这意味着本次增发将用于下一次发行请求和链上交互。
金色财经此前报道,Binance发公告称,6月16日17:30之后,Binance将直接与Tether团队将12.5亿枚USDT-TRX换成USDT-ETH,以确保用户在所有链上的稳定币流动性。[2023/6/16 21:42:44]
因素3:公众的认知也是另一重要影响因素。购买越多,需求越多,数字货币价格就越高。要得到这些数据些难度,付费的TwitterAPI可以解决这个问题,但因为穷,我更希望把这笔钱花到其他地方。我选择的是redditmetrics.com,该网站可以统计Reddit所有子话题的历史订阅增长数据。下面则对Nem的子话题订阅增长与新的历史价格进行了比较。
Algorand基金会宣布其5000万美元区块链研究和教育项目的获奖者:金色财经报道,Algorand基金会今天宣布其Algorand卓越中心(ACE)计划的10名获奖者,五年内的奖励总额为5000万美元。该计划收到了77份提案,有来自46个国家的550多名参与者;获奖者由来自不同学科的27名专家组成的国际小组选出。
这些赠款将资助世界各地大学校园的研究和教育中心为期多年,以实现:
区块链和加密货币领域的多学科研究;
大学课程、黑客马拉松、加速器以及学生领导的组织和活动;
开发真实世界的解决方案、应用程序和用例;
基于区块链技术的社会影响和可持续性项目等。(prnewswire)[2022/8/4 12:02:50]
正如预期的那样,订阅的增长与价格趋势变化有着高度的重合。
以上展示只是为了让你对这一领域有一个初步的了解,并向你介绍我们正在试图解决的问题。在我的GitHub上可以看到一个完整的EDA,接下来,我将介绍一个预测硬币未来价格的模型的统计方法。
如何建立模型?
在本节中,我们将深入探讨方法论。这里仅仅是每一步的总结,如果你想对代码深入挖掘,请参阅我的GitHub库。
MicroStrategy开盘大跌25%,股价创2020年9月以来新低:行情显示,美股开盘,MicroStrategy开盘大跌25%,截至发稿时其股价为151.69美元,为2020年9月以来低点。[2022/6/13 4:23:38]
1确定协整关系对
我们通过CryptocompareAPI获得了12种主要数字货币的价格历史数据。在我们对时间序列做任何事情之前,我们必须确保时间序列是固定的。为了满足平稳性的要求,时间序列必须具有常数均值、常数方差和自相关常数。而在现实中,完美定态的时间序列是不存在的,但无需担心,我们有迪基-福勒检验!
扩展迪基-福勒检验是一个统计测试,可以测试一个自回归模型是否存在单位根。测试采用自回归模型,并通过不同的滞后值对信息因素进行优化。当中的零假设是时间序列可以用单位根表示。在统计学上,如果你的P值小于0.05,这意味着可以拒绝零假设。但是——再一次强调——对于特定问题,结果应该是可解释和有意义的。事实证明,设定0.05的门槛,所有12种硬币的历史价格都不会通过定态测试,在这种情况下,我们要对时间时间序列定态化和重新进行测试。
差分化:这是用来对时间序列定态化的一种常用方法,可以消除趋势和季节性。在本项目中,我们对连续观测的差异进行了差分化。如果一个时间序列具有季节性因素,则滞后值应该是季节性的周期。在数字货币的例子中没有明显的季节性成分。下面的箱线图表明,以太坊在一天24小时内每小时的价格平均值相对恒定。其方差不同,但没有明显的模式。而在对时间序列进行了滞后差分后,所有的12种货币都通过了迪基-福勒检验。
格兰杰因果关系检验:这是一种统计假设检验,用于确定一个时间序列是否有助于预测另一个时间序列。在这里,我们用格兰杰因果关系检验来确某一数字货币的价格滞后值是否可以用于预测其他硬币的未来价值。
既然12个钱币的历史价格数据是定态的,我们构建了一个总的132组不同货币的数据对,每一个数据对都是某数字货币对应于其他数字货币的历史价格,用于进行格兰杰因果关系检验。检验的零假设是:每一个货币数据对中,后一种数据货币没有对前一种数据产生影响,在测试之后后我们初步发现,达世币H与比特币现金之间相关性最强,但进一步的研究结果表明,这种强烈的相关性是由于来自韩国交易的激增。考虑到这不是一个正常的交易,因为这不是一个正常的情况下,我们选择了XEM-IOT这一对相关性最强的货币对,在本项目中,我们将用IOT的历史来对XEM的价格进行预测。
2.特征选择
数据查询。以下是分析的数据及其来源:
CryptocompareAPI:XEM和IOT的历史价格,每小时;PytrendsAPI:GoogleNews对“Cryptocurrency”关键词的搜索频率;redditmetrics.com数据:对”Cyptocurrency”、“Mem”、“IOT”子话题订阅量的增长PytrendsAPI:对“Nemwalletdownload“、“Iotawalletdownload”,“Nemprice”,Iotaprice”,Bitcoinprice”,“GPUformining”等Google关键词的搜索频率——这些关键词基于Google关键词工具挖掘。YahooFinancialAPI:AMD、NVIDIA两大挖矿军火商的股票价格
ElasticNet回归、正则化:上述查询数据可能存在关联性,如在“Bitcoinprice”和“CryptoCurrency”可能包含类似Google搜索频率信息,谷歌搜索频率。使用类似的特性构建模型会造成冗余并影响预测结果。ElasticNet可将冗余预测系数缩小到零。
在本项目中,我们对上述13个特征变量用ElasticNet回归正则化,其中因变量为XEM的历史价格。经过算法处理后,最终剩下三个具有非零系数的预测因子。这些特性将用于构建最终模型。我同样也用也试着用13个特征建立了一个模型,与使用选定的3个特征建立的模型相比,性能差异并不显著。最终我选用了3个特征的模型。
3.建立模型
在本项目中,我们使用ARIMAX模型来预测XEM的未来价格。ARIMAX模型如同ARIMA模型通过自回归和移动平均值进行预测,但ARIMAX可包含其他外生变量,在此我们使用的是之前选择的3个外生变量。
数据预处理:我们之前已经提到了定态性和迪基-福勒检验的相关内容,在此不再展开。这些书在ElasticNet前已经标准化过了,我们只需进行差异化处理,并确保其通过了迪基-福勒检验。之后数据被清理并分成测试集和训练集。
ACF&PACF:数据已经确定,我们需要1)确定时间序列是自回归或是移动平均过程;2)确定我们需要在模型中使用自回归和移动平均过程的顺序。ACF可以回答第一个问题,也可以用于确定移动平均序列中的滞后阶数。下图为XEM历史价格的ACF和PACF。
正如我们所见,这是一个自回归过程,因为ACF没有截止值。PACF在滞后滞后有一个截止值,这将是我们用于ARIMAX模型的参数。
ARIMAX:使用AR1和3个外生变量。下图是与实际值比较的拟合值。
用拟合出的模型得出的XEM价格预测。下图是基于XEM样本对未来600步的预测值。
如我们预期,该模型在开始的表现更好,而随着时间的推移,预测误差也在不断增加。在1-100步内,预测的均方误差为0.039,而101-600步的均方误差为0.119。
总结
我们用IOT的历史价格以及对“NemPrice”的Google搜索量、“Nem”子条目的订阅量增长建立ARIMAX模型来预测NEX的数字货币价格。在100小时以内,预测结果是可以接受的,超过100小时后就不能看了。
这是我的第一个数据科学项目,还有很大的改进空间。如果使用付费的Twitter数据或者使用不同的机器学习模型可能会显著提高其性能,目前我会考虑提出一个能用于自动交易的交易信号算法,但摸摸我的钱包,我不禁流下了悲伤的泪水。
我希望你能像我喜欢写这篇文章一样喜欢这篇文章!如果你有任何想法,请留言让我知道。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。