значение 5. Как мы можем измерить этот случай? Любая помощь должна быть оценена.

отаю с тремя простыми наборами данных и по причинам воспроизводимости, я делюсь набором данныхВот.

Чтобы было понятно, что я делаю - из столбца 2 я читаю текущую строку и сравниваю ее со значением предыдущей строки. Если оно больше, я продолжаю сравнивать. Если текущее значение меньше значения предыдущего ряда, я хочу разделить текущее значение (меньше) на предыдущее значение (больше). Соответственно следующий код:

import numpy as np
import scipy.stats
import matplotlib.pyplot as plt
import seaborn as sns

protocols = {}

types = {"Data-V": "data_v.csv", "Data-R": "data_r.csv", "Data-C": "data_c.csv"}

for protname, fname in types.items():
    col_time,col_window = np.loadtxt(fname,delimiter=',').T
    trailing_window = col_window[:-1] # "past" values at a given index
    leading_window  = col_window[1:]  # "current values at a given index
    decreasing_inds = np.where(leading_window < trailing_window)[0]
    quotient = leading_window[decreasing_inds]/trailing_window[decreasing_inds]
    quotient_times = col_time[decreasing_inds]

    protocols[protname] = {
        "col_time": col_time,
        "col_window": col_window,
        "quotient_times": quotient_times,
        "quotient": quotient,
    }
    plt.figure(); plt.clf()
    plt.plot(quotient_times, quotient, ".", label=protname, color="blue")
    plt.ylim(0, 1.0001)
    plt.title(protname)
    plt.xlabel("quotient_times")
    plt.ylabel("quotient")
    plt.legend()
    plt.show()

Из этого мы наблюдаем следующее.

Данные-V имеет дваquotient ценности, т.е.0.8 когдаquotient_times меньше 3 и0,5 когдаquotient_times больше 3.Данные-R, имеет только одинquotient значение0,5 независимо от того, что значениеquotient_times является.Данные-С имеет только одинquotient значение0.7 независимо от того, что значениеquotient_times является.

Из этого наблюдения я хочу измерить их вероятность (возникновение) при разныхquotient_times, Вот мой подход

occurrence_count_data_v = 0
possibility_count_data_v = 0
occurrence_count_data_r = 0
possibility_count_data_r = 0
occurrence_count_data_c = 0
possibility_count_data_c = 0


if "data_v".lower() in fname:
    for index_v in range(len(quotient)):
        if quotient_times[index_v] < 3:
            possibility_count_data_v += 1
            if quotient[index_v] > 0.5:
                occurrence_count_data_v += 1

    probability_data_v = float(occurrence_count_data_v) / possibility_count_data_v
    print(fname, "=",probability_data_v)

elif "data_r".lower() in fname:
    for index_r in range(len(quotient)):
        if quotient_times[index_r] < 3:
            possibility_count_data_r += 1
            if quotient[index_r] == 0.5:
                occurrence_count_data_r += 1
    probability_data_r = float(occurrence_count_data_r) / possibility_count_data_r
    print(fname, "=", probability_data_r) 

elif "data_c".lower() in fname:
    for index_c in range(len(quotient)):
        if quotient_times[index_c] < 3:
            possibility_count_data_c += 1
            if quotient[index_c] == 0.7:
                occurrence_count_data_c += 1
    probability_data_c = float(occurrence_count_data_c) / possibility_count_data_c
    print(fname, "=",probability_data_c) 

Выход

data_v.csv = 1.0 data_r.csv = 1.0 data_c.csv = 1.0

Это означает, что 100% каждого набора данных, гдеquotient_times меньше 3 и имеетquotient каждого из данных, как указано выше. Тем не менее, это учитывает каждый данные независимо. Как мы можем измерить возникновениеquotient для каждого данные против другого? Например, когдаquotient_times больше 3 какData-V а такжеData-R делить то же самоеquotient значение 5. Как мы можем измерить этот случай? Любая помощь должна быть оценена.

Ответы на вопрос(0)

Ваш ответ на вопрос