进阶方法

SPSS聚类分析

案例数据

300 位电商用户 × 5 列连续变量(月消费金额、月购买频次、平均客单价、网购年限、活动参与度),演示 K-means 聚类把用户划分为 4 类典型画像,并用轮廓系数选 K、ANOVA F 检验变量区分力。

文件名cluster.xlsx
样本量300 行
变量数5 列连续变量(消费行为 + 用户活跃度)
数据用途消费者画像:基于 5 维消费行为把电商用户分为高净值 / 重度用户 / 价值新客 / 沉睡用户 4 类
变量说明月消费金额(元)、月购买频次(次)、平均客单价(元)、网购年限(年)、活动参与度(1-10)。

完整案例

1. 背景

某电商平台运营团队希望对存量用户做精细化分层,以便对不同人群投放不同的营销策略:高净值客户需要 1 对 1 服务,重度用户要提客单价,新客要做留存,沉睡用户要做唤醒。问题是:用户行为是连续变量(消费金额、购买频次等),没有现成标签,必须用聚类把用户"挖"出来。本案例基于 300 位用户的 5 维消费行为(月消费金额、月购买频次、平均客单价、网购年限、活动参与度)用 K-means 聚类回答三个问题:①最合适的 K 是多少?②各簇用户的典型画像是什么?③5 个变量是否都对分类有区分力?

2. 理论与公式

K-means 把 N 个样本按欧氏距离分入 K 个簇,目标是让簇内方差最小、簇间距离最大;选 K 用肘部法 + 轮廓系数;变量区分力用 ANOVA F 检验。

目标函数(类内平方和)

μk 是第 k 个簇中心。SSE 越小簇内越紧凑,但 K 越大 SSE 必然减小,需配合下面两个指标选 K。

轮廓系数

a(i) 同簇平均距离,b(i) 最近异簇平均距离;s∈[-1,1],越接近 1 越好,一般 >0.5 视为结构清晰。

变量区分力(ANOVA F)

对每个变量分簇做单因素 ANOVA,F 越大、p 越小说明该变量越能区分簇。

3. 数据结构

每行 1 位用户,5 列连续变量描述其消费行为。所有变量均为定量变量,可直接进入 K-means(聚类前需标准化以消除量纲差异):

变量名类型单位 / 取值业务含义
月消费金额连续元(100-30000)用户近 30 天总订单金额,反映消费力
月购买频次连续次(0-50)近 30 天下单次数,反映粘性
平均客单价连续元(50-5000)单笔订单平均金额,反映档次偏好
网购年限连续年(0-20)注册时长,反映成熟度
活动参与度连续1-10 评分大促 / 优惠券使用频率,反映价格敏感性

K-means 仅支持定量变量;如含性别、城市等分类变量需先 One-Hot 编码或改用 K-Prototypes / 两步聚类。所有变量量纲差异大时(如金额 vs 评分)必须 Z-score 标准化,否则金额会主导距离计算。

4. 操作步骤

  1. 登录 SPSSzero,进入 工作台 → 上传 cluster.xlsx
  2. 左侧方法栏 → 进阶方法 → 点击 聚类分析(K-means)
  3. 把 5 个变量(月消费金额 / 月购买频次 / 平均客单价 / 网购年限 / 活动参与度)拖入 聚类变量
  4. 设置 聚类个数 K(先填 K=4;如想自动选 K 可勾选"自动选 K"或先用肘部法 + 轮廓系数比较多个 K)
  5. (可选)勾选 标准化(默认开启,强烈建议保留)
  6. 点击 开始分析,查看选 K 指标表、聚类中心表、ANOVA 区分力表

5. 结果表格与结果阅读

结果区按 选 K → 看簇 → 验证变量 三步输出。下面是 K-means 在 cluster.xlsx 上的实测结果(标准化后,random_state=42, n_init=10):

表1 不同 K 值的选 K 指标(N=300)
K 值SSE(类内平方和)SSE 下降幅度轮廓系数判定
K=2938.830.369结构偏弱
K=3528.29↓ 43.7%0.482轮廓最高
K=4376.92↓ 28.7%0.444业务最优 ✓
K=5352.35↓ 6.5%0.370肘部之后
K=6330.77↓ 6.1%0.285过度分割
K=7309.37↓ 6.5%0.274过度分割
肘部出现在 K=4(之后 SSE 下降仅 6.5%);K=3 轮廓系数最高(0.482),K=4 略低(0.444)但仍属"结构清晰",且能进一步拆出"高净值"和"重度用户"两类高价值人群,业务可解释性更强 → 最终选 K=4。

选 K 不是纯统计问题:当多个 K 的轮廓系数都 >0.4 时,应优先选业务上能命名、能落地策略的 K。这里 K=3 会把"高净值"和"重度用户"合并,运营无法区分对待。

表2 各簇中心与规模(K=4,原始尺度)
簇号画像命名样本数占比月消费金额(元)月购买频次(次)平均客单价(元)网购年限(年)活动参与度
簇 3高净值客户6521.7%82235.616705.76.1
簇 2重度用户7826.0%510218.33738.08.5
簇 0价值新客9130.3%26846.74952.37.1
簇 1沉睡用户6622.0%11132.03974.13.1
加粗为该簇在该维度上的最高值;命名依据簇中心在 5 维上的相对位置,对应电商运营常用的"金字塔分层"。

关键观察:簇 3(高净值)以客单价 1670 元领跑(其他簇 <500);簇 2(重度用户)以月 18 次购买频次 + 8.5 活动参与度领跑;簇 0(价值新客)网购年限仅 2.3 年但活动参与度高(7.1)→ 可培养潜力;簇 1(沉睡用户)所有维度都偏低 → 需唤醒。4 类规模分布均衡(22%-30%),无极端小簇。

表3 ANOVA F 检验 - 5 个变量对聚类的区分力(df=3, 296)
变量F 统计量p区分力排序判定
月购买频次508.05<0.0011(最强)★★★ 核心区分变量
平均客单价334.70<0.0012★★★ 核心区分变量
月消费金额330.84<0.0013★★★ 核心区分变量
网购年限261.71<0.0014★★ 重要
活动参与度173.46<0.0015★★ 重要
5 个变量的 ANOVA 均 p<0.001 → 全部对聚类有显著区分力;月购买频次(F=508)区分力最强,月消费金额 + 平均客单价 + 月购买频次 3 个金额/行为变量共同主导聚类结构。

7. 文字分析

对 300 位电商用户的 K-means 聚类(K=4)综合分析:

  • 选 K 依据:肘部法显示 K=4 之后 SSE 下降幅度从 28.7% 骤降到 6.5%(肘部明显);轮廓系数 K=3 (0.482) 略高于 K=4 (0.444),但两者均 >0.4 属结构清晰;最终从业务可解释性选 K=4,能区分"高净值(高客单)"和"重度用户(高频次)"两类高价值人群。
  • 变量贡献:5 个变量 ANOVA 全部 p<0.001,区分力排序为 月购买频次(F=508)> 平均客单价(F=335)> 月消费金额(F=331)> 网购年限(F=262)> 活动参与度(F=173),说明聚类结构由消费行为而非用户属性主导,结果稳健。
  • 4 类典型画像
    • 高净值客户(21.7%,月均 8223 元 / 客单 1670 元):低频高客单的精品消费者;
    • 重度用户(26.0%,月 18 次 / 活动参与 8.5):粘性最强的"刷子用户",对优惠敏感;
    • 价值新客(30.3%,年限 2.3 年 / 活动参与 7.1):注册时间短但活跃度高的待培养客群;
    • 沉睡用户(22.0%,月 1113 元 / 频次 2 次):所有维度均偏低的流失边缘人群。

结论:用户消费行为存在清晰的 4 层分布,可对应制定差异化运营策略 —— ①高净值:1 对 1 客户经理 + 专属高端商品推荐,重点提复购;②重度用户:通过满减阶梯 + 跨品类券提客单价(当前客单仅 373 元,提升空间最大);③价值新客:新人专享券 + 内容种草加速首单到二单转化;④沉睡用户:召回短信 + 大额优惠券激活,6 个月仍不动则降低触达成本。

8. 剖析提醒

聚类结果依赖变量尺度,连续变量必须先做 Z-score 标准化再聚类,否则量纲大的变量(如月消费金额)会主导距离计算。K-means 对初始簇中心敏感,建议设置 n_init > 10 取最优解;对离群值也敏感,可先做离群点剔除再聚类。聚类是无监督方法,簇命名必须结合业务知识,不能仅看簇号。