R语言逻辑回归模型的移动通信客户流失预测与分析

简介: R语言逻辑回归模型的移动通信客户流失预测与分析

通过对某移动通信公司客户的流失数据分析,了解客户流失规律,建立流失预警系统,为客户关系管理服务点击文末“阅读原文”获取完整代码数据

相关视频

image.png

数据介绍

某年度随机抽取的 1000 个移动通信客户。因变量是他们来年的流失行为(0= 未流失,1=流失)。为了能够预测客户的未来行为,我们采集了下面这些来自当年的指标:客户等级(区分 VIP 客户等级):1,2,3,4;主叫次数(%):7 日内日均 主叫次数/90 日内日均主叫次数;被叫次数(%):7 日内日均被叫次数/90 日内 日均通话时长;费用(%):7 日内日均通话费用/90 日内日均通话费用。该数据 存放在 csv 文件 mobile.csv 中。

某移动通信公司客户的流失数据:

577362bde1ac0148ac3e9054801e1a26.png

移动通信行业的现有企业中,一般情况下客户月流失率在3%左右,如果静态计算,则所有客户会在 2 - 3 年内全部流失。 在降低客户流失率方面,哪怕仅仅降低 1 %就意味着你至少可以有百万元的收入增长!客户是一个公司最宝贵的财富,因此保持客户并增长客户就是头等重要的事情,同是又是很困难的一项任务。

因此本文试图通过逻辑回归模型来帮助客户对某移动通信公司客户的流失数据分析,了解客户流失规律,建立流失预警系统,为客户关系管理服务。

读取数据,并且查看数据概况

553e8f3f6097f1a89fb0c46751a32c5c.png

绘制变量之间的散点图

37b4084effe00b88b321505ba95f39e2.png

从上面的图中,我们可以看到各个变量之间的相关关系,其中主叫次数和被叫次数呈正相关关系,通话时长和费用也成正相关关系。

8a82760c040624f4204f857de4178451.png

6b5ca15597b74b5cb378d1e80bd20bd7.png

e7fc9915a38c72d2c4ccc6591d14ad16.png

effaf597ccc94adbc6942b7c1ee365cf.png

1a0701ce339e0e684adbb582d1b460c4.png


然后绘制各个自变量和因变量(流失)的关系散点图,可以看到他们之间关系不是十分明显,从次数和流失的散点图来看,可能有正相关的关系,因此进行逻辑回归模型的分析。



划分训练集

split <- sample(1:nrow(data),nrow(data)*(2/3))

建立逻辑回归模型

效应的显著性检验

b5d2864f63b0e11ad51db9cdf549a1eb.png

优势比解释

则客户等级每增加1个单位,客户流失的估计值变为exp(-0.4311)= 0.6497939,因此,客户等级越高,客户流失越低

则主叫次数 每增加1个单位,客户流失的估计值变为exp( -0.6579)=  0.5179379,因此,主叫次数越高,客户流失越低

则被叫次数 每增加1个单位,客户流失的估计值变为exp(-2.4936)= 0.08261203,因此,被叫次数 越高,客户流失越低

Logistics逻辑回归拟合的解释

从输出结果可以看出 ,回归方程为流失=   2.7885 -0.5801客户等级-0.6756主叫次数 -2.6843被叫次数-0.5125通话时长+0.7565费用,变量和的统计量的估计值分别为-0.5801,-0.6756, -2.6843, -0.5125和0.7565,除了通话时长以外由对应的值都比显著性水平0.05小,可得4个偏回归系p数在显著性水平0.05下均显著不为零。因此,可以认为客户等级、主叫次数、被叫次数和费用对客户流失具有显著的影响。进一步地剩余方差的估计值,deviance统计量的估计值为898.52 ,说明,回归方程效果较好。

效应的置信区间

置信区间是给定自变量值后,由回归方程得到的的流失预测值(实0y际上是的平均值)的置信区间;预测区间是实际值的置信区间,在这里称为预测区间。0y0y预测区间要比置信区间稍大,命令与显示结果如下

3abb6f2859edbc04d2bb5903c95206e1.png

拟合优度与偏差

混淆矩阵

53548b16ed74c313049585046b40454c.png

残差分析:

   残差分析可以对回归模型的假设条件即随机误差项是否独立同分布进行检验,同时还可以找出离群点。命令语句为plot(lm.1),显示结果如下

Logistics模型的残差:皮尔逊残差与标准化残差

9ff5558aff5250f49ddf62b8d4cb348e.png

f510f3a35099d3f939966db6c947e29a.png

9cd49a8613fb5cef4f1855377c061d2c.png


2ec64082cf7207c02c8916102c437116.png

左上图是拟合值与残差的散点图,从图上可以发现,除去第3个离群点外,所有点基本上是随机地分散在纵坐标值为-1和+1的两条平行线之间,这说明随机误差项具有同方差性;左下图是拟合值与残差的标准差的散点图,其意义与上面类似;右上图表明随机误差项是服从正态分布的,其原因是正态Q-Q图近似地可以看成一条直线;右下图的CooK距离图进一步证实第3个观测值是一个离群点,它对回归方程的影响是比较大的,要根据具体问题,讨论出现这一观测值的实际背景。

联表的Cochran-Mantel-Haenszel检验

aebd2097bbf003795cb9fe47ac98724f.png

CMH统计量=1926.2, df=1815, P-value=0.034.

由于p值小于0.05,因此可以认为不同的客户等级客户流失和主叫次数之间不是相互独立的。

总结

  这里只使用此模型对我国移动通信市场作出粗略的线性估计.我们猜测只是由于影响客户流失的因素复杂,如通信公司的经营状况、客户心理等等,并最终反映在客户流失行为上来 ,表现在客户流失的高低.此外,移动通信市场是一个动态的过程,客户作为通信产品的需求者与供应者,通过流失率来表达对价格水平的意见. 当然,值得注意的是,客户流失并不是由上述因素来决定,还有其他的影响因素。通过回归分析可以发现,客户流失与主叫次数、通话时长息息相关。

相关文章
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
2月前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
53 3
|
3月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
3月前
|
数据采集 算法 搜索推荐
R语言营销数据分析:使用R进行客户分群的实践探索
【9月更文挑战第1天】R语言以其强大的数据处理和统计分析能力,在金融数据分析、营销数据分析等多个领域发挥着重要作用。通过R语言进行客户分群,企业可以更好地理解客户需求,制定精准的营销策略,提升市场竞争力和客户满意度。未来,随着大数据和人工智能技术的不断发展,R语言在营销数据分析中的应用将更加广泛和深入。
|
3月前
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
R语言在数据科学中的应用实例:探索与预测分析
【8月更文挑战第31天】通过上述实例,我们展示了R语言在数据科学中的强大应用。从数据准备、探索、预处理到建模与预测,R语言提供了完整的解决方案和丰富的工具集。当然,数据科学远不止于此,随着技术的不断发展和业务需求的不断变化,我们需要不断学习和探索新的方法和工具,以更好地应对挑战,挖掘数据的潜在价值。 未来,随着大数据和人工智能技术的普及,R语言在数据科学领域的应用将更加广泛和深入。我们期待看到更多创新的应用实例,为各行各业的发展注入新的动力。
|
4月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
7月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
7月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
4月前
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。