参考资料:https://www.cnblogs.com/p1ng/p/12886773.html

getwd()

setwd("D:\\data")

airdata <- read.csv('air_data.csv',stringsAsFactors = FALSE)

airdata

#1数据清洗

#列表显示缺失值

table(airdata$GENDER)

sum(is.na(airdata))

#mice包中的md.pattern()函数可以生成一个以矩阵或数据框形式展示缺失值模式的表格

library(mice)

md.pattern(airdata[15:20])

 基于R语言的航空公司客户价值分析

 

md.pattern(subset(airdata, select=c(SUM_YR_1,SUM_YR_2)))

 

基于R语言的航空公司客户价值分析

#图形探究缺失数据

#VIM包中提供大量能可视化数据集中缺失值模式的函数:aggr()、matrixplot()、scattMiss()

library("VIM")

aggr(airdata)基于R语言的航空公司客户价值分析

 

aggr(subset(airdata, select=c(SUM_YR_1,SUM_YR_2)),prop=F,numbers=TRUE)

 

基于R语言的航空公司客户价值分析# 丢弃票价为空的记录

delet_na <- airdata[-which(is.na(airdata$SUM_YR_1) |

                              is.na(airdata$SUM_YR_2)), ]

# 丢弃票价为0、平均折扣率不为0、总飞行公里数大于0的记录

index <- ((delet_na$SUM_YR_1 == 0 & delet_na$SUM_YR_2 == 0)

          * (delet_na$avg_discount != 0)

          * (delet_na$SEG_KM_SUM > 0))

deletdata <- delet_na[-which(index == 1), ]

# 保存清洗后的数据

cleanedfile <- deletdata

write.csv(cleanedfile,'cleanedfile.csv')

 

 

#2构建航空客户价值分析的关键特征

LRFMC模型:将客户关系长度L,消费时间间隔R,消费频率F,飞行里程M和折扣系数的平均值C作为航空公司识别客户价值的关键特征记为LRFMC模型。

L;会员入会时间距观测窗口结束的月数。

R:客户最近一次乘坐公司飞机距观测窗口结束的月数。

F:客户在观测窗口内乘坐公司飞机的次数。

M:客户在观测窗口内累计的飞行里程。

C:客户在观测窗口内乘坐舱位所对应的折扣系数的平均值

# 数据读取

datafile <- read.csv('cleanedfile.csv', header = TRUE)

# 属性选择

col <- c(11,3,24,12,18,30)

datafile[, col]

# 保存属性选择后的数据

write.csv(datafile[, col],'datareductionfile.csv')

datafile <- read.csv('datareductionfile.csv', header = TRUE)

# 定义一个矩阵

names(datafile )

outfile <- matrix(data=NA, nrow = nrow(datafile), ncol = 5, byrow = TRUE, dimnames = list(c(1:nrow(datafile)),c("L","R","F","M","C")))

# 数据变换

outfile[,1] <- round((as.Date(datafile[,2]) - as.Date(datafile[,3]))/30,2)

outfile[,2] <- datafile[,4]

outfile[,3] <- datafile[,5]

outfile[,4] <- datafile[,6]

outfile[,5] <- datafile[,7]

summary(outfile)

 

基于R语言的航空公司客户价值分析

write.csv(outfile,'datachange.csv',row.names = FALSE)

datafile <- read.csv('datachange.csv', header = TRUE)

 

 

# 3数据去中心化后的标准化

zscoredfile <- scale(datafile)

# 数据写出

write.csv(zscoredfile, 'standardizeddata.csv',row.names = FALSE)

inputfile <- read.csv('standardizeddata.csv', header = TRUE)

 

 

 

#4 聚类分析

result <- kmeans(inputfile, 5)

# 结果输出

type <- result$cluster

table(type)  # 查看类别分布

type

centervec <- result$center

centervec # 查看簇中心点

 

 

基于R语言的航空公司客户价值分析

#5绘制雷达图

max <- apply(centervec,2,max)

min <- apply(centervec, 2, min)

df = data.frame(rbind(max,min,centervec))

library(fmsb)

radarchart(df=df,seg=5,plty=1,vlcex = 0.7)

 

基于R语言的航空公司客户价值分析

黑线代表的客户群1属于低价值客户。
绿线代表的客户群2是重要保持客户。
深蓝线代表的客户群3属于重要挽留客户。
浅蓝线代表的客户群4属于重要发展客户。
红线代表的客户群5属于一般客户。

客户群1,R最大已经很久没有登机了,同时F、L、M、G最小,也就是说这个客户极可能是折扣率很低的时候才选择坐飞机,属于低价值客户。
客户群2,公里数M、登机的频次F比较高,最近登机的时间间隔R以及折扣C比较低,这样的客户是重要保持客户。
客户群3,入会时间L最长,但是距最近登记时间间隔R比较短,折扣率C比较低,公里数M和频次F也比较低,属于重要挽留客户。
客户群4,尽管公里数M和频次F比较小,但是入会时间L和最近登机的间隔R很短,同时折扣率C最高,属于重要发展客户。
客户群5,R、F、L、M、C五个指标都很小,属于一般客户。

给出营销策略

  • 会员的升级与保级:航空公司可以在对会员升级或保级进行评价的时间点之前,对那些接近但尚未达到要求的较高消费客户进行适当提醒甚至采取一些促销活动,刺激他们通过消费达到相应标准。这样既可以获得收益,同时也提高了客户的满意度,增加了公司的精英会员。

  • 首次兑换:采取的措施是从数据库中提取出接近但尚未达到首次兑换标准的会员,对他们进行提醒或促销,使他们通过消费达到标准。一旦实现了首次兑换,客户在本公司进行再次消费兑换就比在其他公司进行兑换要容易许多,在一定程度上等于提高了转移的成本。

  • 交叉销售:通过发行联名卡等与非航空类企业的合作,使客户在其他企业的消费过程中获得本公司的积分,增强与公司的联系,提高他们的忠诚度。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章: