我们正在执行一个探索性逻辑回归,并试图确定变量在预测结果中的重要性。我们正在使用插入符号包中的train()和varImp()函数。最终,我们希望创建一个包含3列的表/数据框输出:变量名、重要性和系数。输出如下:
所需的输出格式。
下面是一些示例代码:
library(caret)
# Create a sample dataframe
my_DV <- c(0, 1, 0, 1, 1)
IV1 <- c(10, 40, 15, 35, 38)
IV2 <- c(1, 0, 1, 0, 1)
IV3 <- c(5, 4, 3, 2, 1)
IV4 <- c(5, 7, 3, 8, 9)
IV5 <- c(1, 2, 1, 2, 1)
df <- data.frame(my_DV, IV1, IV2, IV3, IV4, IV5)
df$my_DV <- as.factor(df$my_DV)
df$IV1 <- as.numeric(df$IV1)
df$IV2 <- as.factor(df$IV2)
df$IV3 <- as.numeric(df$IV3)
df$IV4 <- as.numeric(df$IV4)
df$IV5 <- as.factor(df$IV5)
# train model/perform logistic regression
model_one <- train(form = my_DV ~ ., data = df, trControl = trainControl(method = "cv", number = 5),
method = "glm", family = "binomial", na.action=na.omit)
summary(model_one)
# get the variable importance
imp <- varImp(model_one)
imp
我想把imp
中的重要性值和model_one
中的系数合并起来,但是我对R还是个新手,不知道该怎么做。
如有任何建议,不胜感激!
1条答案
按热度按时间n6lpvg4x1#
以下是获得所需输出的多种方法之一:
将模型的摘要赋给一个对象,然后用
coef()
函数提取系数,与变量名和对应的重要性绑定到一个数据框中,再用order()
函数根据重要性的值对行进行排序。结果是: