R bestglm函数的变量数量限制

R bestglm函数的变量数量限制,r,regression,glm,R,Regression,Glm,我试图在R中运行bestglm函数进行子集选择,如果我在函数中使用了15个以上的变量,则运行会立即失败。我在下面附上了一些示例代码(我知道这些模型对于这个数据集有太多的变量,我只是将这些模型作为一个示例包括在内): 第一个bestglm函数运行良好,但当我为总共16个功能添加一个附加变量时,第二个bestglm函数立即生成此错误消息:p=16。一定是正如@RomanLuštrik所说的,这是一个,大概是因为15个预测因子意味着有2^15=32768个候选模型,人们必须在某个地方停下来。。。据我所

我试图在R中运行
bestglm
函数进行子集选择,如果我在函数中使用了15个以上的变量,则运行会立即失败。我在下面附上了一些示例代码(我知道这些模型对于这个数据集有太多的变量,我只是将这些模型作为一个示例包括在内):


第一个
bestglm
函数运行良好,但当我为总共16个功能添加一个附加变量时,第二个
bestglm
函数立即生成此错误消息:
p=16。一定是正如@RomanLuštrik所说的,这是一个,大概是因为15个预测因子意味着有2^15=32768个候选模型,人们必须在某个地方停下来。。。据我所知,在运行GLM时,无法绕过此约束。(Roman提出的
requireAllEnumerationQ=FALSE
的建议不起作用,因为跳跃定界算法只适用于线性模型,而不适用于GLM。)

一种可能的策略(此处未充分探讨)是以跳跃式的方式完全拟合线性模型,保存大量顶级模型(例如
TopModels=1000
),然后使用您首选的方差结构重新评估顶级模型。。。这在
leaps
中不直接起作用,但可以通过以下方式进行黑客攻击:

leaps.obj <- leaps:::leaps.setup(matrix.xy.16,y=cars.df$mpg,nvmax=16,
       nbest=10000)
bb <- leaps:::leaps.exhaustive(leaps.obj, really.big=TRUE)

leaps.obj错误消息表示您可以将15个术语放入
bestglm
()。我想知道更改
需要什么样的计数q
做什么…很有趣,谢谢你链接代码。如果
family=gaussian
,没有超过2个级别的因子,并且
requireAllEnumerationQ=FALSE
(默认值),则代码默认为leaps库。如果其中任何一个为false,则无论
method!=详尽的
。这很不幸,但我想这只是函数的一个限制。
leaps.obj <- leaps:::leaps.setup(matrix.xy.16,y=cars.df$mpg,nvmax=16,
       nbest=10000)
bb <- leaps:::leaps.exhaustive(leaps.obj, really.big=TRUE)