【问题标题】:Error in logistic regression in R: 'list' object cannot be coerced to type 'double'R中的逻辑回归错误:“列表”对象不能被强制输入“双”
【发布时间】:2021-01-27 14:48:26
【问题描述】:

我正在尝试使用已加载的 CSV 文件在 Rstudio 中执行逻辑回归,该文件已转换为数据框。我有一个因变量(result)和 9 个自变量,它们都在数据框中的 10 个columns 中。

sapply(mydata, mode)

> result cat1 cat2 cat3 cat4 cat5 cat6 cat7 cat8 cat9
> "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric"

sapply(mydata, class)

> result cat1 cat2 cat3 cat4 cat5 cat6 cat7 cat8 cat9  
> "numeric" "integer" "integer" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "factor"

model1 <- glm(formula = result ~ cat3 + cat4 + cat5 + cat6 + cat7 + cat8, 
              data = mydata, 
              family = "binomial")

model1.pred <- ifelse(model1 > 0.5, "Win", "Loss")

> Error in ifelse(win2 > 0.5, "Win", "Loss") : 
> 'list' object cannot be coerced to type 'double'

即使我的模型中使用的所有变量都是数字,是否有人能够帮助解释为什么会发生此错误? 谢谢!

【问题讨论】:

    标签: r list double logistic-regression


    【解决方案1】:

    您无法将 model1 与 0.5 进行比较

    这是model1结构:

    model1
    
    Call:  glm(formula = id ~ speed + dist, family = "binomial", data = cars)
    
    Coefficients:
    (Intercept)        speed         dist  
      -1158.863       73.588        1.366  
    
    Degrees of Freedom: 49 Total (i.e. Null);  47 Residual
    Null Deviance:      69.31 
    Residual Deviance: 2.932e-08    AIC: 6 
    

    您必须将新数据传递给模型,然后将预测值(使用函数 predict)与 0.5 进行比较

    【讨论】:

      猜你喜欢
      • 2016-09-12
      • 2020-11-30
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 2016-05-24
      • 2016-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多