Я пытался запустить логистическую регрессию на 320 000 строк данных (6 переменных). Пошаговый выбор модели на выборке данных (10000) дает довольно сложную модель с 5 элементами взаимодействия: Y~X1+ X2*X3+ X2*X4+ X2*X5+ X3*X6+ X4*X5
. Функция glm()
может соответствовать этой модели с 10000 строками данных, но не со всем набором данных (320 000).
Использование bigglm
для чтения фрагментов данных с SQL-сервера привело к ошибке, и я не мог понять результаты от traceback()
:
fit <- bigglm(Y~X1+ X2*X3+ X2*X4+ X2*X5+ X3*X6+ X4*X5,
data=sqlQuery(myconn,train_dat),family=binomial(link="logit"),
chunksize=1000, maxit=10)
Error in coef.bigqr(object$qr) :
NA/NaN/Inf in foreign function call (arg 3)
> traceback()
11: .Fortran("regcf", as.integer(p), as.integer(p * p/2), bigQR$D,
bigQR$rbar, bigQR$thetab, bigQR$tol, beta = numeric(p), nreq = as.integer(nvar),
ier = integer(1), DUP = FALSE)
10: coef.bigqr(object$qr)
9: coef(object$qr)
8: coef.biglm(iwlm)
7: coef(iwlm)
6: bigglm.function(formula = formula, data = datafun, ...)
5: bigglm(formula = formula, data = datafun, ...)
4: bigglm(formula = formula, data = datafun, ...)
bigglm
смог вписаться в меньшую модель с меньшим количеством условий взаимодействия. но bigglm
не смог соответствовать той же модели с небольшим набором данных (10000 строк).
Кто-нибудь раньше сталкивался с этой проблемой? Есть ли другой подход к запуску сложной логистической модели с большими данными?