随机过程:布朗运动

1.一维布朗运动

一维布朗运动是指一个粒子(也可以是分子或颗粒)在一维空间中随机运动的现象。它是由英国生物学家罗伯特·布朗于1827年观察到的,被称为布朗运动。
在一维布朗运动中,粒子在时间的推动下,沿着一条直线上的不同方向进行随机运动,其路径呈现出无规律的波动。这是由于粒子与周围分子的碰撞和动能转移引起的。
一维布朗运动经常用于描述微观尺度下物质的扩散现象,例如液体或气体中微小颗粒的运动。它是一个随机过程,无法精确地预测粒子的位置,但可以通过统计方法描述其平均行为。以一维标准布朗运动 B ( t ) B(t) B(t)为例,它满足:

  • 独立增量:设时间 t 1 < t 2 < t 3 t_1t1<t2<t3,那么增量 B ( t 3 ) − B ( t 2 ) B(t_3)-B(t_2) B(t3)B(t2)独立于 B ( t 1 ) B(t_1) B(t1)
  • 稳定增量和正态性:设时间 t 1 < t 2 t_1t1<t2,那么增量 B ( t 2 ) − B ( t 1 ) B(t_2)-B(t_1) B(t2)B(t1)服从均值为0,方差为 t 2 − t 1 t_2-t_1 t2t1的正态分布。
  • B ( t ) B(t) B(t)几乎处处连续。
  • B ( 0 ) = 0 B(0)=0 B(0)=0.
    对于一个一维布朗运动,对其取一阶差分 X ( n ) = B ( n + 1 ) − B ( n ) X(n)=B(n+1)-B(n) X(n)=B(n+1)B(n),可以发现 X ( n ) X(n) X(n)实际上是一串独立的标准正态分布,其自相关函数为 R ( k ) = E { [ X ( n + k ) − μ ] [ X ( n ) − μ ] } σ 2 R(k)=\frac{E\{[X(n+k)-\mu][X(n)-\mu]\}}{\sigma ^2} R(k)=σ2E{[X(n+k)μ][X(n)μ]}其中, μ \mu μ是它们公共 的均值, σ \sigma σ是它们公共的方差。
    一维布朗运动差分后的序列的自相关函数是一个在0点处为1,其他地方为0的函数,而其他的平稳时间序列的自相关函数,在0点处一定是1,在0以外的其他地方未必是0,但也一定是一个[-1,1]之间的数。

2.分布式布朗运动

分布式布朗运动是一种在分布式计算环境中模拟布朗运动的方法。它结合了布朗运动的随机性和分布式计算的特点,用于研究分布式系统中各个节点的行为。它与布朗运动的不同点在于它的增量不再独立,而是具有某种相关性,对于一个布朗运动 B H ( t ) B_H(t) BH(t),有 E [ B H ( t ) B H ( s ) ] = 1 2 ( ∣ t ∣ 2 H + ∣ s ∣ 2 H − ∣ t − s ∣ 2 H ) E\left[ B_H\left( t \right) B_H\left( s \right) \right] =\frac{1}{2}\left( |t|^{2H}+|s|^{2H}-|t-s|^{2H} \right) E[BH(t)BH(s)]=21(t2H+s2Hts2H)如果令 t = s t=s t=s,则 E [ B H ( t ) 2 ] = t 2 H E[B_H(t)^2]=t^{2H} E[BH(t)2]=t2H,所以分布式布朗运动的方差就是 t 2 H t^{2H} t2H。其中,H被称为赫斯特指数,以英国水文学家哈罗德 ⋅ \cdot 赫斯特命名。利用赫斯特指数可以分析时间序列的自相关和自相似性。

  • 当H=1/2时,分布式布朗运动会退化成普通的布朗运动,增量间是相互独立的。
  • 当H>1/2时,增量间会呈现正相关性,从而导致扩散速度显著高于布朗运动。
  • 当H<1/2时,增量间会呈现负相关性,从而导致扩散速度显著慢于布朗运动。

仔细分析股票价格的走势可以发现,股票每天的价格波动很多时候具有很强的相关性。比如当股票大涨时,通常是正相关的,当股票下跌时,通常是负相关的。所以判断赫斯特指数对于分析股票市场的相关性具有重要意义。估计赫斯特指数的方法有很多,本文采用均平方位移法
假定有一个时间序列, { X 1 , X 2 , ⋯   , X n } \{X_1,X_2,\cdots,X_n\} {X1,X2,,Xn}服从某种分布式布朗运动,那么就有 E [ ( X j + k − X j ) 2 ] = σ 2 k 2 H E[(X_{j+k}-X_j)^2]=\sigma^2k^{2H} E[(Xj+kXj)2]=σ2k2H W k = 1 n − k ∑ j = 1 n − k ( X j + k − X j ) 2 W_k=\frac{1}{n-k}\sum_{j=1}^{n-k}{\left( X_{j+k}-X_j \right) ^2} Wk=nk1j=1nk(Xj+kXj)2 W k = σ 2 k 2 H W_k=\sigma^2k^{2H} Wk=σ2k2H两边同时取对数有
l o g W k = l o g σ 2 + 2 H l o g k logW_k=log\sigma^2+2Hlogk logWk=logσ2+2Hlogk l o g k logk logk看成一个变量, l o g σ 2 log\sigma^2 logσ2看成常数项,那么上式就是一个线性方程,2H就是斜率,可以通过线性回归来估算H的值。
下面用python来实现均平方位移法估计赫斯特参数。

import numpy as np

def Hst_estimate(ts):
    kmax = int(np.floor(len(ts)/2))
    if kmax < 2:
        return -1
    y = np.matrix(np.zeros((kmax, 1)))
    x = np.matrix(np.ones((kmax, 2)))
    ts = np.array(ts)
    for k in range(kmax):
        y[k] = np.log(np.mean((ts[k+1:]-ts[:-k-1])**2))
        x[k, 1] = 2 * np.log(k+1)
    beta = np.linalg.inv(x.T.dot(x)).dot(x.T).dot(y)
    H = beta[1]
    return H

下面给定不同的时间序列,来计算赫斯特参数的值:

ts = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(Hst_estimate(ts))

计算结果:[[1.]]

ts = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,10,9]
print(Hst_estimate(ts))

计算结果:[[0.97359599]]

ts = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,10,9,8,7,6,7,8,9,10]
print(Hst_estimate(ts))

计算结果:[[0.69830922]]

通过比较可以发现,当时间序列出现递减后,赫斯特指数也会出现下降,当然,实际的股票市场不可能会一直递增的,而是一直波动的,所以其赫斯特指数正常情况下应该不会很大,那么H大于多少算大呢?这个就得考虑概率分布问题了,具体如何考虑感兴趣的读者可自行研究。


你可能感兴趣的:(金融量化分析,金融,算法,python)