Запуск завантаження - це метод перекомпонування, який дозволяє оцінити розподіл вибірки коефіцієнтів регресії і, таким чином, обчислити стандартні помилки / довірчі інтервали ваших коефіцієнтів регресії. Ця публікація має приємне пояснення. Для обговорення того, скільки реплікацій вам потрібно, перегляньте цю публікацію.
- Непараметрична завантажувальна програма повторно проводить вибірки і випадковим чином малює ваші спостереження із заміною (тобто одні спостереження проводяться лише один раз, інші кілька разів, а інші взагалі ніколи), потім обчислюють логістичну регресію і зберігають коефіцієнти. Це повторюєтьсянразів. Таким чином, ви отримаєте 10 000 різних коефіцієнтів регресії. Ці коефіцієнти 10 000 можуть бути використані для обчислення їх достовірності. Оскільки використовується генератор псевдовипадкових чисел, ви можете просто встановити насіння на довільне число, щоб забезпечити кожен раз такі самі результати (див. Приклад нижче). Щоб дійсно мати стабільні оцінки, я б запропонував більше 1000 реплікацій, можливо, 10 000. Ви можете запустити завантажувальний механізм кілька разів і побачити, чи змінюються оцінки сильно, чи будете ви робити 1000 чи 10 000 реплікацій. Простий англійською мовою: ви повинні робити реплікації до досягнення конвергенції. Якщо ваші оцінки завантаження відрізняються між вашими оцінками та спостережуваною єдиною моделлю, це може означати, що спостережувана модель не відображає належним чином структуру вашої вибірки.
boot
R
, наприклад, викладає "упередженість", яка є різницею між коефіцієнтами регресії вашої єдиної моделі та середнім значенням зразків завантажувальної програми.
- Виконуючи завантажувальну програму, вас цікавить не один зразок завантаження, а розподіл статистики (наприклад, коефіцієнти регресії) на, скажімо, 10'000 зразків завантажувальної програми.
- Я б сказав, що 10'000 краще, ніж 1000. З сучасними комп’ютерами це не повинно створювати проблем. У наведеному нижче прикладі, щоб взяти 10 000 зразків, моєму ПК знадобилося близько 45 секунд. Це залежить від розміру вашої вибірки. Чим більший розмір вашої вибірки, тим більшою має бути кількість повторень, щоб забезпечити врахування кожного спостереження.
- Що ви маєте на увазі "результати змінюються щоразу"? Нагадаємо, що на кожному етапі завантаження спостереження знову додаються із заміною. Тому, швидше за все, ви отримаєте дещо інші коефіцієнти регресії, оскільки ваші спостереження відрізняються. Але, як я вже говорив: вас не дуже цікавить результат однієї вибірки завантаження. Коли кількість реплікацій достатньо висока, завантажувальний пристрій повинен отримувати дуже схожі довірчі інтервали та точні оцінки кожного разу.
Ось приклад у R
:
library(boot)
mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
head(mydata)
mydata$rank <- factor(mydata$rank)
my.mod <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
summary(my.mod)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.989979 1.139951 -3.500 0.000465 ***
gre 0.002264 0.001094 2.070 0.038465 *
gpa 0.804038 0.331819 2.423 0.015388 *
rank2 -0.675443 0.316490 -2.134 0.032829 *
rank3 -1.340204 0.345306 -3.881 0.000104 ***
rank4 -1.551464 0.417832 -3.713 0.000205 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# Set up the non-parametric bootstrap
logit.bootstrap <- function(data, indices) {
d <- data[indices, ]
fit <- glm(admit ~ gre + gpa + rank, data = d, family = "binomial")
return(coef(fit))
}
set.seed(12345) # seed for the RNG to ensure that you get exactly the same results as here
logit.boot <- boot(data=mydata, statistic=logit.bootstrap, R=10000) # 10'000 samples
logit.boot
Bootstrap Statistics :
original bias std. error
t1* -3.989979073 -7.217244e-02 1.165573039
t2* 0.002264426 4.054579e-05 0.001146039
t3* 0.804037549 1.440693e-02 0.354361032
t4* -0.675442928 -8.845389e-03 0.329099277
t5* -1.340203916 -1.977054e-02 0.359502576
t6* -1.551463677 -4.720579e-02 0.444998099
# Calculate confidence intervals (Bias corrected ="bca") for each coefficient
boot.ci(logit.boot, type="bca", index=1) # intercept
95% (-6.292, -1.738 )
boot.ci(logit.boot, type="bca", index=2) # gre
95% ( 0.0000, 0.0045 )
boot.ci(logit.boot, type="bca", index=3) # gpa
95% ( 0.1017, 1.4932 )
boot.ci(logit.boot, type="bca", index=4) # rank2
95% (-1.3170, -0.0369 )
boot.ci(logit.boot, type="bca", index=5) # rank3
95% (-2.040, -0.629 )
boot.ci(logit.boot, type="bca", index=6) # rank4
95% (-2.425, -0.698 )
Запуск-вихідний показ відображає оригінальні коефіцієнти регресії ("оригінал") та їх зміщення, що є різницею між вихідними коефіцієнтами та завантаженими. Він також дає стандартні помилки. Зауважте, що вони трохи більше, ніж початкові стандартні помилки.
З довірчих інтервалів зазвичай перевагу коригують зміщення ("bca"). Це дає довірчі інтервали за початковою шкалою. Для довірчих інтервалів для коефіцієнтів шансів просто експонуйте довірчі межі.