Преобразовать формулу сигмы в набор данных Python - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь применить формулу, найденную в журнале, к моему набору данных.

Чтобы дать быстрый фон / контекст формулы, она применяется к временному ряду данных о частоте сердечных сокращений.Каждая точка данных во временном ряду сердечного ритма представляет в среднем 30 собранных измерений.Значения R (k) используются в гипнограммах и рассчитываются следующим образом:

https://i.imgur.com/a/B8lVaeY

где дискретное время для каждой 1 минуты (начиная с первой минуты записи и заканчиваяв последнем) определяется как k, «Hk + i прежний» и «Hk + i последний» представляют собой значения частоты сердечных сокращений из первых и последних 30 секунд временного интервала (k + i), и i представляет движение внутриокно (скользящее среднее) с размером 2q.q - экспериментальная величина, скажем, q = 5.

Я понимаю, что происходит в формуле, но изо всех сил пытаюсь применить эту математику к массиву.

1 Ответ

0 голосов
/ 22 апреля 2019

Формула представляет собой скользящее среднее по абсолютной разнице между H_former и H_latter.

Если вы не возражаете против панд, вот пример:

import numpy as np
import pandas as pd

# H_diff = H_former - H_latter
H_diff = np.arange(10, dtype=int)
# H_diff = array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
q = 2

# this line actually computes the MA
R = pd.Series(H_diff).abs().rolling(2*q+1, center=True).mean().values
# now R = array([nan, nan,  2.,  3.,  4.,  5.,  6.,  7., nan, nan])

Если выпредпочитаю придерживаться только NumPy, в этом вопросе есть пример: Как рассчитать скользящее среднее с использованием NumPy?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...