Я выбираю значения из распределения. Здесь показано, как создать доверительный интервал для заданных данных.
Я хочу продолжить выборку, пока доверительный интервал не станет меньше заданного интервала max_error
.Есть ли способ оценить, сколько еще образцов мне понадобится?
sample_list = []
max_error = 10
while True:
list.append(get_sample())
// See https://stackoverflow.com/a/34474255
interval = scipy.stats.t.interval(0.95, len(sample_list) - 1, loc=np.mean(sample_list), scale=scipy.stats.sem(sample_list))
estimated_error = abs(interval[1]-interval[0])/2
estimated_required_samples = ??? // How to calculate this?
print(f"{len(sample_list)}/{estimated_required_samples} measurements, mean: {mean(sample_list)} +/- {estimated_error}")
if estimated_error <= max_error:
return mean(sample_list)
Некоторая формула дана в Wikipedia , но она требует знания дисперсии, которая все еще оценивается, покавыборки.