hurst指数多维数据python代码
时间: 2023-07-23 07:22:36 浏览: 95
以下是计算多维数据的Hurst指数的Python代码示例:
```python
import numpy as np
from numpy.lib.stride_tricks import as_strided
def hurst(X):
"""
计算多维数据的Hurst指数
"""
N = X.shape[-1]
max_k = int(np.log2(N)) - 1
Y = np.zeros((max_k, N))
X2 = (X - X.mean(axis=-1, keepdims=True)).cumsum(axis=-1)
for k in range(max_k):
window_size = 2 ** k
slices = as_strided(X2, shape=(X2.shape[0], (N // window_size), window_size), strides=(X2.strides[0], X2.strides[-1] * window_size, X2.strides[-1]))
rescaled_range = np.mean(np.abs(np.diff(slices, axis=-1)), axis=(-2, -1)) / slices.std(axis=(-2, -1))
Y[k] = np.log2(rescaled_range)
p = np.polyfit(np.log2(2 ** np.arange(max_k)), Y, 1)
return p[0]
```
这个函数的输入参数 `X` 是一个多维数组,其中每一维代表一个时间序列。函数的返回值是一个标量,即所有时间序列的Hurst指数的平均值。
阅读全文