我试图对 320,000 行数据(6 个变量)运行逻辑回归。对数据样本 (10000) 的逐步模型选择给出了一个相当复杂的模型,具有 5 个交互项:Y~X1+ X2*X3+ X2*X4+ X2*X5+ X3*X6+ X4*X5
. The glm()
函数可以用 10000 行数据拟合该模型,但不能用整个数据集 (320,000) 拟合。
Using 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 行)拟合相同的模型。
以前有人遇到过这个问题吗?还有其他方法可以使用大数据运行复杂的逻辑模型吗?