1.一维布朗运动
一维布朗运动是指一个粒子(也可以是分子或颗粒)在一维空间中随机运动的现象。它是由英国生物学家罗伯特·布朗于1827年观察到的,被称为布朗运动。
在一维布朗运动中,粒子在时间的推动下,沿着一条直线上的不同方向进行随机运动,其路径呈现出无规律的波动。这是由于粒子与周围分子的碰撞和动能转移引起的。
一维布朗运动经常用于描述微观尺度下物质的扩散现象,例如液体或气体中微小颗粒的运动。它是一个随机过程,无法精确地预测粒子的位置,但可以通过统计方法描述其平均行为。以一维标准布朗运动
B
(
t
)
B(t)
B(t)为例,它满足:
- 独立增量:设时间 t 1 < t 2 < t 3 t_1<t_2<t_3 t1<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_1<t_2 t1<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 t2−t1的正态分布。
- 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(∣t∣2H+∣s∣2H−∣t−s∣2H)如果令 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+k−Xj)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=n−k1j=1∑n−k(Xj+k−Xj)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大于多少算大呢?这个就得考虑概率分布问题了,具体如何考虑感兴趣的读者可自行研究。