Я пытаюсь получить начальную загрузку и упаковку (агрегацию начальной загрузки) , поэтому я пытался провести некоторые эксперименты.Я загрузил в образец набора данных из Kaggle и попытался использовать метод начальной загрузки:
X = pd.read_csv("dataset.csv")
true_median = np.median(X["Impressions"])
B = 500
errors = []
variances = []
for b in range(1, B):
sample_medians = [np.median(X.sample(len(X), replace=True)["Impressions"]) for i in range(b)]
error = np.mean(sample_medians) - true_median
variances.append(np.std(sample_medians) ** 2)
errors.append(error)
Затем я визуализировал errors
и variances
:
fig, ax1 = plt.subplots()
color = 'tab:red'
ax1.set_xlabel('Number of Bootstrap Samples (B)')
ax1.set_ylabel('Bootstrap Estimate Error', color=color)
ax1.plot(errors, color=color, alpha=0.7)
ax1.tick_params(axis='y', labelcolor=color)
ax2 = ax1.twinx()
color = 'tab:blue'
ax2.set_ylabel('Bootstrap Estimate Variance', color=color)
ax2.plot(variances, color=color, alpha=0.7)
ax2.tick_params(axis='y', labelcolor=color)
fig.tight_layout()
plt.title("Relationship Between Bootstrap Error, Variance \nand Number of Bootstrap Iterations")
plt.show()
Это вывод графика:
Вы можете видеть, что ошибка и дисперсия уменьшаются с увеличением B
.Я пытаюсь найти какое-то математическое обоснование - есть ли способ вывести или доказать , почему дисперсия оценок начальной загрузки уменьшается при увеличении B?