一、背景
数据分析中,会有一些分析方法来处理不同的问题。简单总结一下。
方法汇总:https://share.mindmanager.com/#publish/5v_9k6Z9J3gqPL9sQwAGGKL5DgNrclp4iq_q8C7L
方法链接:
二、RFM分析
2.1 定义
- R(Recency) : 客户距离最近的一次采购时间的间隔。
- F( Frequency) :指客户在限定的期间内所购买的次数。
- M(Monetary):客户的消费能力,通常以客户单次的平均消费金额作为衡量指标
2.2 计算&思路
2.2.1 思路
计算出一张表,设为t1,这张表以客户的ID或者其他唯一识别码为主键,其他的字段视情况而加
类似于Power BI中的维度表。
在t1的基础上计算出各自的平均值,然后与平均值比较,大于平均值的为真,小于平均值的假;
- R 当用户最近消费时间距指定时间小于用户平均值时,标记为 1 ,否则标记为 0
- F 当用户平均单次消费次数大于总体用户平均消费次数时,标记为 1 ,否则标记为 0
- M当用户平均单次消费金额大于用户总体平均消费金额时,标记为 1 ,否则标记为 0
R: 先求出各个用户的最近的消费时间,设为{R1},根据R1求出R2 = {R1}/N ,N为客户数。
F和M都是个体平均与总体平均的比较。
注:不一定是与平均值比较,也可以自己制定值。也不一定只有0和1两种选择,也可以实行打分制,比如1-5分。
2.2.2 代码展示
代码是Power BI的DAX函数
t78_RFM = VAR DAY_AC = LASTDATE ( '01_calendar'[dates] ) VAR TABLE_1 = ADDCOLUMNS ( ALLSELECTED ( 't02_客户表'[F_01_客户编号], 't02_客户表'[F_02_客户名称] ), "@最近下单日期", CALCULATE ( MAX ( 't04_订单主表'[F_03_下单日期] ) ), "@最近下单间隔", DATEDIFF ( CALCULATE ( MAX ( 't04_订单主表'[F_03_下单日期] ) ), DAY_AC, DAY ), "@消费次数", CALCULATE ( [0002_订单数量_单位_D_] ), "@消费金额", CALCULATE ( [0001_销售金额_单位_D_] ) ) VAR TABLE_2 = FILTER ( TABLE_1, AND ( [@最近下单间隔] >= 0, [@最近下单间隔] <> BLANK () ) ) VAR R0 = AVERAGEX ( TABLE_2, [@最近下单日期] ) VAR F0 = AVERAGEX ( TABLE_2, [@消费次数] ) VAR M0 = AVERAGEX ( TABLE_2, [@消费金额] ) VAR TABLE_3 = ADDCOLUMNS ( TABLE_2, "@R", IF ( [@最近下单日期] >= R0, 1, 0 ), "@F", IF ( [@消费次数] >= F0, 1, 0 ), "@M", IF ( [@消费金额] >= M0, 1, 0 ) ) VAR TABLE_4 = ADDCOLUMNS ( TABLE_3, "@RFM", [@R] & [@F] & [@M] ) VAR TABLE_5 = ADDCOLUMNS ( TABLE_4, "@客户特征", SWITCH ( TRUE (), [@RFM] = "111", "重要价值客户", [@RFM] = "101", "重要发展客户", [@RFM] = "011", "重要保持客户", [@RFM] = "001", "重要挽留客户", [@RFM] = "110", "一般价值客户", [@RFM] = "100", "一般发展客户", [@RFM] = "010", "一般保持客户", [@RFM] = "000", "一般挽留客户" ) ) RETURN TABLE_5
2.3 效果展示
用Power BI所做。
三、帕累托分析
3.1 定义
帕累托分析,也称为ABC分析。
分类的核心思想:少数项目贡献了大部分价值;找出重点和非重点;从而实现差异化策略和管理。
3.2 计算&思路
3.2.1 思路
- 计算出个体的价值与总计占比
- 按照个体的价值从大到小排序
- 按照顺序将总计占比相加,计算出累计占比
3.2.2 代码
代码为Dax语言。
主要实现累计占比。
VAR TABLE_0 = ADDCOLUMNS ( ALL ( 'd01_省份表'[F_02_省ID], 'd01_省份表'[F_03_省全称], 'd01_省份表'[F_04_省简称] ), "@销售金额", [0001_销售金额_单位_D_], "@排名", RANKX ( ALL ( 'd01_省份表'[F_02_省ID], 'd01_省份表'[F_03_省全称], 'd01_省份表'[F_04_省简称] ), [0001_销售金额_单位_D_], [0001_销售金额_单位_D_], DESC ) + RANKX ( ALL ( 'd01_省份表'[F_02_省ID], 'd01_省份表'[F_03_省全称], 'd01_省份表'[F_04_省简称] ), 'd01_省份表'[F_04_省简称] ) / 1000 ) VAR TABLE_1 = ADDCOLUMNS ( TABLE_0, "@R", VAR R = [@排名] RETURN RANKX ( TABLE_0, [@排名], R, ASC ) ) VAR SF = MAXX ( 'd01_省份表', 'd01_省份表'[F_04_省简称] ) VAR TABLE_2 = FILTER ( TABLE_1, [F_04_省简称] = SF ) VAR R_0 = MAXX ( TABLE_2, [@R] ) VAR TABLE_3 = FILTER ( TABLE_1, [@R] <= R_0 ) VAR LJJE = SUMX ( TABLE_3, [@销售金额] ) -- VAR LJJE2 = CALCULATE([0001_销售金额_单位_D_],TABLE_3) VAR ZJE = CALCULATE ( [0001_销售金额_单位_D_], ALL ( 'd01_省份表'[F_02_省ID], 'd01_省份表'[F_03_省全称], 'd01_省份表'[F_04_省简称] ) ) VAR LJZB = DIVIDE ( LJJE, ZJE ) RETURN LJZB
3.3 效果展示
用Power BI所做。
四、购物篮分析
4.1 定义
通过研究用户消费数据,将不同商品之间进行关联,并挖掘二者之间联系的分析方法,即「购物篮分析」
若提升度>1,则证明两种商品关联度高,两种商品的组合方式有效,可以考虑放在一起售卖。
4.2 计算&思路
- 支持度:支持度是指A商品和B商品同时被购买的概率,或者说某个商品组合的购买次数占总商品购买次数的比例。
支持度说明了这条规则在所有事务中有多大的代表性,显然支持度越大,关联规则越重要。
公式:P(A n B) - 置信度:置信度是指购买A之后又购买B的条件概率,简单说就是因为购买了A所以购买了B的概率。
公式:P(B|A) - 提升度:用来判断商品组合方式是否具有实际价值,
是看组合商品被购买的次数是否高于单独商品的购买次数,大于1说明该组合方式有效,小于1则说明无效
公式:P(A n B) /[P(A)*P(B)]
4.3 效果展示
虚位以待
4.4 对比
4.4.1 定义
皮尔逊相关系数:是用于度量两个变量X和Y之间的相关(线性相关),其值介于-1与1之间。
4.4.2 代码
from sklearn import datasets from scipy.stats import pearsonr import numpy as np import pandas as pd # 获取数据集 iris = datasets.load_iris() df = pd.DataFrame(data=iris.data, columns=iris.feature_names) dict_pear = {} for column in df.columns: dict_pear[column] = np.round(pearsonr(df[column], iris['target'])[0], 4) print(dict_pear)
结果:
{'sepal length (cm)': 0.7826, 'sepal width (cm)': -0.4267, 'petal length (cm)': 0.949, 'petal width (cm)': 0.9565}
4.4.3 对比
- 购物篮的行维度的找相关性,皮尔逊是列维度的找相关性。
五、四象限法
5.1 定义
通过两个维度,对目标进行分组
5.2 计算&思路
- 选择维度
- 设置维度的分割点
- 形成四个象限与散点图
5.3 效果展示
5.3.1 波士顿矩阵图
市场增长率-相对市场份额矩阵
5.3.2 用户生命状态
「最近一次登录距今的时间」和「第一次登录距今的时间」
-
新用户:刚开始在较短的一段时期内登录/购买了产品的客户。
-
一次性用户:在较短一段时间内登录/购买产品后,近期不再继续购买的客户。
-
忠实用户:在较长一段时间内持续登录/购买产品,且在近期仍有购买行为的客户。
-
流失用户:在较长一段时间内持续登录/购买了产品,但近期不再有购买行为的客户。
六、库存周转分析
6.1 定义
是一种评估企业存货管理和销售效率的重要方法。它通过计算存货周转率来衡量企业存货的流通速度。
6.2 计算&思路
6.2.1 思路
- 要计算出各个周期的,不同周期(年月周)的期初与期末库存
- 上期期末即是本期期始,计算本期期始就是计算上期期末。
- 关键是要计算出各个周期,不同周期的期始期末时间
计算公式
- 平均存货:(期初库存+期末库存)/2
- 库存周转率:出库/平均存货
- 期间周转天数:N/期间存货周转率, N为周期内的天数
年度:N = 360 半年:N = 180 季度:N = 90
月度:N = 30 周度:N = 7 单日: N = 1
6.2.2 代码展示
计算期始库存
0800_产品数量_库存_期初_单位_ = VAR DAY_MIN = MINX ( ALL ( '01_Calendar' ), '01_Calendar'[dates] ) VAR DAY_MAX = TREATAS( {MAXX(ALL('t03_入库信息表'),'t03_入库信息表'[F_04_入库日期] )},'01_calendar'[dates]) VAR DAY_AC = LASTDATE ( '01_calendar'[dates] ) VAR DAY_TABLE = FILTER ( '01_calendar', '01_calendar'[dates] = DAY_AC ) VAR DAY_STARTOFWEEK = MAXX ( DAY_TABLE, '01_calendar'[StartOfWeek] ) //表中已经有字段计算出每周的第一天 VAR DAY_STARTOFMONTH = MAXX ( DAY_TABLE, '01_calendar'[StartOfMonth] ) //表中已经有字段计算出每月的第一天 VAR DAY_STARTOFQUATER = MAXX ( DAY_TABLE, '01_calendar'[StartOfQuarter] ) //表中已经有字段计算出每季度的第一天 VAR DAY_STARTOFHALFYEAR = MAXX ( DAY_TABLE, '01_calendar'[StartOfHalfYear] ) //表中已经有字段计算出每半年的第一天 VAR DAY_STARTOFYEAR = MAXX ( DAY_TABLE, '01_calendar'[StartOfYear] ) //表中已经有字段计算出每年的第一天 VAR TF0 = HASONEVALUE ( '01_Calendar'[dates] ) VAR TF1 = HASONEVALUE ( '01_Calendar'[YW] ) VAR TF2 = HASONEVALUE ( '01_Calendar'[YM] ) VAR TF3 = HASONEVALUE ( '01_Calendar'[YQ] ) VAR TF4 = HASONEVALUE ( '01_Calendar'[YH] ) VAR TF5 = HASONEVALUE ( '01_Calendar'[FY00] ) VAR STARTOFDATE1 = SWITCH ( TRUE (), TF0, DAY_AC, TF1, DAY_STARTOFWEEK, TF2, DAY_STARTOFMONTH, TF3, DAY_STARTOFQUATER, TF4, DAY_STARTOFHALFYEAR, TF5, DAY_STARTOFYEAR, BLANK() ) VAR STARTOFDATE = TREATAS ( { STARTOFDATE1 }, '01_calendar'[dates] ) VAR DAY_QC = IF(DAY_MIN<=DATEADD ( STARTOFDATE, -1, DAY ),DATEADD ( STARTOFDATE, -1, DAY ),DAY_MIN) -- VAR DAY_QC = IF(DAY_QC1<=DAY_MAX,DAY_QC1,DAY_MAX) VAR DATE_QC = DATESBETWEEN ( '01_calendar'[dates], DAY_MIN, DAY_QC ) VAR LK = CALCULATE ( SUM('t03_入库信息表'[F_02_入库产品数量]), DATE_QC) VAR CK = CALCULATE ( [0019_产品数量_出库_单位_D_], DATE_QC ) VAR KC = LK - CK RETURN KC
6.3 结果展示
七、漏斗分析
7.1 定义
用于评估在用户转化过程中,从初步互动到最终目标完成的每个阶段的转化率或流失情况。
有三要素
-
时间:特指漏斗的转化周期,即为完成每一层漏斗所需时间的集合
- 节点:每一层漏斗,就是一个节点
- 流量:就是人群
7.2 计算&思路
转化率 = 通过该层的流量/到达该层的流量
要注意,分子一定是分母的一部分。
7.3 结果展示
虚位以待
八、用户粘性分析
8.1 定义
用户粘性是指用户对于品牌或产品的忠诚、信任与良性体验等结合起来形成的依赖程度和再消费期望程度,是了解产品健康度的重要指标。
8.2 计算&思路
一周内,1-7天,每天使用的客户占比与数量
主要用饼图
每周,1-7天,每天使用的客户占比与数量
主要用折线图与柱状图
8.2.1 思路
- 计算出订单表中在目标日期中的部分,设为t1
- 计算出t1中客户在目标日期的消费天数
- 计算出不同消费天数的客户占比
如果在Power BI中,使用计算组是否更好呢?
8.3 结果展示
虚位以待
九 留存分析
9.1 定义
留存分析是一种用来分析用户参与情况/活跃程度的分析模型,考查看进行初始行为后的用户中, 经过一段时间后仍然存在客户行为(如登录、消费)
9.2 计算&思路
9.2.1 思路
某一段时间内(时间段a)的新增用户在若干天后的另一段时间(时间段b)的留存数量 / (时间段a)的新增用户总量
- 和漏斗分析一样,分子必须是分母的一部分
- 留存中,第5天留存,不一定在第3天留存
9.2.2 代码
SQL SERVER代码
select F_03_下单日期,count(*) as 下单人数 ,SUM(CASE WHEN 间隔日期 = 1 THEN 1 ELSE 0 END) AS '次日留存人数' ,SUM(CASE WHEN 间隔日期 = 2 THEN 1 ELSE 0 END) AS '2日留存人数' ,SUM(CASE WHEN 间隔日期 = 3 THEN 1 ELSE 0 END) AS '3日留存人数' ,SUM(CASE WHEN 间隔日期 >= 4 THEN 1 ELSE 0 END) AS '4日即以上留存人数' from ( select A.F_03_下单日期,A.F_05_客户编号,B.F_03_下单日期 as 后期下单日期 ,datediff(day,A.F_03_下单日期 ,B.F_03_下单日期 ) as 间隔日期 from cnblogs.keep.订单表 AS A LEFT JOIN cnblogs.keep.订单表 AS B ON A.F_05_客户编号 = B.F_05_客户编号 WHERE A.F_03_下单日期 < B.F_03_下单日期 ) as t1 GROUP BY F_03_下单日期
9.3 结果展示
10 客户画像
10.1 定义
通过了解用户的基本信息,行为信息,需求信息等,了解不同客户的客户的不同需求,实现精准推广获客,营销获利。
10.2 计算&思路
- 基本信息:年龄 性别 地域 学历 职业 资产
- 行为信息:点击 分享 收藏 评论 复购 投诉
- 需求信息:购买产品的功能,投诉的诉求
11 AARRR用户运营分析
11.1 定义
解释实现用户增长的 5 个指标:获客、激活、留存、收益、传播。从获客到传播推荐,整个 AARRR 模型形成了用户全生命周期的闭环模式,不断扩大用户规模,实现持续增长。
- Acquistion:用户获取,获客即拉新,即让用户知道了解认识到有这样一个 APP 并来试用。
- Activation:用户激活,激活并不直接对等注册成功。激活要做的是活跃客户
- Retention:用户留存
- Revenue:获得收益
- Referral:推荐传播,当产品有了一定规模的用户之后,就需要考虑激发用户间的自发传播。自传播的数据指标是K因子(推荐系数)
11.2 计算&思路
- 获客:分析维度主要是数量与质量,
- 激活:短视频软件需要新用户观看到一定时长聊天; 软件需要新用户完成一次对话; 购物软件购买过一次的用户为激活用户;
- 留存:可以使用留存分析
- 收益:对收益客户实行帕累托分析,对收益客户实行RFM分析,对购买的产品实行购物篮分析,形成客户画像
- 传播:K=(平均每个用户向他的朋友们发出的邀请的数量)* (接收到邀请的人转化为新用户的转化率)
K值的高低,直接体现自传播结果水平,当K值大于1时,将激发自传播巨大的力量。
这些节点,也可以用作漏斗分析。
标签:数据分析,常用,01,模型,用户,客户,VAR,TABLE,DAY From: https://www.cnblogs.com/qianslup/p/18062910