非平稳过程的一个例子就是随机漫步,例如物理学中的布朗运动或粒子扩散:随机漫步中的每个新值都取决于前一个值加上一个随机数。非平稳过程的属性(如均值和方差)会随时间而改变,或者没有定义。非平稳过程为I(1)或更高,但通常为I(1)。源于非平稳过程的时间序列会随着时间的推移而漂移,即倾向于偏离任何固定值。
符号I(1)指的是一个时间序列需要差分(differenced)多少次才能达到静态。差分是指求取时间序列中的值与其前值之间的差值。这大致相当于求导数。平稳时间序列已经是平稳的它需要经过0次差分变成平稳的,因此它是I(0)。I(1)时间序列需要经过一次差分才能达到平稳。
上图的绘制方式是,通过对橙色时间序列进行一次差分,得到蓝色时间序列。等价地,橙色时间序列是通过对蓝色时间序列进行积分得到的。
单位根过程(unitrootprocess)指的是自回归模型(autoregressivemodels)(更准确地说是AR(1)类型),其rho参数被估计为等于1。虽然我们可以交替使用rho和根,但rho指的是过程的真实值,而这个值通常是未知的,需要进行估计。估计结果就是根值。
rho的值表示进程对先前值的记忆程度。u的值指的是误差项,假定为白噪声。
单位根过程是随机游走过程,属于非平稳过程。根或rho值低于1的过程往往不会漂移,因此是平稳的。即使是接近(但低于)1的值,从长期来看也倾向于均值回归(而不是漂移)。因此,单位根过程的特殊性在于它与根值非常接近1的过程有着本质的不同。
两个随机变量(本例中为时间序列)之间存在或不存在协整性(协整关系)。要使这对变量具有协整关系,两者必须具有相同的积分阶次,并且都是非平稳的。此外(这是关键部分),两个时间序列的线性组合必须是平稳的。
如果两个时间序列是非平稳的,那么线性组合(在这种情况下,我们只需选择两个时间序列的差值)通常也是非平稳的:
如果两个非平稳时间序列在长期内以同样的方式漂移,那么线性组合(这里我们选择r2-0.5*r1)可能是平稳的:
Tu等人[1]直观地描述了协整关系:
时间序列之间存在协整关系意味着它们在长期内具有共同的随机漂移。
为什么两个非平稳时间序列的线性组合是平稳的?假设我们有两个时间序列x和y,我们试图根据x建立y模型:y=a+b*x。我们的模型误差由x和y的线性组合给出:模型误差error=y-a-b*x。我们希望模型误差是平稳的,即不会长期漂移。如果模型误差长期漂移,那就意味着我们的模型不好,不能做出准确的预测。
在Engle和Granger[2](Granger是协整概念的发明者,曾获2003年诺贝尔经济学奖)的《协整与误差修正:表示、估计和检验》一文中,定义了协整的关键概念和检验方法。该论文的关键是假设时间序列是随机的,没有确定性成分(我们稍后再谈)。
如果存在确定性趋势,则应在分析前将其去除:
在基于时间的幂律中,我们有两个变量:
1.log_time:创世区块之后天数的对数
2.log_price:价格的对数
根据Engle和Granger的定义,两个变量都必须是随机变量,没有确定性成分,而且必须是非平稳的。此外,我们必须能够找到这两个变量的静态线性组合。否则,这两个变量之间就不存在协整关系。
在深入探讨细节之前,让我们先展示几张模型数据本身的图表,其中不包含任何平稳或协整概念。请注意,基于时间的幂律产生的拟合效果直观看来相当不错。残差向量(residualsvector)并没有立即显示出漂移。
此外,该模型还显示出卓越的样本外性能(见下文)。出色的样本外性能并不意味着该模型是虚假的基于虚假相关性的模型应该只是虚假的,即无法准确预测。检验样本外性能的方法是在有限的数据量(截至某个日期)上拟合模型,并对模型未拟合的时间段进行预测(类似于交叉验证)。在样本外期间,观察到的价格经常与建模价格交叉,观察到的价格的最大偏离也没有系统性地进一步远离建模价格。
我们可以更加严格,观察模型发布之后(2019年9月)的表现,因为模型发布后,我们不可能有任何作弊行为我们不能事后更改模型。
如果有人指责该模型只是基于一种虚假的相关性,那么该模型的预测能力应该已经让人感到怀疑了。
要使log_time和log_price之间可能存在协整关系,这两个变量必须是同阶随机变量,且至少是1阶随机变量。
log_price是平稳时间序列吗?Nick使用未指定类型的ADF检验(非平稳性检验)和KPSS检验(平稳性检验)得出结论,log(price)毫无疑问是非平稳的,因此是I(1)或更高。MarcelBurger通过目测得出结论,它是I(1)。TimStolte提出了一个更有趣的观察:他对不同时期进行了ADF检验(未指定类型),并指出情况并非一目了然:因此,我们无法坚定地拒绝非平稳性,并得出log-price存在非平稳性迹象的结论。
让我们自己跑一下分析。与TimStolte类似,我们将在不同的时间窗口进行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,regression参数使用n、c和ct(相当于维基百科上面描述的三种类型)。在下图中,我们显示了测试返回的p值(统计显著性的衡量标准),p值越小,表示平稳的可能性越大(通常使用的临界值为0.05)。
我们注意到,第一种方法(绿线)得出的结论是,log_price时间序列是非平稳的。第三种检验方法(橙色线)的结论相同,但不那么果断。有趣的是,允许常数项的检验(蓝线)无法判定时间序列是否平稳(很可能Tim也使用了带有常数项的ADF检验)。为什么这三个版本有如此大的差异,特别是为什么带有常数项的版本不能排除log_price是平稳的?
只有一种解释:在log_price差分中仅使用常数项(导致log_price中的线性项)可以很好地拟合时间序列,从而产生看起来几乎是平稳的残差信号(尽管起点和终点的偏差相当大)。完全不在log_price中使用确定性趋势,或使用二次项确定性效应,效果都远不如前者。
这已经给了我们一个强烈的暗示,即时间与log_price之间存在关系。事实上,如果使用常数项进行的ADF检验得出的结论是信号是平稳的,这就意味着线性时间项能够很好地近似log_price,从而得到平稳的残差。获得平稳的残差是可取的,因为它是非虚假关系的标志(即我们找到了正确的解释变量)。线性时间趋势并不完全符合我们的要求,但我们似乎正在接近它。
我们的结论与MarcelBurger的结论明显不同,他(在另一篇文章中)说:
以上就是什么是比特币时间幂律模型?比特币时间幂律模型对比特币预测的全部内容,望能这篇什么是比特币时间幂律模型?比特币时间幂律模型对比特币预测可以帮助您解决问题,能够解决大家的实际问题是非常好学习网一直努力的方向和目标。