У меня есть список вероятностных предсказаний человека-предсказателя и сопоставленный список правды.
sklearn.calibration.calibration_curve позволяет достаточно просто создать калибровочную кривую, но я не уверен, как рассчитать 95% -й доверительный интервал для каждой точки на графике.
Я пытался вручную вычислить это для каждой точки, используя binom_test
import statsmodels.api as sm
from sklearn.calibration import calibration_curve
calib_y, calib_x = calibration_curve(truth, my_forecast, n_bins=20)
levels=list(set(my_forecast))
levels.sort()
ci=[]
i=0
for my_prob in levels:
forecast_index=sum(np.where(my_forecast==my_prob))
n=len(forecast_index)
p=calib_y[i]
AA=sm.stats.proportion_confint(count=n*p, nobs=n, alpha=0.05, method='binom_test')
ci.append(AA)
i=i+1
# Transpose ci so it'll work with pyplot.errorbar
ci=np.transpose(ci)
Я получаю матрицу вывода, но не на 100% уверен, что это правильный способ сделать это.