rstanarm - линейная смешанная модель занимает слишком много времени, чтобы соответствовать
Я подгоняю линейную смешанную модель с stan_lmer
с помощью
prior_fit_1 <- normal(location = c(2.0, 0.0, 0.0), scale = c(4.0, 9.0, 9.0))
fit_1 <- stan_lmer(response ~ predictor1 + predictor2 + predictor3
(1 + predictor1 + predictor2 | group1)
(1 | group2),
data = dat, refresh = -1,
prior = prior_fit_1, chains = 3, cores = 3, iter=500)
где набор данных dat
имеет>750 тыс. наблюдений. Я убедился, что предикторы и ответ примерно в одной шкале (сравнивая их минимальные и максимальные значения). Вот краткое изложение набора данных
response predictor1 predictor2 predictor3
count 773737 773737 773737 773737
mean 7.645656 4.766701 1.383317 4.147674
std 2.598273 4.388669 3.136783 2.274438
min -3.688879 0.000000 0.000000 0.000000
25% 5.991465 0.000000 0.000000 2.639057
50% 7.681076 5.799093 0.000000 4.143135
75% 9.383201 8.476134 0.000000 5.673323
max 21.416413 20.706678 24.214083 8.942984
Это говорит мне
Gradient evaluation took 3.71 seconds
1000 transitions using 10 leapfrog steps per transition would take 37100 seconds.
Adjust your expectations accordingly!
Gradient evaluation took 3.66 seconds
1000 transitions using 10 leapfrog steps per transition would take 36600 seconds.
Adjust your expectations accordingly!
Gradient evaluation took 4.06 seconds
1000 transitions using 10 leapfrog steps per transition would take 40600 seconds.
Adjust your expectations accordingly!
так что в худшем случае для выполнения 1000 итераций в цепочке потребуется ~12 часов. Модель работает уже 12 часов, и я немного удивлен, что она еще не закончена, потому что я выполняю только 500 итераций на цепочку.
Любые предложения относительно того, почему это и как я могу ускорить это?
Спасибо за помощь