分析航空公司現狀
1.行業內競爭
民航的競爭除了三大航空公司之間的競爭之外,還將加入新崛起的各類小型航空公司、民營航空公司,甚至國外航空巨頭。航空產品生產過剩,產品同質化特征愈加明顯,於是航空公司從價格、服務間的競爭逐漸轉向對客戶的競爭。
2.行業外競爭
隨着高鐵、動車等鐵路運輸的興建,航空公司受到巨大沖擊。
航空公司客戶數據說明
目前航空公司已積累了大量的會員檔案信息和其乘坐航班記錄。
以2014-03-31為結束時間,選取寬度為兩年的時間段作為分析觀測窗口,抽取觀測窗口內有乘機記錄的所有客戶的詳細數據形成歷史數據,44個特征,總共62988條記錄。數據特征及其說明如下表所示。


案例目標
結合目前航空公司的數據情況,實現以下目標。
1、數據清洗
(1)數據分析,找出數據存在的問題(例如:異常值、缺失值),給出處理辦法
(2)使用R語言對數據進行處理,給出代碼、對使用的函數進行說明
2、構建航空客戶價值分析的關鍵特征
構建航空客戶價值分析的關鍵特征(從44個變量中選擇出適合后期聚類的變量),選擇客戶價值分析模型,對模型進行解釋。
3、數據標准化
(1)數據標准化的目的是什么?
(2)對於2中選出的變量進行標准化(代碼)
(3)並將標准化后的數據存入文件
(4)截圖(5分)
4.對數據進行聚類分群
(1)給出聚類算法(代碼+函數解釋)
(2)分析聚類結果,對客戶價值進行評價
(3)對結果進行可視化表示,可選擇多種圖形進行表示
(4)給出營銷策略
實現過程
數據清洗
(1)數據分析,找出數據存在的問題(例如:異常值、缺失值),給出處理辦法
- 通過對數據觀察發現原始數據中存在票價為空值,票價最小值為0,折扣率最小值為0,總飛行公里數大於0的記錄。票價為空值的數據可能是客戶不存在乘機記錄造成。
處理方法:丟棄票價為空的記錄。 - 其他的數據可能是客戶乘坐0折機票或者積分兌換造成。由於原始數據量大,這類數據所占比例較小,對於問題影響不大,因此對其進行丟棄處理。
處理方法:丟棄票價為0,平均折扣率不為0,總飛行公里數大於0的記錄。
(2)使用R語言對數據進行處理,給出代碼、對使用的函數進行說明
#設置工作空間
setwd("D:/develop/R/workspace")
#讀取數據
datafile<-read.csv('./data/航空公司數據集.csv',header=T)
#查詢數據
View(datafile)
#選擇數據探索變量
col=c(15:18,20:29)
#輸出數據概覽
summary(datafile[,col])
#找出票價為缺失值的數據
na_index<-is.na(datafile$SUM_YR_1) | is.na(datafile$SUM_YR_2)
na_datafile<-datafile[which(na_index==1),]
#缺失值數據占總數據的比例
nrow(na_datafile)/nrow(datafile) *100
#丟棄票價為空的記錄
#先識別觀測窗口第一年、第二年票價收缺失值所在的行,然后刪除;$符號表示中文“的”意思, “,”前面表示行,后面表示列。
delet_na = datafile[-which(is.na(datafile$SUM_YR_1) |
is.na(datafile$SUM_YR_2)),]
#查看相應記錄及所占比例
index<-((delet_na$SUM_YR_1==0 & delet_na$SUM_YR_2==0)
*(delet_na$avg_discount!=0)
*(delet_na$SEG_KM_SUM>0))
nrow(delet_na[which(index==1),])/nrow(datafile) *100
#丟棄異常的記錄
deletdata<-delet_na[-which(index==1),]
#保存數據
write.csv(deletdata,'./tmp/cleanedfile.csv',row.names = FALSE)


構建航空客戶價值分析的關鍵特征
LRFMC模型:將客戶關系長度L,消費時間間隔R,消費頻率F,飛行里程M和折扣系數的平均值C作為航空公司識別客戶價值的關鍵特征記為LRFMC模型。
L;會員入會時間距觀測窗口結束的月數。
R:客戶最近一次乘坐公司飛機距觀測窗口結束的月數。
F:客戶在觀測窗口內乘坐公司飛機的次數。
M:客戶在觀測窗口內累計的飛行里程。
C:客戶在觀測窗口內乘坐艙位所對應的折扣系數的平均值。
#讀取數據
cleanedfile<-read.csv('./tmp/cleanedfile.csv',header = T)
#查看字段名
names(cleanedfile)
#選取6個相關屬性變量
LRFMC<-c('FFP_DATE','LOAD_TIME','FLIGHT_COUNT','SEG_KM_SUM','LAST_FLIGHT_DATE','avg_discount')
reduceddata<-cleanedfile[,LRFMC]
#保存數據
write.csv(reduceddata,'./tmp/reducedfile.csv',row.names = FALSE)
#讀取數據
cleanedfile<-read.csv('./tmp/cleanedfile.csv',header = T)
#查看字段名
names(cleanedfile)
#選取6個相關屬性變量
LRFMC<-c('FFP_DATE','LOAD_TIME','FLIGHT_COUNT','SEG_KM_SUM','LAST_FLIGHT_DATE','avg_discount')
reduceddata<-cleanedfile[,LRFMC]
#保存數據
write.csv(reduceddata,'./tmp/reducedfile.csv',row.names = FALSE)
#數據讀取
reducedfile<-read.csv('./tmp/reducedfile.csv',header = T)
#查看數據字段類型
str(reducedfile)
#因子型數據轉換為日期格式
reducedfile$FFP_DATE<-as.Date(reducedfile$FFP_DATE)
reducedfile$LOAD_TIME<-as.Date(reducedfile$LOAD_TIME)
reducedfile$LAST_FLIGHT_DATE<-as.Date(reducedfile$LAST_FLIGHT_DATE)
#添加L和R L為離當前時間的入會月數 R為離當前時間的最近坐飛機的時間
reducedfile<-transform(reducedfile,L=difftime(LOAD_TIME,FFP_DATE,units = 'days')/30,
R=difftime(LOAD_TIME,LAST_FLIGHT_DATE,units = 'days')/30)
#查看概要
summary(reducedfile)
#刪除缺失值 na.omit為刪除所有包含缺失值的行
reducedfile<-na.omit(reducedfile)
#摘取有用的數據 並對指標進行重命名
transformeddata<-reducedfile[,c('L','R','FLIGHT_C','SEG_KM_SUM','avg_discount')]
colnames(transformeddata)<-c('L','R','F','M','C')
#保存數據
write.csv(transformeddata,'./tmp/transformedfile.csv',row.names = FALSE)
數據標准化
(1)數據標准化的目的是什么
五個特征的取值范圍數據差異較大,數據標准化可以消除數據量級對數據帶來的影響。
(2)對於2中選出的變量進行標准化(代碼)
#數據讀取
transformeddata<-read.csv('./tmp/transformedfile.csv',header = T)
#數據標准化
zscoreddata<-scale(transformeddata)
#字段重命名
colnames(zscoreddata)<-c('ZL','ZR','ZF','ZM','ZC')
#查看表轉化后的數據
head(zscoreddate)
(3)並將標准化后的數據存入文件
#保存標准化后的數據
write.csv(zscoreddate,'./tmp/zscoredfile.csv',row.names = FALSE)
(4)截圖

對數據進行聚類分群
(1)給出聚類算法(代碼+函數解釋
#數據讀取
inputfile<-read.csv('./tmp/zscoredfile.csv',header = T)
#聚類分析
result<-kmeans(inputfile,5)
#結果輸出 cluster表示各類別編號 center表示各類的中心
type<-result$cluster
centervec<-result$centers
#查看類別分布
table(type)
#查看類別中心
centervec

(2)分析聚類結果,對客戶價值進行評價


基於特征描述,定義五個等級的客戶類別:重要保持客戶,重要發展客戶,重要挽留客戶,低價值客戶。每種客戶類別的特征如圖所示。

客戶群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五個指標都很小,屬於一般客戶。
(3)對結果進行可視化表示,可選擇多種圖形進行表示
雷達圖:
①設置各個變量的取值范圍,即最大值和最小值
②設置准備繪圖指標類型的數據
③把變量取值范圍和數據組合成為新的數據集
④進行繪圖
#繪制雷達圖
#導入數據包
library(fmsb)
#設置各變量的最大值最小值
#centervec為矩陣對象,2表示列操作,max/min為處理數據函數
max<-apply(centervec,2,max)
min<-apply(centervec,2,min)
#把變量取值范圍和數據組合成為新的數據集
df=data.frame(rbind(max,min,centervec))
#繪制雷達圖
#seg=5表示分為五個等分,plty=1表示使用實線,vlcex為坐標字體大小
radarchart(df=df,seg=5,plty=1,vlcex=0.7)

綠線代表的客戶群1屬於低價值客戶。
深藍線代表的客戶群2是重要保持客戶。
紅線代表的客戶群3屬於重要挽留客戶。
黑線代表的客戶群4屬於重要發展客戶。
淺藍線代表的客戶群5屬於一般客戶。
(4)給出營銷策略
- 會員的升級與保級:航空公司可以在對會員升級或保級進行評價的時間點之前,對那些接近但尚未達到要求的較高消費客戶進行適當提醒甚至采取一些促銷活動,刺激他們通過消費達到相應標准。這樣既可以獲得收益,同時也提高了客戶的滿意度,增加了公司的精英會員。
- 首次兌換:采取的措施是從數據庫中提取出接近但尚未達到首次兌換標准的會員,對他們進行提醒或促銷,使他們通過消費達到標准。一旦實現了首次兌換,客戶在本公司進行再次消費兌換就比在其他公司進行兌換要容易許多,在一定程度上等於提高了轉移的成本。
- 交叉銷售:通過發行聯名卡等與非航空類企業的合作,使客戶在其他企業的消費過程中獲得本公司的積分,增強與公司的聯系,提高他們的忠誠度。
博客主頁: https://www.cnblogs.com/p1ng/
歡迎轉載,轉載請注明出處。
出錯之處,敬請交流、雅正!
創作不易,您的 " 推薦 " 和 " 關注 " ,是給我最大的鼓勵!
