R语言中Logistic回归

  • Logistic回归
# 设置工作空间
# 把“数据及程序”文件夹拷贝到F盘下,再用setwd设置工作空间
setwd("E:\\R_workspace\\R语言数据分析与挖掘实战\\chp5")
# 读入数据
Data <- read.csv("./data/bankloan.csv")[2:701, ]

View(Data)

# 查看数据框中 完整的记录数
sum(complete.cases(Data))
# 查看数据框中 不完整的记录数
sum(!complete.cases(Data))
# sum(is.na(Data))
# 查看数据框中 缺失比例
mean(!complete.cases(Data))

# 查看数据框中 不完整的记录详情
Data[!complete.cases(Data),]

# 数据命名
colnames(Data) <- c("x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "y")

View(Data)

# logistic回归模型
# R语言广义线性模型glm()函数
# glm(formula, family=family.generator, data,control = list(…))
# formula数据关系,如y~x1+x2+x3
# family:每一种响应分布(指数分布族)允许各种关联函数将均值和线性预测器关联起来。
# 常用的family:
    # binomal(link=’logit’) —-响应变量服从二项分布,连接函数为logit,即logistic回归
    # binomal(link=’probit’) —-响应变量服从二项分布,连接函数为probit
    # poisson(link=’identity’) —-响应变量服从泊松分布,即泊松回归
    # control:控制算法误差和最大迭代次数
glm <- glm(y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8,
           family = binomial(link = logit), data = Data)

summary(glm)

# 逐步寻优法  forward前向选择法backward后向选择法
logit.step <- step(glm, direction = "both")
summary(logit.step)

# 前向选择法
logit.step <- step(glm, direction = "forward")
summary(logit.step)

# 后向选择法
logit.step <- step(glm, direction = "backward")
summary(logit.step)

猜你喜欢

转载自blog.csdn.net/mr_muli/article/details/80526191