【发布时间】:2016-01-05 03:32:37
【问题描述】:
我已经看到了几个这个错误的案例,但它们似乎都没有解决或适用于我的情况。
我正在使用biglm 构建逻辑回归模型。
我有一个包含约 250 个变量和超过一百万行的 data.frame。
由于bigglm() 不能使用点符号来选择模型中的所有变量,因此我正在构建我的公式,例如this。
所以如果f 是我的公式,df 是我的数据框,那么我的模型如下所示:
fit <- bigglm(f, data = df, family=binomial(link="logit"), chunksize=100, maxit=10)
我得到了错误:variable lengths differ (found for 'x')
当我检查x 的长度时,它与df 的长度完全相同。
其他 StackOverflow 问题似乎表明公式的构建方式可能存在问题。或者可能是biglm?的问题
【问题讨论】:
-
也许您可以编辑您的问题以添加公式?否则我们就没有什么可合作的了。
-
@BryanHanson,公式包含 250 个变量名。也许我可以添加它的缩短版本?我添加了我用来创建它的方法,希望它有助于理解它的外观。你有什么建议?
-
嗯...所有变量的长度都相同吗?没有缺失值?这可能会导致您的错误。我想您可以通过对自变量进行二进制搜索来解决问题(即仅使用变量的前半部分,如果没有错误,请尝试使用第二半部分,然后将有问题的一半分成两部分进行测试,然后重复直到你找到了错误的变量)。
-
我注意到了一些有趣的事情。
x始终是公式 (x[1]) 中的第一个变量。如果我为 NULLx,则 x[2] 变为 x[1],因此如果有意义,则错误现在从另一个公式中显示variable lengths differ (found for 'x')for x[2]。所有变量都具有相同的长度,数据帧中肯定有 NA,但这是一个问题吗?我不想删除所有包含 NA 的行,因为它们可能包含其他有价值的信息 -
我刚刚安装了这个包,
?bigglm对NA的处理方式非常神秘(你可以尝试传递na.omit = TRUE,它可能会失败并被底层函数接受)。此外,您可以尝试na.omit(your data frame)并使用它,如果仅用于故障排除。否则,我不确定该尝试什么。
标签: r regression