R/S计算的Hurst指数python全部代码,包括多维数据EXCEL的读取步骤代码,读取EXCEL数据代码要全要正确,谢谢
时间: 2024-03-11 16:49:31 浏览: 202
以下是计算Hurst指数的Python代码,包括读取Excel数据的步骤:
```python
import numpy as np
import pandas as pd
from scipy.signal import detrend
from statsmodels.tsa.stattools import acf
def hurst(input_ts):
"""计算Hurst指数"""
lags = range(2, 100)
tau = [np.sqrt(np.std(np.subtract(input_ts[lag:], input_ts[:-lag]))) for lag in lags]
poly = np.polyfit(np.log(lags), np.log(tau), 1)
return poly[0] * 2.0
def read_excel_data(file_path):
"""读取Excel数据"""
df = pd.read_excel(file_path)
data = df.values
return data
if __name__ == '__main__':
# 读取Excel数据
data = read_excel_data('data.xlsx')
# 计算Hurst指数
hurst_index = []
for i in range(data.shape[1]):
ts = detrend(data[:, i])
acf1 = acf(ts, nlags=len(ts), fft=True)
hurst_index.append(hurst(acf1))
print(hurst_index)
```
其中,`read_excel_data`函数用于读取Excel数据,需要将Excel文件路径作为参数传入,返回一个包含多维数据的NumPy数组。`hurst`函数用于计算Hurst指数,其中`input_ts`为输入的时间序列数据。在主函数中,我们先读取Excel数据,然后对每一列数据进行detrend处理,并计算出其自相关函数,最后利用`hurst`函数计算出Hurst指数并将其打印出来。
阅读全文