Я работаю с двумя наборами данных, и по причинам воспроизводимости, я делюсь наборами данных здесь .
Чтобы было понятно, что я делаю - из столбца 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"}
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()
diff=quotient_times
plt.plot(diff,beta_value, ".", label=protname, color="blue")
plt.ylim(0, 1.0001)
plt.title(protname)
plt.xlabel("quotient_times")
plt.ylabel("quotient")
plt.legend()
plt.show()
Это дает следующие графики.
Data-V имеет коэффициент 0,8, когда quotient_times
меньше 3, а коэффициент остается 0,5, если quotient_times
равен
больше 3.
Data-R имеет постоянную quotient
0,5 независимо от значения quotient_times
На основании этого требования, как мы можем вычислить вероятность предыдущего quotient_times
и текущего quotient_times
, чтобы отличить Data-V
от Data-R
? Единственное место, где они отличаются, это то, где quotient_times
равно <=3.01
, тогда как оба имеют одно и то же значение, большее, чем quotient_times
из 3. Чтобы упростить вопрос, на основе Data-V, насколько вероятно, что Data- R> 0,5 ?