在逻辑回归中使用 data.frame 的所有变量
Using all variables of a data.frame in logistic regression
我对 R 中的 ml 非常陌生,我正在尝试简单地添加来自 X_train
的所有变量以预测模型训练中的 y_train
。我 运行 遇到了他们不在同一个 data.frame
的问题。我的代码是这样的:
logitmod <- glm(log_y_train ~ log_X_train, family = "binomial")
log_y_train
是长度为 200386 的因子,log_X_train
是 174 个变量和 200386 行的 data.frame
。正是出于这个原因,我不能简单地键入所有列名。
但是我收到以下错误:
invalid type (list) for variable 'log_X_train'
我认为这是一个数据框,但仍然尝试了 unlist()
,然后告诉我长度不同。任何人都可以帮助解决此问题以在 logit 中使用这两个变量。
谢谢
解决方案 1
将log_y_train
和log_X_train
绑定到一个data.frame
中,这样就可以在formula
中使用" ~ ."
来表示[=13=中的所有变量].
glm(log_y_train ~ ., family = binomial(), data = cbind(log_y_train, log_X_train))
解决方案 2
使用 reformulate()
创建一个 formula
,其中 log_X_train
中的所有变量作为预测变量,log_y_train
作为响应变量。这个不需要绑定 log_y_train
和 log_X_train
.
glm(reformulate(names(log_X_train), "log_y_train"), family = binomial(), data = log_X_train)
我对 R 中的 ml 非常陌生,我正在尝试简单地添加来自 X_train
的所有变量以预测模型训练中的 y_train
。我 运行 遇到了他们不在同一个 data.frame
的问题。我的代码是这样的:
logitmod <- glm(log_y_train ~ log_X_train, family = "binomial")
log_y_train
是长度为 200386 的因子,log_X_train
是 174 个变量和 200386 行的 data.frame
。正是出于这个原因,我不能简单地键入所有列名。
但是我收到以下错误:
invalid type (list) for variable 'log_X_train'
我认为这是一个数据框,但仍然尝试了 unlist()
,然后告诉我长度不同。任何人都可以帮助解决此问题以在 logit 中使用这两个变量。
谢谢
解决方案 1
将log_y_train
和log_X_train
绑定到一个data.frame
中,这样就可以在formula
中使用" ~ ."
来表示[=13=中的所有变量].
glm(log_y_train ~ ., family = binomial(), data = cbind(log_y_train, log_X_train))
解决方案 2
使用 reformulate()
创建一个 formula
,其中 log_X_train
中的所有变量作为预测变量,log_y_train
作为响应变量。这个不需要绑定 log_y_train
和 log_X_train
.
glm(reformulate(names(log_X_train), "log_y_train"), family = binomial(), data = log_X_train)