作者:Quantodian 来源:medium 翻译:善欧巴,金色财经
介绍 比特币基于时间的幂律最早由Giovanni Santostasi早在 2014 年提出,并在 2019 年由我们重新表达(无论是作为走廊还是作为三参数模型),描述了比特币价格与时间之间的关系。具体来说,该模型描述了自比特币创世区块以来的天数对数与比特币美元价格对数之间的线性关系。
该模型吸引了多位批评者,包括Marcel Burger、Tim Stolte和Nick Emblow,他们各自撰写了对该模型的“反驳”。在本文中,我们的目的是剖析这三个批评中的一个关键论点:所谓的时间和价格之间缺乏协整,将模型视为“无效”并且仅仅表明虚假关系。
真的是这样吗? 在这篇文章中,我们将彻底研究这个问题。这使我们得出这样的结论:严格来说,协整不能存在于依赖时间的模型中,包括我们自己的模型。尽管如此,不可否认的是,协整所必需的统计属性之一存在于基于时间的幂律模型中。因此,我们得出的结论是,基于时间的幂律在松散意义上是协整的,我们的批评者是错误的,而该模型是完全有效的。我们证明这一结论同样适用于库存流量(S2F)模型以及长期股市指数价格中观察到的指数增长。
概念入门 协整wtf 你已经迷路了吗?或许“协整”这个词对你来说比较陌生?别担心:因果推理和非虚假关系领域的专家、《为什么之书》的作者Judea Pearl声称对这个主题一无所知。我们将努力充分阐明当前问题的相关术语。
有趣且令人着迷的是 #bitcoin 领域内关于 X 的激烈的协整争论,其特点是该主题明显的肤浅程度。许多存量流量和幂律的追随者都感到困惑。感兴趣的读者可以通过在 X 中输入搜索短语“什么是协整 ”来亲眼目睹这一点。虽然一些贡献者似乎随着时间的推移已经掌握并完善了他们的理解,但其他人仍然感到困惑,转换阵营或迷失方向。直到现在我们才开始讨论这个话题。
首先一些背景 随机过程涉及随机变量。随机变量的值不是预先确定的。相比之下,确定性过程可以提前精确预测——它的每个方面都是事先已知的。像股票市场价格这样的事情是随机的,因为我们无法提前预测资产的价格。因此,我们将股票或比特币价格等时间序列视为随机变量的观测值。
相反,时间的流逝遵循确定性模式。每一秒、一秒都过去了——没有任何不确定性。因此,事件发生后经过的持续时间是一个确定性变量。
一个信号的平稳性 在研究协整之前,我们首先看一下协整的基础概念:平稳性:
平稳过程是一种随机过程,宽泛地说,随着时间的推移,它具有相同的属性。此类属性的示例是均值和方差,对于平稳过程来说,均值和方差是已定义且稳定的。平稳时间序列的同义词是 I(0)。来自平稳过程的时间序列不应该“漂移”,并且应该倾向于恢复到平均值,通常为零。
非平稳过程的一个例子是随机游走,描述了物理学中的布朗运动或粒子扩散:随机游走中的每个新值取决于先前的值加上随机数。非平稳过程的属性(例如均值和方差)随时间变化,或者没有定义。非平稳过程为 I(1) 或更高,但通常为 I(1)。源于非平稳过程的时间序列随时间“漂移”,即倾向于远离任何固定值。
符号I(1)指的是时间序列在达到平稳之前需要“差分”的频率。差分是指时间序列中的值与其前一个值之间的差异。这大致相当于求导数。平稳时间序列已经是平稳的——它需要差分 0 次才能平稳,因此它是 I(0)。I(1) 时间序列在平稳之前需要进行一次差分。
上图的构建方式是通过对橙色时间序列进行一次差分来获得蓝色时间序列。等效地,橙色时间序列是通过对蓝色时间序列进行积分得到的。
这里的单位根过程指的是自回归模型(更准确地说是 AR(1) 类型),其中 rho 参数估计等于 1。虽然我们可以互换使用 rho 和根,但 rho 指的是过程通常是未知的,需要估计。估计结果就是“根”值。
rho 的值表示进程记忆其先前值的程度。u 的值指的是误差项,假设为白噪声。
单位根过程是随机游走,是非平稳的。“根”或 rho 值低于 1 的过程往往不会漂移,因此是静止的。从长远来看,即使接近(但低于)1 的值也将倾向于均值回归(而不是漂移)。因此,单位根过程是特殊的,因为它的行为与根值非常接近 1 的过程根本不同。下图显示了 4 个已知自回归过程生成的数据的 4 个样本,每个样本都具有不同的 rho 值。
两个信号的协整 两个随机变量(在我们的例子中为时间序列)之间存在或不存在协整。为了使该对进行协整,两者必须以相同的阶数进行积分并且是非平稳的。此外(这是关键部分),两个时间序列必须存在平稳的线性组合。
无协整信号的示例 如果两个时间序列是非平稳的,则线性组合(在这种情况下我们简单地选择两个时间序列之间的差值)通常也是非平稳的:
协整信号的示例 如果两个非平稳时间序列长期“以相同的方式”漂移,那么线性组合(这里我们选择 r2–0.5*r1)可以是平稳的:
Tu 等人 [1] 很好地直观地描述了协整:
“时间序列之间存在协整关系意味着它们在长期内具有共同的随机漂移。”
如果两个非平稳时间序列具有平稳的线性组合,为什么有用?假设我们有两个时间序列 x 和 y,并且我们尝试基于 x 对 y 进行建模:y = a + b*x。我们的模型误差由 x 和 y 的线性组合给出:模型误差 = y — a — b*x 。我们希望这个模型误差是稳定的,即从长远来看不会漂移。如果模型误差从长远来看逐渐消失,那就意味着我们的模型很糟糕——无法做出准确的预测。
细节决定成败 更正式的定义可以在 Engle 和 Granger 的《协整和误差修正:表示、估计和检验》中找到[2](格兰杰是协整概念的发明者,并获得了 2003 年诺贝尔经济学奖),它定义了关键概念以及协整检测的检验。该论文的关键是假设时间序列是随机的,没有确定性成分(我们稍后会讨论这一点)。
应用于时间和比特币价格 在基于时间的幂律的情况下,我们有两个变量:
log_time:自创世区块以来的天数的对数
log_price : 价格的对数
根据Engle和Granger的定义,两个变量都需要是随机变量,没有确定性成分,并且需要是非平稳的。此外,我们必须能够找到两个变量的平稳线性组合。否则,两个变量之间不存在协整。
在深入讨论细节之前,让我们首先展示一些关于模型数据本身的图表,没有任何平稳性或协整概念的概念。请注意,基于时间的幂律产生的拟合在视觉上看起来相当不错。残差向量并不立即表明漂移。
此外,该模型显示出出色的样本外性能(见下文)。出色的样本外性能并不符合模型是虚假的这一说法——基于虚假相关性的模型应该是:虚假的,这意味着它无法准确预测。可以通过将模型拟合到有限数量的数据(直到某个日期)并预测模型不拟合的时间段(类似于交叉验证)来测试样本外性能。在样本外期间,观察到的价格不断频繁地穿越建模价格,并且观察到的价格的最大偏移也没有系统地远离建模价格。
我们可以更严格地查看模型发布后(2019 年 9 月)的表现,因为模型发布后我们不可能以任何方式作弊——我们无法事后更改模型。
对于任何关于该模型仅仅是基于虚假相关性的指控,该模型的预测能力都应该持保留态度。
协整逐步 为了使 log_time 和 log_price 之间可能存在协整,两个变量都必须是相同阶次的随机变量积分,并且至少为 1 阶。
log_price 变量
log_price 是平稳时间序列吗?Nick得出结论,使用未指定风格的 ADF 测试(非平稳性测试)和 KPSS 测试(平稳性测试),log(价格)毫无疑问是非平稳的,因此 I(1) 或更高。Marcel Burger通过目视检查得出结论为 I(1)。Tim Stolte做了一个更有趣的观察:他在不同时间段进行了 ADF 测试(未指定风格),并指出情况并不明确:“因此,我们无法坚决拒绝非平稳并得出结论:是对数价格非平稳的迹象。”
让我们进行自己的分析。与 Tim Stolte 类似,我们将在不同的时间窗口应用 ADF 测试:始终从第一个可用日期开始,并每天添加一天(我们使用每日数据)。通过这种方式,我们可以看到 ADF 测试的结果如何随时间变化。但与 Tim 和 Nick 不同的是,我们将指定运行哪个版本的 ADF 测试。根据维基百科,DF 和 ADF 测试具有三种主要风格:
这三个版本之间的区别在于它们能够适应(消除)不同的趋势。这与 Engle 和 Granger 要求删除任何确定性趋势有关 - 这三个版本能够删除三种简单的确定性趋势类型。第一个版本尝试仅使用过去的 log_price 数据来描述每日 log_price 变化。第二个版本允许使用常数项,其效果是 log_price 可以具有线性趋势(向上或向下)。第三个版本允许二次(抛物线)分量。
我们不知道 Tim 和 Nick 运行了哪些版本,但我们将运行所有三个版本。
我们在 ADF 测试中使用的最大滞后为 1,但使用更长的滞后并不会显着改变我们的结果和结论。我们将使用 python 的statsmodels.tsa.stattools.adfuller函数,其中“maxlag”为 1,并将使用“n”、“c”和“ct”作为“回归”参数(相当于上面维基百科描述的三种风格) )。在下图中,我们显示了测试返回的p 值(统计显着性的度量),其中较低的值意味着较高的平稳性可能性(通常使用 0.05 的阈值)。
我们观察到,第一种风格(绿线)明确地得出结论:log_price 时间序列是非平稳的。测试的第三个版本(橙色线)得出相同的结论,但不太果断。有趣的是,考虑常数项(蓝线)的检验无法确定时间序列是否平稳(蒂姆很可能也使用了带有常数项的 ADF 检验)。为什么这三个版本如此不同,特别是为什么带有常数项的版本不排除 log_price 是平稳的?
只能有一种解释:在 log_price 差异中仅使用常数项(导致 log_price 中存在线性项)可以“很好地”拟合时间序列,从而产生看起来几乎静止的残差信号(尽管具有相当大的开始和结束偏差)。到目前为止,在 log_price 中根本不使用确定性趋势,或者使用二次项确定性效应都效果不佳。
这已经给了我们一个强烈的暗示,即时间和 log_price 之间存在关系。事实上,如果使用常数项的 ADF 测试得出信号是平稳的结论,这将意味着线性时间项能够足够好地逼近 log_price 以获得平稳残差。获得平稳残差是可取的,因为它是非虚假关系的标志(即我们已经找到了正确的解释变量)。线性时间趋势并不完全是我们所需要的,但看起来我们已经很接近了。
我们的结论与马塞尔·伯格的结论明显不同,他(在另一篇文章中)指出:
“在之前的分析中,我表明比特币的价格是一阶积分的,而且现在仍然如此。比特币在价格随时间的演变中没有表现出任何确定性因素。”
我们的结论是,线性时间并不能完全解释比特币随时间的价格行为,但绝对清楚 log_price 具有确定性的时间元素。此外,在删除适当的确定性组件(根据恩格尔和格兰杰的要求)后,log_price 是否为 I(1) 还不清楚。相反,它看起来是趋势平稳的,但仍然需要找到适当的确定性成分。
如果我们正在寻找协整,那么 log_price 不是 I(1) 的事实已经是一个问题,因为对于要协整的两个变量,它们必须都是 I(1) 或更高。
log_time 变量
现在让我们看看 log_time 变量。Marcel Burger 得出结论,log_time 似乎是六阶积分(他一直保持差分直到遇到数值问题)。他期望像对数这样的数学函数从完全确定性变量转换为随机变量的方法是荒谬的。
Nick对于 log_time 和 log_price 变量得出相同的结论:毫无疑问,它是非平稳的,因此 I(1) 或更高。Tim Stolte 声称log_time 在构造上是非平稳的。这些都是令人惊讶的声明!积分阶和协整是指随机变量的概念,并且从中删除了任何确定性趋势(参见上面的 Engle 和 Granger [2])。提醒一下:确定性变量的值是提前已知的,而随机变量的值则不然。时间(显然)是完全确定性的,对数函数也是完全确定性的,因此 log_time 也是完全确定性的。
如果我们遵循 Engle 和 Granger 并从 log_time 中删除确定性趋势,我们剩下的是一个由零组成的向量,因为 log(x) — log(x) = 0,即我们仍然有一个完全确定性的信号。这意味着我们陷入了困境——我们无法将完全确定性的变量 log_time 转换为随机变量,因此我们无法使用 Engle 和 Granger 的框架。
了解协整分析中完全确定性变量的问题有多大的另一种方法是考虑平稳性检验(例如迪基-富勒检验)如何处理它。让我们考虑最简单的情况(其中 y 是感兴趣的变量,rho 是要估计的系数,u 是假设为白噪声的误差项):
应该发生什么?对于 t 的所有值,误差项 u_{t} 均为 0,因为我们没有随机分量 — 不需要误差。但由于 log_time 是时间的非线性函数,因此 rho 的值也必须取决于时间。
对于随机变量,该模型更有用,因为变量 rho 捕获了先前随机值的记忆程度。但如果没有随机值,这个模型就没有意义。
其他类型的测试也存在与确定性变量相同的问题。
因此,完全确定性变量不属于协整分析。或者换句话说:协整分析不适用于确定性信号,并且如果其中一个信号是确定性的,则协整分析是一种声称虚假关系的不合时宜的工具。
怎么办? 协整仅在两个均为 I(d) 的变量之间定义,其中 d 至少等于 1。我们已经证明 log_time 是一个完全确定性变量,不能在平稳性检验中使用。我们不能说 log_time 是 I(0)、I(1) 还是 I(6)。此外,log_price 也不是 I(1),而是趋势平稳的。
log_time 和 log_price 之间未定义协整这一事实是否意味着基于时间的幂律在统计上无效或虚假?
在任何适当的统计分析中使用混合确定性变量和趋势平稳变量都是完全有效的。正如我们的批评者试图相信的那样,协整并不是统计关系分析的中心点。
所以协整是不可能的。但平稳性分析可能仍然有一席之地应用于幂律模型。让我们进一步探讨一下。
我们之所以首先对输入变量之间进行协整分析,是因为我们希望找到两者的平稳线性组合。没有根本原因说明为什么不可能将确定性变量 (log_time) 和趋势平稳变量 (log_price) 组合起来以获得平稳变量。因此,我们可以简单地对残差进行平稳性测试,而不是寻找严格意义上的协整(因为残差只是两个输入信号的线性组合)。如果残差是平稳的,即使我们没有严格遵循恩格尔-格兰杰协整检验,我们也会找到平稳的线性组合(这是协整的目标)。
更深入的研究 James G. MacKinnon在他的论文“协整检验的临界值”[3] 中准确地解释了这一点:协整检验(Engle Granger 检验)与残差的平稳性检验(DF 或 ADF 检验)是一样的,如果“协整”回归”(将 log_time 链接到 log_price 的回归)已经执行:
MacKinnon 重复了这一说法:如果连接 log_time 和 log_price 的参数是先验已知的 ,则可以跳过 Engle Granger 协整检验,而是可以对残差执行三种常见风格之一的平稳性检验(DF 或 ADF 检验) :
因此,我们可以使用两种方法中的任何一种,除了生成的检验统计量之外,它们是相同的:
将 log_time 拟合到 log_price 并计算残差(误差)。根据该残差,计算 DF 或更好的 ADF 检验。由此产生的统计数据告诉我们残差是否平稳。
假设 log_time 和 log_price 为 I(1),并运行 Engle-Granger 协整检验。得到的统计数据还告诉我们残差是否平稳。
对于 ADF 测试,使用 python 的statsmodels.tsa.stattools.adfuller函数;对于 Engle-Granger 测试,我们使用statsmodels.tsa.stattools.coint。对于这两个函数,我们使用不使用常数的风味(随着时间的推移没有恒定的漂移),因为我们的残差不应该包含随着时间的推移恒定的漂移(因为这意味着随着时间的推移,模型开始过度或低估价格)。
我们写道,ADF 和 Engle-Granger 检验是等效的,但这并不完全正确:它们不会产生相同的检验统计量。Engle-Granger 协整检验假设 N=2 个随机变量,而 ADF 检验假设 N=1 个随机变量(N 是自由度的度量)。一个随机变量可以受到另一个随机变量或确定性变量的影响,但确定性变量不能受到随机变量的影响。因此,在我们的例子中(只有一个确定性变量 log_time),ADF 测试返回的统计数据(假设 N=1 随机变量)是首选。原则上,Engle-Granger 和 ADF 检验可能不一致,但实际上,基于时间的模型并非如此。如下图所示,结论是一样的:我们得到了一个平稳残差向量。
两项测试最初均未指示平稳残差,这是正常的。这是因为残余信号中存在低频分量,可能会被误认为是非平稳信号。只有随着时间的推移,残差均值才会明显恢复并且实际上是静止的。
S2F 和长期股指价格 S2F 模型似乎已被普遍忽视,因为严格意义上的协整被证明是不可能的,其原因与基于时间的幂律相似:(部分)确定性输入变量。然而,模型产生的残差看起来非常稳定。
事实上,Engle-Granger 协整检验和 ADF 平稳性检验(首选,因为有一个确定性变量和一个随机变量)都产生非常接近 0 的 p 值。因此,不应排除 S2F 模型“缺乏协整”的基础(实际上意味着“缺乏平稳性”)。
然而,我们在 2020 年初指出,还有其他迹象表明 S2F 模型不应该成立。我们预测 BTCUSD 价格将低于 S2F 模型的预测,事实证明这一预测是有先见之明的。
查看长期股价指数与时间的关系也很有趣(这里是没有再投资股息的标准普尔 500 指数)。众所周知,主要股票市场指数平均以7%左右的指数速度增长。事实上,我们通过指数回归证实了这一点。
这里我们再次有一个确定性变量(时间)。Engle Granger 协整检验产生约 0.025 的 p 值,ADF 检验(首选)产生约 0.0075 的 p 值(但这些值高度依赖于选择的确切时间段)。再次是平稳残差。股票价格的指数时间趋势是有效的。
影响 S2F 模型最初因其良好的计量经济学基础(特别是协整的存在)而受到高度赞扬(尤其是 Marcel Burger 和 Nick Emblow)。随着潮流的转变,人们发现 S2F 模型无法存在协整(严格意义上的),Marcel 和 Nick 都跳槽并宣布 S2F 模型无效。看来,这次事件之后,人们对S2F模型的看法也发生了变化。埃里克·沃尔(Eric Wall)对事件的转变做了精彩的简短总结。
我们已经解释过,并且计量经济学文献(MacKinnon [3])也同意我们的观点,即协整性和平稳性几乎可以互换使用(统计值除外)。利用这一见解,我们发现 S2F 模型在协整/平稳性方面没有任何问题,因此因为假设缺乏协整而改变对 S2F 模型的看法是错误的。我们同意S2F 模型是错误的,但它的错误除了缺乏协整之外还有其他原因。
比特币基于时间的幂律因其缺乏协整性而受到批评,据称将 log_time 和 log_price 之间的关系标记为虚假关系。我们已经证明,比特币基于时间的幂律具有明显静止的残差,因此我们批评者的推理路线是没有意义的。
比特币基于时间的幂律模型是有效、稳定和强大的。一如既往。