Что не так с алгоритмом экспоненты ХерстаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Что не так с алгоритмом экспоненты Херста

Сообщение Anonymous »

Я написал функцию для расчета показателя Херста. Я решил протестировать свою функцию с помощью серии «случайных блужданий».
difs = np.random.normal(0, 1, 100000)
series = np.cumsum(difs)

По некоторым данным, показатель Херста для рядов случайных блужданий должен быть примерно равен 0,5. Однако все, что я получил, это H = 1. Что-то не так с моей функцией или я просто что-то неправильно понял? Буду признателен за любые пояснения.
Функция для расчета показателя Херста:
def rs(series: np.ndarray):
n, m = 0, 0
shape = series.shape
if len(shape) == 1:
m = 1
n = shape[0]
series = series.reshape(-1, 1)
else:
n, m = shape
result = []
Hs = []
for col in range(m):
scales = utils.get_scales(n)
rs_values = []
for scale in scales:
current_rs_values = []
for i in range(n//scale):
segment = series[i*scale:(i + 1)*scale, col]
mean = segment.mean()
corr_segment = segment - mean
cum_dev = np.cumsum(corr_segment)
R = np.max(cum_dev) - np.min(cum_dev)
S = np.std(corr_segment)
current_rs_values.append(R/S)
rs = np.mean(current_rs_values)
rs_values.append((log(scale), log(rs)))
result.append(np.array(rs_values))
H, _ = np.polyfit(result[-1][:,0], result[-1][:,1], 1)
Hs.append(H)
return Hs, np.array(result)

Там я использую get_scales, который я написал:
def get_scales(n: int):
scales = np.logspace(np.log10(4), np.log10(n//2), 30, dtype='int')
scales = np.unique(scales)
return scales


Подробнее здесь: https://stackoverflow.com/questions/792 ... -algorithm
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»