【问题标题】:Stepwise multinomial logistic regression逐步多项逻辑回归
【发布时间】:2019-02-18 15:39:09
【问题描述】:

我正在研究 R 中的逐步多项逻辑回归, 使用来自nnet 包的multinom() 函数和来自MASSstepAIC() 函数。 尽管使用单独的逻辑回归预先选择了一组变量(它使用了我从 Microsoft R Open 安装中获得的优化的 BLAS 和 LAPACK 库的全部并行潜力), 我还有 80 多个变量可以使用。问题在于执行上述逐步多项逻辑回归的时间消耗。

我已经尝试过 caret 包的并行后弯,但逐步函数似乎并不认为它是有效的方法。我喜欢这个包,因为它让我可以轻松地执行交叉验证。

有谁知道如何让它工作?

以下是 Iris 的示例:

> library(nnet)
> library(doParallel)
> library(caret)
> library(MASS)
> 
> data("iris")
> #iris
> 
> Nucleos <- makePSOCKcluster(4)
> registerDoParallel(Nucleos)
> ContEnt <- trainControl(method = "cv", number = 10)
> EducRLM <- train(Species ~ ., iris, method = "multinom", trControl = ContEnt, allowParallel = TRUE)
# weights:  18 (10 variable)
initial  value 164.791843 
iter  10 value 16.214880
iter  20 value 7.193408
iter  30 value 6.317798
iter  40 value 6.165829
iter  50 value 6.154233
iter  60 value 6.149611
iter  70 value 6.148398
iter  80 value 6.147275
final  value 6.147102 
converged
> 
> stepAIC(EducRLM, direction = "both")
Error in UseMethod("extractAIC") : 
  no applicable method for 'extractAIC' applied to an object of class "c('train', 'train.formula')"
In addition: Warning message:
In nobs.default(object, use.fallback = TRUE) :
  no 'nobs' method is available
>

【问题讨论】:

标签: r


【解决方案1】:

我遇到了同样的错误,这是因为 stepAIC() 显然不适用于 train() 中的模型,所以当我尝试使用 lm()(我想要一个简单的回归)时它起作用了。

【讨论】:

    【解决方案2】:

    尝试将训练数据转换回线性模型:stepAIC(lm(EducRLM,data=iris),direction="both")

    如果返回相同的错误,请确保数据在数据框类中,然后重试上述操作。

    【讨论】:

      猜你喜欢
      • 2016-03-20
      • 1970-01-01
      • 2021-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 2019-01-05
      相关资源
      最近更新 更多