r语言logistics逐步回归代码
时间: 2023-11-13 21:05:22 浏览: 133
logistics回归代码预测中国人口
以下是使用逐步回归进行逻辑回归的 R 代码:
```R
# 加载必要的库
library(MASS) # 用于数据集
library(leaps) # 用于逐步回归
# 加载数据集(这里使用MASS库中的著名数据集“心脏病”)
data(heart)
# 查看数据集
head(heart)
# 将目标变量转换为二元变量(1为有病,0为无病)
heart$chd <- ifelse(heart$chd == 1, 1, 0)
# 将数据集分为训练集和测试集
set.seed(123) # 设置随机种子以确保结果可重复
train_index <- sample(1:nrow(heart), round(nrow(heart) * 0.8)) # 80%的数据用于训练
train_data <- heart[train_index,]
test_data <- heart[-train_index,]
# 使用逐步回归选择特征
fit <- regsubsets(chd ~ ., data = train_data, nvmax = ncol(train_data) - 1)
# 查看逐步回归结果
summary(fit)
# 使用逐步回归选择的特征进行逻辑回归建模
glm_model <- glm(chd ~ sbp + tobacco + ldl + adiposity + famhist + obesity + alcohol, data = train_data, family = "binomial")
# 查看逻辑回归结果
summary(glm_model)
# 使用测试集评估模型性能
pred <- predict(glm_model, newdata = test_data, type = "response")
pred_class <- ifelse(pred > 0.5, 1, 0)
table(test_data$chd, pred_class)
```
上述代码中,我们使用了MASS库中的“心脏病”数据集来构建逻辑回归模型。首先,我们将目标变量转换为二元变量(1为有病,0为无病),然后将数据集分为训练集和测试集。接下来,我们使用`regsubsets`函数进行逐步回归,选择特征。最后,我们使用逐步回归选择的特征进行逻辑回归建模,并使用测试集评估模型性能。
阅读全文