• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言之Logic回归分析

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

理论上,回归分析是在目标变量为连续型数据的情况下建模的,它不能处理目标变量为分类型数据的情况。

而logic回归分析的思路是把分类变量(“是否开通VIP”)转化为连续变量(“开通VIP的概率”),进而使用回归分析的方法间接地研究分类分析的问题。

一、原理

假设vip变量为分类变量,其取值只有0和1,这是分类型变量,无法通过回归分析建模。

但是,vip取值为1的概率却是一个连续型变量(prob.vip),可以使用回归分析为prob.vip建模:

prob.vip=k1*x1+k2*x2+k3*x3+k4*x4+b

由于k1*x1+k2*x2+k3*x3+k4*x4+b 的取值范围是(-∞,+∞),而prob.vip的范围是[0,1],因此,使用y=1/(1+exp(-x))函数进行转化:

prob.vip=1/(1+exp(-(k1*x1+k2*x2+k3*x3+k4*x4+b)))

当prob.vip>0.5,则可以预测vip.predict=1,否则为0。

注:回归分析使用最小二乘法拟合模型参数;logic回归则使用最大似然法来估算。

二、R语言实现

glm()是用R语言实现logic回归分析的核心函数。

参数:

formula:设置线性拟合模型的形式

family:glm的算法族。logic回归分析,family设置为binomial("logit")

data:样本数据

代码:

(1)建立logic回归模型
data.glm<- glm(vip~.,data=vip.data,family=binomial("logit")) summary(data.glm) 可以使用step函数对模型进行修正: data.glm<- step(data.glm)

(2)模型glm的输出项
模型参数:data.glm$coefficients
线性模型的预测数据:data.glm$linear.predictors
vip等于1的概率prob.vip: data.glm$fitted.values
线性拟合模型的残差:data.glm$residuals

(3)模型预测
预测测试数据:
predict.vip <- ifelse(data.glm$fitted.values>= 0.5,1,0)
predict.vip <- as.factor(predict.vip)

预测新数据:
new.predict.vip<- predict(data.glm,newdata=test.vip.data) 线性拟合数据的预测值
new.predict.vip<- 1/(1+exp(-new.predict.vip)) 概率值
new.predict.vip<- as.factor(ifelse(new.predict.vip>= 0.5,1,0))预测最终值

(4)模型性能衡量
performance<- length(which((predict.vip==vip.data$vip)==TRUE))/nrow(vip.data) 正确率
其中,length(which((predict.vip==vip.data$vip)==TRUE))表示预测值与实际样本值元素取值相等的数目。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言中的回归诊断-- car包发布时间:2022-07-18
下一篇:
R语言函数总结(1)发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap