背景:
某保险公司希望通过调研在车险市场中定位自己的目标客户,并了解他们的特征及痛点,以进行精准营销。因此对车险市场客户投放了一套调研问卷,收集了客户特征、消费行为和生活态度几个维度的数据。需要通过分析问卷数据得到目标客户定位及画像。
思路:
从结果出发,可以得到分析路径:【客户画像】<-【目标客群定位】(定位标准?)<-【客群分类】(分类维度?)<- 【数据处理】
步骤:
- 数据预处理:转换格式并处理异常值。
- 分类维度:分类维度越接近内在和本质因素越有好的效果,同时也需要包含行业相关因素,所以选择反应生活态度的9个语句以及保费金额作为分类维度,其他作为客户画像的描述维度。
- 数据降维:由于9个生活态度语句有重复性,将影响分类质量,所以需要事先通过降维提出底层影响因素。
- 聚类分析:使用影响因素和保费金额进行聚类,检测分类间是否有显著差异、是否有现实意义。
- 目标客群定位:从细分市场规模及企业竞争力两个角度选择目标客群
- 客户画像:通过其他维度描述该类客户并分析需求,得到定位策略和营销策略
1. 数据处理
这套数据包含712套客户问卷数据,收集了以下几类信息:
- 自有属性(#2-9)
- 消费行为(#10-16)
- 消费态度(#17-21)
- 生活态度(#22-30)
需要处理的问题:
- 数据格式转换
- 缺损值处理
- 异常值处理
原始数据:
> summary(insu)
问卷编号 是否购买车险 性别 年龄 城市 学历
Min. : 1.0 Min. :1 Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:178.8 1st Qu.:1 1st Qu.:1.000 1st Qu.:2.000 1st Qu.:2.000 1st Qu.:1.000
Median :356.5 Median :1 Median :1.000 Median :2.000 Median :5.000 Median :2.000
Mean :356.5 Mean :1 Mean :1.333 Mean :2.253 Mean :4.267 Mean :1.649
3rd Qu.:534.2 3rd Qu.:1 3rd Qu.:2.000 3rd Qu.:3.000 3rd Qu.:6.000 3rd Qu.:2.000
Max. :712.0 Max. :1 Max. :2.000 Max. :3.000 Max. :7.000 Max. :3.000
家庭月收入 职业 汽车价格 决策时间 是否收集信息 从什么渠道收集信息
Min. :1.000 Min. : 1.000 Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:2.000 1st Qu.: 3.000 1st Qu.:2.000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:2.000
Median :3.000 Median : 4.000 Median :3.000 Median :2.000 Median :2.000 Median :2.000
Mean :2.517 Mean : 4.392 Mean :2.513 Mean :1.893 Mean :1.529 Mean :2.087
3rd Qu.:3.000 3rd Qu.: 6.000 3rd Qu.:3.000 3rd Qu.:3.000 3rd Qu.:2.000 3rd Qu.:2.000
Max. :5.000 Max. :11.000 Max. :4.000 Max. :6.000 Max. :2.000 Max. :3.000
NA's :1 NA's :377
投保渠道 保险公司的选择 保费金额 索赔经历 一站式服务考虑程度 网上投保考虑程度
Min. :1.000 Min. :1.000 Min. : 359.4 Min. :1.000 Min. :1.000 Min. :1.00
1st Qu.:2.000 1st Qu.:1.750 1st Qu.:1560.0 1st Qu.:1.000 1st Qu.:4.000 1st Qu.:4.00
Median :2.000 Median :3.000 Median :2097.0 Median :2.000 Median :5.000 Median :5.00
Mean :2.518 Mean :2.501 Mean :2211.9 Mean :1.567 Mean :4.551 Mean :4.66
3rd Qu.:4.000 3rd Qu.:3.250 3rd Qu.:2699.7 3rd Qu.:2.000 3rd Qu.:6.000 3rd Qu.:6.00
Max. :5.000 Max. :4.000 Max. :8399.7 Max. :3.000 Max. :7.000 Max. :7.00
产品个性化考虑程度 选择保险公司的考虑因素 满意度 对自己的生活很满意 为享受而产生的浪费是必要的
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:5.000 1st Qu.:4.000 1st Qu.:2.000 1st Qu.:5.000 1st Qu.:4.000
Median :5.000 Median :5.000 Median :2.000 Median :6.000 Median :6.000
Mean :5.271 Mean :4.551 Mean :2.235 Mean :5.789 Mean :5.331
3rd Qu.:6.000 3rd Qu.:6.000 3rd Qu.:3.000 3rd Qu.:7.000 3rd Qu.:6.000
Max. :7.000 Max. :7.000 Max. :3.000 Max. :7.000 Max. :7.000
买房子前要先有车 不惜金钱和时间装修房子 买衣服都买便宜的 休息时经常进行户外活动 尝试生活充满变化
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:3.000 1st Qu.:4.000 1st Qu.:3.000 1st Qu.:4.000 1st Qu.:4.000
Median :4.000 Median :5.000 Median :4.000 Median :5.000 Median :5.000
Mean :4.285 Mean :4.649 Mean :4.355 Mean :5.084 Mean :5.223
3rd Qu.:6.000 3rd Qu.:6.000 3rd Qu.:6.000 3rd Qu.:6.000 3rd Qu.:6.000
Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000
喜欢独自享受安静的生活 下班后尽快回家
Min. :1.000 Min. :1.000
1st Qu.:4.000 1st Qu.:5.000
Median :5.000 Median :5.000
Mean :4.789 Mean :5.368
3rd Qu.:6.000 3rd Qu.:6.000
Max. :7.000 Max. :7.000
1.1 数据格式转换
原始数据中单选题的回答的数据格式是数字格式,需要将其转化为类型格式并添加原始选项。
> col <- c(2,3,4,5,6,7,8,9,10,11,12,13,14,16,20)
> insu[,col] <- lapply(insu[,col], as.factor)
> levels(insu$性别) <- c("男","女")
> levels(insu$年龄) <- c("18~30岁","31~40岁","41~55岁","56岁及以上")
> levels(insu$城市) <- c("北京","上海","武汉","沈阳","广州","西安","成都")
> levels(insu$学历) <- c("高中及以下学历","大学学历","研究生及以上学历")
> levels(insu$家庭月收入) <- c("<7000元","7000~10000元","10000~15000元","15000~20000元","≥20000元")
> levels(insu$职业) <- c("党政府机关干部","专业人员/技术人员","经理/企业经营管理干部","商业/服务型企业职工","工业/生产型企业职工","私营企业主/个体户/自由职业者","下岗/退休人员","在校学生","军人","无工作","其他")
> levels(insu$汽车价格) <- c("10万元以下","10~20万元","20~30万元","30万元以上")
> levels(insu$决策时间) <- c("一周以内","两周以内","三周以内","一个月以内","两个月以内","其他")
> levels(insu$是否收集信息) <- c("是","否")
> levels(insu$从什么渠道收集信息) <- c("网络","亲朋推荐","其他")
> levels(insu$投保渠道) <- c("保险公司门店","车险代理机构","电话购买","网络购买","其他")
> levels(insu$保险公司的选择) <- c("甲保险公司","乙保险公司","丙保险公司","丁保险公司")
> levels(insu$索赔经历) <- c("超过2次","1~2次","无")
> levels(insu$选择保险公司的考虑因素) <- c("服务态度好","公司知名度高","产品价格便宜","服务网点多","亲朋推荐","信任销售人员","其他")
> summary(insu)
问卷编号 是否购买车险 性别 年龄 城市 学历
Min. : 1.0 1:712 男:475 18~30岁 :148 北京:128 高中及以下学历 :268
1st Qu.:178.8 女:237 31~40岁 :236 上海: 86 大学学历 :426
Median :356.5 41~55岁 :328 武汉: 1 研究生及以上学历: 18
Mean :356.5 56岁及以上: 0 沈阳: 37
3rd Qu.:534.2 广州:204
Max. :712.0 西安:225
成都: 31
家庭月收入 职业 汽车价格 决策时间 是否收集信息
<7000元 :171 私营企业主/个体户/自由职业者:190 10万元以下:134 一周以内 :354 是:335
7000~10000元 :172 商业/服务型企业职工 :129 10~20万元 :166 两周以内 :170 否:377
10000~15000元:238 专业人员/技术人员 :118 20~30万元 :325 三周以内 :118
15000~20000元: 92 经理/企业经营管理干部 : 94 30万元以上: 87 一个月以内: 54
≥20000元 : 39 工业/生产型企业职工 : 57 两个月以内: 12
(Other) :123 其他 : 4
NA's : 1
从什么渠道收集信息 投保渠道 保险公司的选择 保费金额 索赔经历
网络 : 39 保险公司门店:165 甲保险公司:178 Min. : 359.4 超过2次:324
亲朋推荐:228 车险代理机构:273 乙保险公司:177 1st Qu.:1560.0 1~2次 :372
其他 : 68 电话购买 : 81 丙保险公司:179 Median :2097.0 无 : 16
NA's :377 网络购买 :126 丁保险公司:178 Mean :2211.9
其他 : 67 3rd Qu.:2699.7
Max. :8399.7
一站式服务考虑程度 网上投保考虑程度 产品个性化考虑程度 选择保险公司的考虑因素 满意度
Min. :1.000 Min. :1.00 Min. :1.000 服务态度好 : 31 Min. :1.000
1st Qu.:4.000 1st Qu.:4.00 1st Qu.:5.000 公司知名度高: 25 1st Qu.:2.000
Median :5.000 Median :5.00 Median :5.000 产品价格便宜: 91 Median :2.000
Mean :4.551 Mean :4.66 Mean :5.271 服务网点多 :181 Mean :2.235
3rd Qu.:6.000 3rd Qu.:6.00 3rd Qu.:6.000 亲朋推荐 :186 3rd Qu.:3.000
Max. :7.000 Max. :7.00 Max. :7.000 信任销售人员:154 Max. :3.000
其他 : 44
对自己的生活很满意 为享受而产生的浪费是必要的 买房子前要先有车 不惜金钱和时间装修房子 买衣服都买便宜的
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:5.000 1st Qu.:4.000 1st Qu.:3.000 1st Qu.:4.000 1st Qu.:3.000
Median :6.000 Median :6.000 Median :4.000 Median :5.000 Median :4.000
Mean :5.789 Mean :5.331 Mean :4.285 Mean :4.649 Mean :4.355
3rd Qu.:7.000 3rd Qu.:6.000 3rd Qu.:6.000 3rd Qu.:6.000 3rd Qu.:6.000
Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000
休息时经常进行户外活动 尝试生活充满变化 喜欢独自享受安静的生活 下班后尽快回家
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:4.000 1st Qu.:4.000 1st Qu.:4.000 1st Qu.:5.000
Median :5.000 Median :5.000 Median :5.000 Median :5.000
Mean :5.084 Mean :5.223 Mean :4.789 Mean :5.368
3rd Qu.:6.000 3rd Qu.:6.000 3rd Qu.:6.000 3rd Qu.:6.000
Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000
1.2 缺损值
”职业“和”从什么渠收集信息“两项存在缺损值。其中”职业“仅缺损1项,必要时可用中间值替换或删除,”从什么渠收集信息“缺损过半,后续分析时需注意有效性。
1.3 异常值
-
“保费金额”的最大值明显过高,且最高值与次高值之间差异极大,从柱状图看属于异常值,所以删除。
> head(sort(insu$保费金额, decreasing = TRUE))
[1] 8399.7 5699.1 5400.0 5100.0 4950.0 4950.0
> #删除异常值8399.7
> insu_clean <- insu %>% filter(保费金额 != 8399.7)
- 问卷中56岁及以上年龄人数为0,未覆盖该类车险客户,需要在分析时注意。
- 问卷覆盖客户范围偏高端,中家庭月收入为10000~15000元的人数最多,大部分有大学及以上学历,过半人数汽车价格在20万以上,且男性占比约三分之二,广州、西安两地人数最多,可见投放时未控制变量,所以客户分类时不可只看单一类别的画像结果,而应以分类间的比较为准。
2. 数据降维
问卷中表达生活态度的9个语句间可能存在相关性,即多个问题反应了同一种倾向。直接使用这9个语句会分类维度的权重产生偏差,所以需要先用因子分析提炼出深层逻辑,对数据进行降维。
2.1 适用性测试
因子分析的前提是变量间存在相关性和深层影响因子,可通过KMO测试和bartlett球形度测试进行检验。
KMO测试可检测有多少比例的变化量可能由深层影响因子导致,约接近1表示比例越高,一般需高于0.6可适用因子分析。本套数据的MSA值为0.72,通过KMO检测。
Bartlett球形度检验可检测变量间是否存在相关性,若存在相关性,则可适用因子分析。检测方法为测量样本矩阵是否与单位矩阵存在显著差异,若存在(一般p值需小于0.05),则变量间存在相关性。本套数据的p值小于0.05,通过Batlett球形度检验。
#KMO测试
> KMO(x)
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = x)
Overall MSA = 0.72
MSA for each item =
对自己的生活很满意 为享受而产生的浪费是必要的 买房子前要先有车 不惜金钱和时间装修房子
0.67 0.76 0.71 0.70
买衣服都买便宜的 休息时经常进行户外活动 尝试生活充满变化 喜欢独自享受安静的生活
0.72 0.69 0.74 0.74
下班后尽快回家
0.72
#Bartlett球形度检验
> bart_spher(x)
Bartlett's Test of Sphericity
Call: bart_spher(x = x)
X2 = 1150.889
df = 36
p-value < 2.22e-16
2.2 拟合
初始选择9个因子,先选择无旋转。结果显示共有4个因子的特征值在1以上,且前4个因子可以解释70%的变化。
#选择主成分分析,初始选择9个因子,未旋转
> fit1 = principal(insu_clean[,(22:30)], nfactor=9, rotate="none")
> fit1
Principal Components Analysis
Call: principal(r = insu_clean[, (22:30)], nfactors = 9, rotate = "none")
Standardized loadings (pattern matrix) based upon correlation matrix
PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 PC9 h2 u2 com
对自己的生活很满意 0.42 -0.04 0.70 0.30 -0.22 0.02 0.44 0.03 0.07 1 -2.2e-16 3.2
为享受而产生的浪费是必要的 0.55 -0.37 0.20 0.44 0.12 0.38 -0.41 -0.05 0.04 1 1.1e-16 5.1
买房子前要先有车 0.64 -0.26 -0.51 0.09 0.04 -0.09 0.14 0.29 0.37 1 -8.9e-16 3.8
不惜金钱和时间装修房子 0.65 -0.36 -0.37 0.21 0.02 -0.17 0.18 -0.15 -0.42 1 -8.9e-16 4.0
买衣服都买便宜的 0.54 0.49 -0.29 -0.23 -0.01 0.47 0.21 -0.26 0.05 1 -6.7e-16 4.8
休息时经常进行户外活动 0.59 -0.10 0.24 -0.60 0.01 0.14 -0.07 0.39 -0.21 1 0.0e+00 3.6
尝试生活充满变化 0.64 -0.19 0.24 -0.44 -0.01 -0.33 -0.16 -0.37 0.19 1 -8.9e-16 4.1
喜欢独自享受安静的生活 0.49 0.57 -0.11 0.22 -0.52 -0.17 -0.28 0.09 -0.05 1 -4.4e-16 4.2
下班后尽快回家 0.43 0.60 0.18 0.21 0.57 -0.21 -0.01 0.07 -0.03 1 1.1e-15 3.6
PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 PC9
SS loadings 2.77 1.30 1.16 1.04 0.66 0.60 0.57 0.49 0.41
Proportion Var 0.31 0.14 0.13 0.12 0.07 0.07 0.06 0.05 0.05
Cumulative Var 0.31 0.45 0.58 0.70 0.77 0.84 0.90 0.95 1.00
Proportion Explained 0.31 0.14 0.13 0.12 0.07 0.07 0.06 0.05 0.05
Cumulative Proportion 0.31 0.45 0.58 0.70 0.77 0.84 0.90 0.95 1.00
Mean item complexity = 4
Test of the hypothesis that 9 components are sufficient.
The root mean square of the residuals (RMSR) is 0
with the empirical chi square 0 with prob < NA
Fit based upon off diagonal values = 1
#查看特征值
> plot(fit1$values, type="b")
> abline(h=1)
查看载荷,载荷越高说明因子的解释力越强。调整参数筛选只显示0.4以上的因子,发现因子间差异化不够,无法总结出明显的趋势。
#查看载荷0.4以上的因子
> print(fit1$loadings, cutoff = 0.4,digits=2, sort=TRUE)
Loadings:
PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 PC9
为享受而产生的浪费是必要的 0.55 0.44 -0.41
买房子前要先有车 0.64 -0.51
不惜金钱和时间装修房子 0.65 -0.42
买衣服都买便宜的 0.54 0.49 0.47
尝试生活充满变化 0.64 -0.44
喜欢独自享受安静的生活 0.49 0.57 -0.52
下班后尽快回家 0.43 0.60 0.57
对自己的生活很满意 0.42 0.70 0.44
休息时经常进行户外活动 0.59 -0.60
PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 PC9
SS loadings 2.77 1.30 1.16 1.04 0.66 0.60 0.57 0.49 0.41
Proportion Var 0.31 0.14 0.13 0.12 0.07 0.07 0.06 0.05 0.05
Cumulative Var 0.31 0.45 0.58 0.70 0.77 0.84 0.90 0.95 1.00
PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 PC9
SS loadings 2.77 1.30 1.16 1.04 0.66 0.60 0.57 0.49 0.41
Proportion Var 0.31 0.14 0.13 0.12 0.07 0.07 0.06 0.05 0.05
Cumulative Var 0.31 0.45 0.58 0.70 0.77 0.84 0.90 0.95 1.00
尝试旋转,选择最大方差法放大因子间的差异。调整参数筛选显示0.6以上的因子,发现差异化明显,可以总结出深层逻辑。
#尝试旋转,选择最大方差法
> fit2 = principal(insu_clean[,(22:30)], nfactor=4, rotate="varimax")
#查看载荷0.6以上的因子
> print(fit2$loadings, cutoff=0.6, digits=2, sort=TRUE)
Loadings:
RC1 RC2 RC4 RC3
买房子前要先有车 0.83
不惜金钱和时间装修房子 0.83
买衣服都买便宜的 0.67
喜欢独自享受安静的生活 0.76
下班后尽快回家 0.74
休息时经常进行户外活动 0.87
尝试生活充满变化 0.78
对自己的生活很满意 0.82
为享受而产生的浪费是必要的 0.65
RC1 RC2 RC4 RC3
SS loadings 1.76 1.64 1.56 1.31
Proportion Var 0.20 0.18 0.17 0.15
Cumulative Var 0.20 0.38 0.55 0.70
总结4个影响因子:
因子1:置业型
因子2:居家型
因子3:外向型
因子4:享受型
计算标因子得分,得分越高表明该记录越具有该因子的特征,平均值为0。
#因子得分
> head(fit2$scores)
RC1 RC2 RC4 RC3
[1,] -0.01125969 1.6142838 1.39849858 0.9360901
[2,] -0.18076545 -0.8575633 -0.06232743 -2.9756568
[3,] -1.10725937 0.7290461 -0.66706530 -0.6658053
[4,] 1.51975385 -0.2666129 -0.18334136 -1.9800879
[5,] 0.43616118 -0.5197690 -0.09375187 -0.6541459
[6,] -0.02124356 -0.6637996 -0.56790354 0.2369694
将因子得分添加至原始数据,使每一条记录在每一种因子上都有相应得分。
#合并因子得分
> insu_clean <- cbind(insu_clean,fit2$scores)
> names(insu_clean)[31:34] <- c("置业型","居家型","外向型","享受型")
> head(insu_clean)
问卷编号 是否购买车险 性别 年龄 城市 学历 家庭月收入 职业 汽车价格 决策时间
1 1 1 男 18~30岁 西安 大学学历 <7000元 工业/生产型企业职工 10万元以下 一周以内
2 2 1 女 18~30岁 成都 大学学历 <7000元 党政府机关干部 10万元以下 一周以内
3 3 1 男 18~30岁 西安 高中及以下学历 7000~10000元 私营企业主/个体户/自由职业者 10万元以下 一周以内
4 4 1 男 41~55岁 广州 大学学历 7000~10000元 私营企业主/个体户/自由职业者 20~30万元 一周以内
5 5 1 男 41~55岁 广州 大学学历 <7000元 专业人员/技术人员 20~30万元 三周以内
6 6 1 女 31~40岁 北京 大学学历 ≥20000元 党政府机关干部 20~30万元 两周以内
是否收集信息 从什么渠道收集信息 投保渠道 保险公司的选择 保费金额 索赔经历 一站式服务考虑程度 网上投保考虑程度
1 是 其他 网络购买 丙保险公司 870.0 1~2次 1 1
2 是 网络 保险公司门店 丙保险公司 1199.7 超过2次 5 4
3 否 <NA> 网络购买 丁保险公司 1764.0 1~2次 4 4
4 是 亲朋推荐 车险代理机构 丁保险公司 1770.0 1~2次 4 4
5 否 <NA> 车险代理机构 丙保险公司 1377.0 1~2次 3 4
6 是 亲朋推荐 车险代理机构 甲保险公司 4200.0 1~2次 5 7
产品个性化考虑程度 选择保险公司的考虑因素 满意度 对自己的生活很满意 为享受而产生的浪费是必要的 买房子前要先有车
1 7 服务网点多 1 7 7 7
2 5 公司知名度高 1 3 3 4
3 4 信任销售人员 2 4 5 1
4 4 服务网点多 2 3 6 4
5 4 产品价格便宜 1 5 5 5
6 5 亲朋推荐 3 6 5 4
不惜金钱和时间装修房子 买衣服都买便宜的 休息时经常进行户外活动 尝试生活充满变化 喜欢独自享受安静的生活 下班后尽快回家
1 3 6 7 7 7 7
2 3 5 4 5 4 3
3 4 4 5 4 5 7
4 7 6 5 5 5 4
5 5 4 5 5 4 5
6 5 3 5 4 4 5
置业型 居家型 外向型 享受型
1 -0.01125969 1.6142838 1.39849858 0.9360901
2 -0.18076545 -0.8575633 -0.06232743 -2.9756568
3 -1.10725937 0.7290461 -0.66706530 -0.6658053
4 1.51975385 -0.2666129 -0.18334136 -1.9800879
5 0.43616118 -0.5197690 -0.09375187 -0.6541459
6 -0.02124356 -0.6637996 -0.56790354 0.2369694
3. 聚类分析
选择k-means聚类法。聚类时,我们希望分组间差异最大,同时分组内差异最小。通过画出不同聚类数量得到的组间差异与组内差异的比值,判断最优聚类数量。
#标准化数据
insu_std <- insu_clean[,c(15,31,32,33,34)]
insu_std <- scale(insu_std)
#选择聚类数量
r = list()
for(i in 1:30) r[i] <- kmeans(insu_std, i, nstart = 20)$betweenss / kmeans(insu_std, i, nstart = 20)$tot.withinss
plot(1:30, r, type="b", xlab = "Number of Clusters", ylab = "Between-Cluster SS / Total Within-Cluster SS")
从上图判断,组间差异与组内差异的比值在聚为5或6组时发生转折,上升趋势减缓,所以尝试5、6组聚类。
比较分为5组和分为6组的聚类结果,发现分为6组在“外向型”上没有通过方差检验,说明在该维度上组与组间无显著差异。而分为5组在所有维度上都通过了方差检验,所以选择5组。
#比较5组和6组在分类维度上是否有显著差异
> aov_test <- data.frame(categories = c("保费金额","享受型","居家型","外向型","置业型"))
> aov_test$p_values_5 <- 0
> aov_test$p_values_5[1] <- summary(aov(保费金额 ~ km.5.cluster, data = insu_km5))[[1]][[1,"Pr(>F)"]]
> aov_test$p_values_5[2] <- summary(aov(享受型 ~ km.5.cluster, data = insu_km5))[[1]][[1,"Pr(>F)"]]
> aov_test$p_values_5[3] <- summary(aov(居家型 ~ km.5.cluster, data = insu_km5))[[1]][[1,"Pr(>F)"]]
> aov_test$p_values_5[4] <- summary(aov(外向型 ~ km.5.cluster, data = insu_km5))[[1]][[1,"Pr(>F)"]]
> aov_test$p_values_5[5] <- summary(aov(置业型 ~ km.5.cluster, data = insu_km5))[[1]][[1,"Pr(>F)"]]
> aov_test$p_values_6 <- 0
> aov_test$p_values_6[1] <- summary(aov(保费金额 ~ km.6.cluster, data = insu_km6))[[1]][[1,"Pr(>F)"]]
> aov_test$p_values_6[2] <- summary(aov(享受型 ~ km.6.cluster, data = insu_km6))[[1]][[1,"Pr(>F)"]]
> aov_test$p_values_6[3] <- summary(aov(居家型 ~ km.6.cluster, data = insu_km6))[[1]][[1,"Pr(>F)"]]
> aov_test$p_values_6[4] <- summary(aov(外向型 ~ km.6.cluster, data = insu_km6))[[1]][[1,"Pr(>F)"]]
> aov_test$p_values_6[5] <- summary(aov(置业型 ~ km.6.cluster, data = insu_km6))[[1]][[1,"Pr(>F)"]]
#调整结果显示位数
> aov_test$p_values_5 <- round(aov_test$p_values_5,4)
> aov_test$p_values_6 <- round(aov_test$p_values_6,4)
#测试结果:分为5组在全部分类维度上有显著差异
> aov_test
categories p_values_5 p_values_6
1 保费金额 0e+00 0.0137
2 享受型 0e+00 0.0000
3 居家型 4e-04 0.0000
4 外向型 0e+00 0.9660
5 置业型 0e+00 0.0000
根据保费金额和生活态度倾向为5个组命名:
- 中端享受型(21%)
- 中端居家型(28%)
- 低端享受型(14%)
- 高端置业型(17%)
- 中端外向型(19%)
#各分类维度均值比较
> insu_km5 %>% group_by(km.5.cluster) %>% dplyr::summarise(保费金额 = mean(保费金额),
+ 置业型 = mean(置业型),
+ 居家型 = mean(居家型),
+ 外向型 = mean(外向型),
+ 享受型 = mean(享受型),
+ 人数 = n()) %>%
+ mutate(占比 = 人数 / sum(人数))
`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 5 x 8
km.5.cluster 保费金额 置业型 居家型 外向型 享受型 人数 占比
<int> <dbl> <dbl> <dbl> <dbl> <dbl> <int> <dbl>
1 1 1931. 0.142 -1.15 0.286 0.556 152 0.214
2 2 1918. 0.546 0.823 0.572 0.145 201 0.283
3 3 1880. -0.506 0.358 -1.32 0.630 102 0.143
4 4 3596. 0.0737 -0.117 -0.129 -0.0478 121 0.170
5 5 1931. -0.656 -0.101 -0.0567 -1.27 135 0.190
#命名分类
> names(insu_km5)[35] <- "客户分类"
> insu_km5$客户分类 <- as.factor(insu_km5$客户分类)
> levels(insu_km5$客户分类) <- c("中端享受型","中端居家型","低端享受型","高端置业型","中端外向型")
4. 市场定位分析
从两个维度分析甲保险公司在这5类客户中的市场定位:
- 细分市场规模 - 该客户类型的总消费在总市场规模中的占比
- 企业竞争力 - 每个客户类型中选择甲保险公司的人数占比
#计算细分市场规模
> mar <- insu_km5 %>% group_by(客户分类) %>%
+ dplyr::summarise(分组保费金额 = sum(保费金额)) %>%
+ mutate(细分市场规模 = 分组保费金额 / sum(分组保费金额))%>%
+ ungroup
#计算企业竞争力
> table <- table(insu_km5$保险公司的选择, insu_km5$客户分类)
> mar$企业竞争力 <- prop.table(table,2)[1,]
> ggplot(mar, aes(x=企业竞争力, y=细分市场规模)) +
+ geom_point(size = 3) +
+ geom_vline(xintercept = 0.25) +
+ geom_hline(yintercept = 0.20) +
+ scale_y_continuous(labels=percent)+
+ scale_x_continuous(labels=percent)+
+ coord_cartesian(xlim = c(0,0.5), ylim = c(0,0.4))+
+ theme(text=element_text(family="STHeiti"))+
+ geom_text(nudge_y = -0.012,label = c("中端享受型","中端居家型","低端享受型","高端置业型","中端外向型"), family="STHeiti")
分析显示,高端置业型客户在市场中的消费占比最高,且甲公司对其的竞争优势最大。
5. 目标客户画像
通过客户的自有属性和消费行描述每个分类的客户画像。对分类变量使用卡方分析,对数字变量使用方差分析。结果显示仅“职业”一项不显著,其余都在不同分类间都存在显著差异。
#显著性测试
#卡方分析
chisq.test(insu_km5$性别, insu_km5$客户分类) #显著
chisq.test(insu_km5$年龄, insu_km5$客户分类) #显著
chisq.test(insu_km5$学历, insu_km5$客户分类) #显著
chisq.test(insu_km5$家庭月收入, insu_km5$客户分类) #显著
chisq.test(insu_km5$职业, insu_km5$客户分类) #不显著
chisq.test(insu_km5$汽车价格, insu_km5$客户分类) #显著
chisq.test(insu_km5$选择保险公司的考虑因素, insu_km5$客户分类)#显著
#方差分析
summary(aov(一站式服务考虑程度 ~ 客户分类, data = insu_km5)) #显著
summary(aov(网上投保考虑程度 ~ 客户分类, data = insu_km5)) #显著
summary(aov(产品个性化考虑程度 ~ 客户分类, data = insu_km5)) #显著
summary(aov(满意度 ~ 客户分类, data = insu_km5)) #显著
#数字变量使用均值比较
> insu_km5 %>% group_by(客户分类) %>% dplyr::summarise(一站式服务考虑程度 = mean(一站式服务考虑程度),
+ 网上投保考虑程度 = mean(网上投保考虑程度),
+ 产品个性化考虑程度 = mean(产品个性化考虑程度),
+ 满意度 = mean(满意度))
`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 5 x 5
客户分类 一站式服务考虑程度 网上投保考虑程度 产品个性化考虑程度
<fct> <dbl> <dbl> <dbl>
1 中端享受型 4.33 4.42 5.23
2 中端居家型 4.97 5.23 5.60
3 低端享受型 3.78 4.12 4.71
4 高端置业型 4.80 4.89 5.35
5 中端外向型 4.52 4.27 5.18
#分类变量使用占比比较
> table <- table(insu_km5$性别, insu_km5$客户分类)
> round(prop.table(table,2),2)*100
中端享受型 中端居家型 低端享受型 高端置业型 中端外向型
男 70 63 69 82 53
女 30 37 31 18 47
> table <- table(insu_km5$年龄, insu_km5$客户分类)
> round(prop.table(table,2),2)*100
中端享受型 中端居家型 低端享受型 高端置业型 中端外向型
18~30岁 7 31 21 0 40
31~40岁 30 25 21 72 23
41~55岁 63 44 59 28 37
56岁及以上 0 0 0 0 0
> table <- table(insu_km5$学历, insu_km5$客户分类)
> round(prop.table(table,2),2)*100
中端享受型 中端居家型 低端享受型 高端置业型 中端外向型
高中及以下学历 34 38 37 48 32
大学学历 63 61 55 52 66
研究生及以上学历 3 1 8 0 2
> table <- table(insu_km5$家庭月收入, insu_km5$客户分类)
> round(prop.table(table,2),2)*100
中端享受型 中端居家型 低端享受型 高端置业型 中端外向型
<7000元 32 26 29 0 30
7000~10000元 26 35 27 0 26
10000~15000元 36 36 39 13 41
15000~20000元 7 3 4 56 2
≥20000元 0 0 0 31 1
> table <- table(insu_km5$汽车价格, insu_km5$客户分类)
> round(prop.table(table,2),2)*100
中端享受型 中端居家型 低端享受型 高端置业型 中端外向型
10万元以下 5 27 20 0 38
10~20万元 45 16 43 2 13
20~30万元 44 53 36 46 43
30万元以上 6 3 1 51 6
> table <- table(insu_km5$选择保险公司的考虑因素, insu_km5$客户分类)
> round(prop.table(table,2),2)*100
中端享受型 中端居家型 低端享受型 高端置业型 中端外向型
服务态度好 6 1 12 2 4
公司知名度高 2 3 7 3 4
产品价格便宜 16 9 16 8 16
服务网点多 24 24 25 25 30
亲朋推荐 26 28 21 31 23
信任销售人员 20 26 18 23 17
其他 5 8 3 7 6
> table <- table(insu_km5$索赔经历, insu_km5$客户分类)
> round(prop.table(table,2),2)*100
中端享受型 中端居家型 低端享受型 高端置业型 中端外向型
超过2次 55 48 33 45 41
1~2次 45 50 66 48 57
无 1 1 1 7 2
> table <- table(insu_km5$满意度, insu_km5$客户分类)
> round(prop.table(table,2),2)*100
中端享受型 中端居家型 低端享受型 高端置业型 中端外向型
满意 17 15 17 0 24
还可以 57 53 53 8 56
不满意 26 32 30 92 20
> table <- table(insu_km5$投保渠道, insu_km5$客户分类)
> round(prop.table(table,2),2)*100
中端享受型 中端居家型 低端享受型 高端置业型 中端外向型
保险公司门店 25 25 23 21 21
车险代理机构 43 35 38 46 32
电话购买 7 13 15 7 14
网络购买 15 17 16 17 24
其他 11 10 9 8 9
高端置业型
客群特征
以男性客户为主(82%),大部分在31至40岁之间(72%),近一半为高中及以下学历(48%),大部分家庭月收入在15000元以上(87%),家用汽车多在30万元以上(51%)主推产品
产品价格:3600元左右
产品设计:产品个性化,提供一站式、网上投保服务营销策略
营销渠道:以亲朋推荐及销售顾问为主,可通过裂变营销活动获取新客源
销售渠道:以车险代理机构(46%)及保险公司门店(21%)为主
销售策略:注重对销售的信赖度,可通过提升销售的专业性及服务质量提高成单率;注重保险公司规模,可增加服务网点售后服务
售后经历:93%有索赔经历,92%对目前购买的车险不满意
客户维护:可分配客户经理维护,通过提高售后服务质量提高留存率,也可通过客户经理使裂变营销活动触达客户;需要进一步调研客户对车险不满的原因,找出痛点并将其转化为竞争优势