Методы для проверки кода правильно выполняет формулу сигма - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь написать эту формулу

enter image description here

в python для оценки данных моего временного ряда: mean_30_sec_of_pulse.Краткий справочный материал, чтобы помочь с этим, mean_30_sec_of_pulse - это временной ряд данных сердечного ритма, которые усреднялись каждые тридцать секунд.В формуле счетчик i ссылается на каждую минуту, поэтому каждое другое значение в переменной 30 секунд.«Hk+i former» и «Hk+i latter» - это значения частоты сердечных сокращений за первые и последние 30 секунд временного интервала (k+i).q - экспериментальное значение, я использовал q=4, как показано ниже

У меня возникают трудности с проверкой / подтверждением того, что я правильно представляю эту формулу.

minute = 0
R_values = np.array([])
for k in range(1,len(mean_30_sec_of_pulse),2):
    #print(k)
    minute += 1

    q = 4
    q_s = np.arange(q*-1,q+1,1) #an array from -q to q 
    q_s = np.delete(q_s,q)  #deletes the zero

    Absolute_difference = np.array([])
    for i in q_s:       
        H_subscript = minute+i
        #print(H_subscript)
        thirty_sec_indexer = ((H_subscript*2)-1)
        if thirty_sec_indexer-1 < 0:
            continue
        if thirty_sec_indexer+1 > len(mean_30_sec_of_pulse):
            continue


        H_later = mean_30_sec_of_pulse[thirty_sec_indexer-1]
        H_former = mean_30_sec_of_pulse[thirty_sec_indexer+1]
        Difference = H_former-H_later
        Abs_diff_iterative = abs(Difference)
        Absolute_difference = np.append([Absolute_difference],[Abs_diff_iterative])
        Sum_of_differences = np.sum(Absolute_difference)
        R_value_iterative = (1/((2*q)+1))*Sum_of_differences
        #print(H_former)
        #print(H_later)
    R_values = np.append([R_values],[R_value_iterative])
...