You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

逻辑回归报错invalid type (list)排查:基于ISLR2库的代码问题

问题分析与解决

你的两个模型代码存在以下关键问题,导致出现"invalid type (list) for variable in logistic regression"报错:

1. 公式错误使用整个数据框作为响应变量

glm()的公式格式为响应变量 ~ 自变量,你在两个模型中都把df(整个数据框)放在了响应变量的位置,glm会将其识别为list类型,而逻辑回归要求响应变量是二元向量(如0/1或二分类因子)。
Default数据集的核心响应变量是default列(表示是否违约),需替换公式里的df。

2. 自变量写法错误(model2)

student["Yes"]的写法完全错误:

  • student是Default中的二分类因子列,直接作为自变量传入公式即可,无需索引取值。
  • 这种索引写法会返回list或子集,不符合glm对自变量的类型要求。

3. 数据集名称不匹配

你处理后的数据框是df,但模型里用了churn_train,属于笔误,需统一为df(或你划分好的训练集名称)。

修正后的代码示例

# 加载必要的库
library(ISLR2)
library(dplyr)

# 转换有序因子为普通因子
df <- Default %>% mutate_if(is.ordered, factor, ordered = FALSE)

# 修正后的model1
model1 <- glm(default ~ balance, 
              family = "binomial", data = df)

# 修正后的model2
model2 <- glm(default ~ student,
              family = "binomial", data = df)

内容的提问来源于stack exchange,提问作者user19791361

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 23:02:03