Рассчитать, сколько выборок было улучшено в соответствии с минимальным порогом или доверительным интервалом в данном наборе по сравнению с другим набором? - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть следующий фрейм данных:

ID      VAL1    VAL2
Q2241   0.3333  0.3353
Q2242   0.5     0.5
Q2243   0.3333  0.3333
Q2244   0.2137  0.4792
Q2245   0.1429  0.2
Q2246   0.5     0.5
Q2247   0.4167  0.6667
Q2248   1       1
Q2249   0.125   0.0909
Q2250   0.2     0.2
Q2251   0.325   0.2667
Q2252   0.1667  0.2
Q2253   0.3333  0.25
Q2254   0.45    0.8333
Q2255   0.3333  0.5
Q2256   1       1
Q2257   0.5     0.51
Q2258   0.3929  0.3333
Q2259   0.3611  0.625

Есть ли способ правильно рассчитать количество выборок (ID), где VAL2 значительно выше / ниже, чем VAL1 в данномdataframe.Я ищу что-то вроде t-критерия , где мера дает результаты, подобные следующему примеру:

Win Tie Loss        
64  36  137

где:

Win: number of IDs where VAL2 is higher than VAL1 with some confidence interval  
Tie: number of IDs where VAL2 ~ VAL1 (no significant difference, 0.0001 for example) 
Loss: number of IDs where VAL2 is lower than VAL1 with some confidence interval

1 Ответ

0 голосов
/ 24 ноября 2018
tol = 0.0001
win = (df.VAL2 > (df.VAL1 + tol)).sum()
loss = (df.VAL2 < (df.VAL1 - tol)).sum()
tie = ((df.VAL1 - df.VAL2).abs() <= tol).sum()

df = pd.DataFrame([{'Win': win, 'Tie':tie, 'Loss': loss}])
print (df)
#    Loss  Tie  Win
# 0     4    6    9
...