R multinom()函数在100次迭代后停止,原因是什么?

时间:2012-07-27 16:16:19

标签: r statistics regression

我有相当多的数据,它有80列和大约220,000行 当我尝试使用nnet的{​​{1}}函数对无序多分类数据执行多项逻辑回归时,函数似乎在100次迭代后停止:

multinom()

我还尝试使用# weights: 322 (270 variable) initial value 807521.728781 iter 10 value 191523.940813 iter 20 value 163085.728004 iter 30 value 146262.378340 iter 40 value 139398.851395 iter 50 value 134606.101687 iter 60 value 133588.725646 iter 70 value 133253.102380 iter 80 value 133129.328709 iter 90 value 133098.717752 iter 100 value 133095.661773 final value 133095.661773 stopped after 100 iterations 的{​​{1}}但是它给了我以下错误:

VGAM

一个可能的解释是,我的微型macbook空气不适应这项工作,但是我想知道,我还有什么其他选择来对我目前拥有的数据集进行多项逻辑回归?

2 个答案:

答案 0 :(得分:14)

如果您查看multinom()的文档,您会看到它包含一个参数...,该参数用于“nnet的其他参数”。

然后,查看nnet的文档,您将看到以下用法:

nnet(x, y, weights, size, Wts, mask,
linout = FALSE, entropy = FALSE, softmax = FALSE,
censored = FALSE, skip = FALSE, rang = 0.7, decay = 0,
maxit = 100, Hess = FALSE, trace = TRUE, MaxNWts = 1000,
abstol = 1.0e-4, reltol = 1.0e-8, ...)

您遇到的问题是默认maxit为100.尝试将maxit=1000(或任何您想要的内容)添加到multinom()参数中。我没有测试过这个(我需要你包含可重复的样本数据),但我认为它可以解决这个问题。

答案 1 :(得分:5)

如果您查看?multinom的帮助,则表示它会调用nnet...nnet的其他参数。其中一个参数是maxit,默认为100.将其作为参数添加,无论您的最大迭代次数应该是什么。

您还可以查看有关vglm错误的this question