六个城市、三个变量、一张二维图:多出来的那个变量,靠点的大小编码进去,这就是气泡图。 图一画出来就看见负相关:转化率高的城市,客单价低。这个负相关是真的,但它不是「谁做得更好」。 换一个比较对象——每千访客收入——六个城市的排名换了个样子。选错比较对象,比数据太多危险得多。
上一篇把「比什么」定成了转化率。这一篇往上加一个维度:除了比转化率,还想同时看客单价。 三个变量、六个观察值,这是数据分析里最舒服的规模——图能画清,人也能记住。
一、三个变量一张图
六个城市各有一个转化率和一个客单价,这是两个连续变量,正好放在 x 和 y 上。 第三个变量是订单量,没有第三根轴,就把它编码成点的大小——气泡图。 气泡图的代价要记住:人对面积的分辨力很差。两个圆面积差一倍,看着只差一点点。 所以大小只适合「大致分级」,不适合读精确值。
二、负相关这件事
六个点摆开,大体是一条从左上往右下的斜线:转化率越高的城市,客单价越低。 北京 3.4%/268 元,上海 3.9%/292 元,都在右上;西安 5.2%/188 元,落在右下。 容易读错的一步:这不是「西安做得更好」,是「西安来的人更愿意买便宜货」。
负相关只是说两个数一起动,方向相反。它不告诉你谁好谁坏,甚至不告诉你哪个是因。
三、换一个比较对象,排名换一个样子
有人看到这张图会说:西安转化率最高,把资源往西安倾斜。 那就换个比法:每千访客带来的收入 = 转化率 × 客单价 × 1000。
| 城市 | 转化率 | 客单价 | 每千访客收入 | 排名 |
|---|---|---|---|---|
| 上海 | 3.9% | 292 | 11388 | 1 |
| 杭州 | 4.1% | 255 | 10455 | 2 |
| 西安 | 5.2% | 188 | 9776 | 3 |
| 成都 | 4.6% | 205 | 9430 | 4 |
| 北京 | 3.4% | 268 | 9112 | 5 |
| 广州 | 2.8% | 241 | 6748 | 6 |
转化率第一的西安,收入只排第三;收入第一的上海,转化率排第四。 两个排名都对,因为它们回答的是两个不同的问题:一个问「来的人里多少买」, 一个问「一千个人能掏出多少钱」。
四、数据多不是问题,选错对象才是
这一节最想让人记住的一句话:数据太多绝不会成为你的问题。 三个变量、三十个变量都能画,画不下就分面、就拆图。 真正会毁掉结论的是另一件事——拿一个不合适的比较对象去比。 合适的比较对象由「要做什么决定」决定:要给谁加预算,比每千访客收入;要改落地页,比转化率; 要调商品结构,比客单价。
先定决定,再定指标,最后定图。顺序反了,就会像前一位设计师那样,画了三张漂亮的图, 一张也用不上。
五、每千访客收入也不是唯一答案
每千访客收入高,也可能只是因为客单价高、毛利低。要比利润,还得乘上毛利率。 每往下一层,就多一个变量、多一个口径。 所以分析很少有一次到位这回事,都是「先答一个粗问题,再往下追」。 这一层一层往下追的过程,就是这本书后面几章要讲的东西:抽样、假设检验、回归。
六、动手 Demo:数据太多不是你的问题
六个城市、三个变量画成气泡图,再把每千访客收入算出来对照。 重点不在图,在「换个比法,排名就换一个样子」这件事。
CITY = [("北京", 3.4, 268.0), ("上海", 3.9, 292.0), ("广州", 2.8, 241.0),
("成都", 4.6, 205.0), ("杭州", 4.1, 255.0), ("西安", 5.2, 188.0)]
rev = [(nm, cr, cr / 100.0 * 1000 * aov) for nm, cr, aov in CITY]
rev.sort(key=lambda x: -x[2])
by_cr = sorted(CITY, key=lambda c: -c[1])
print("按每千访客收入排")
for i, (nm, cr, v) in enumerate(rev, 1):
print("%d. %s 转化率 %.1f%% 每千访客 %5.0f 元" % (i, nm, cr, v))
print()
print("按转化率排")
for i, (nm, cr, aov) in enumerate(by_cr, 1):
print("%d. %s %.1f%%" % (i, nm, cr))
print()
xa = [nm for nm, _, _ in rev].index("西安") + 1
sh = [nm for nm, _, _ in rev].index("上海") + 1
print("西安:转化率第 1,收入第 %d" % xa)
print("上海:转化率第 4,收入第 %d" % sh)
实跑输出:
--------------------------------------------------------------------
数据太多不是你的问题
--------------------------------------------------------------------
① 一次看三个变量
--------------------------------------------------------------------
六个城市,每个城市有三个数:转化率、客单价、订单量。
三个变量画在一张二维图上,靠「点的大小」把第三个塞进去。
气泡图存成 PNG:17322 字节
② 这张图说了什么
--------------------------------------------------------------------
大体上是一条从左上往右下的斜线:转化率高的城市,客单价低——但中间有散点。
北京、上海:转化率 3.4%/3.9%,客单价 268/292 元。
西安:转化率 5.2%,客单价只有 188 元。
! 这不是「西安做得更好」,是「西安来的人更愿意买便宜货」。
③ 数据多不是问题,选错比较对象才是
--------------------------------------------------------------------
有人看到这张图会说:把资源往西安倾斜,因为它转化最高。
可算一下每个城市的「每千访客收入」——转化率乘客单价,排名会换一个样子。
| 城市 | 转化率 | 客单价 | 每千访客收入 |
|---|---:|---:|---:|
| 北京 | 3.4% | 268 | 9112 |
| 上海 | 3.9% | 292 | 11388 |
| 广州 | 2.8% | 241 | 6748 |
| 成都 | 4.6% | 205 | 9430 |
| 杭州 | 4.1% | 255 | 10455 |
| 西安 | 5.2% | 188 | 9776 |
按每千访客收入排:上海 11388 元、杭州 10455 元、西安 9776 元、成都 9430 元、北京 9112 元、
广州 6748 元。
转化率第一的西安,收入排第 3;收入第一是 上海,它的转化率 3.9% 只排第 4。
! 排名换了个位置,说明「谁最好」这个问题,答之前得先说清按什么排。
④ 一张图能装几个变量
--------------------------------------------------------------------
| 图形元素 | 能编码的量 | 注意 |
|---|---|---|
| 位置(x、y) | 两个连续变量 | 最准,优先用 |
| 大小 | 一个正数量 | 人对面积不敏感,别用来比精确值 |
| 颜色 | 一个分类或一个有序量 | 超过 6 色就看不清了 |
| 分面 | 一个分类变量 | 最可靠,但占地方 |
两个排名都算对了,差别只在「分子是什么」。排名换位置,不是谁算错了,是问题问的不一样。 气泡图本身还有个坑:点的大小编码的是订单量,而人对面积不敏感。 所以这张图能看出「谁大谁小」,看不出「大多少」。
30 秒实验
- 把每千访客收入再乘一次毛利率(假设分别为 32%、28%、35%、30%、33%、26%),排名会变吗?
- 如果只看「新增访客成本」,比较对象又会换成什么?
- 想一想:为什么书上反复说「数据多不是问题」?数据多到底会带来什么真实的麻烦?
常见误区
- 把负相关读成因果:转化率高、客单价低,可能只是这两类人群的消费习惯不同。
- 只看一个指标就下结论:转化率第一不等于最值得投钱,收入第一也不等于利润第一。
- 用面积比精确值:气泡大小只适合分档,读「差 12%」这种精度纯属自欺。
- 指标越加越多:每加一个变量就多一个口径,最后谁也说不清结论是怎么来的。
自测三问(点开对答案)
1. 气泡图把第三个变量编码成了什么?代价是什么? —— 编码成点的大小。代价是人对面积不敏感,只能看出大致分级,读不出精确差异。 2. 为什么西安转化率第一、收入却只排第三? —— 因为客单价低。收入 = 转化率 × 客单价,一个高一个低,乘起来就落到中间。 3. 该选哪个指标当比较对象? —— 由要做的决定决定。加预算看每千访客收入,改落地页看转化率,调商品结构看客单价。三个变量都能塞进一张图了,但塞进去不等于比得对。下一篇讲比较本身的规矩:同口径、同基线、同尺度。
- ☐ (本篇完,下一篇 4.4 正确比较是图形化的根本)