V2 加的不是代码,是四个问题:总量与结构、变化、异常、归因。 顺序有讲究:先总量再看变化,先看变化再看异常,最后才谈原因。反了就是编故事。 同样一份数据,四道题从 2/4 到 4/4。但狗粮一吃,又撞出新问题:它不说「所以呢」。
上一篇的 V1 只会统计,这一篇给它加上「比较」和「归因」两种能力。 第 6.2 节的「可扩展」在这里体现:加的是问题,不是把脚本写得更长。 四问这个框架可以搬到任何分析类技能上,第 7.4 节会把它收进四个心法。
一、核心痛点:有数字没结论
V1 的问题不是算错,是只给原料不给菜。一张汇总表放在那儿,还得你自己解读。 月末汇报要的不是表,是几句话:这个月怎么样、比上个月怎么样、哪里不对、为什么。 这四句话对应的就是四个问题。V2 要做的事只有一件:把这四个问题写进技能。
二、设计决策:加四次追问,不加代码
| 问 | 问什么 | 解决什么 |
|---|---|---|
| 一问 总量与结构 | 一共多少,各占多少 | 是多少 |
| 二问 变化 | 跟上一期比,涨还是跌 | 怎么变 |
| 三问 异常 | 哪里偏离得厉害 | 哪里不对 |
| 四问 归因 | 为什么会这样,能验证吗 | 为什么 |
四问的价值在于它是一份清单,不是一个能力。清单可以照着走,能力没法照着走。 所以 V2 的正文只多了四行,脚本一行没改。算环比那几步是脚本本来就有的能力,只是之前没人让它算。 这也是第 6.2 节那条「加问题不加代码」的具体样子:能力早就在,缺的是调用它的理由。
三、顺序为什么不能反
四问的顺序是固定的,而且顺序本身带着纪律。 先看总量再看变化:不知道基数,百分比没有意义。 先看变化再看异常:先知道整体在动,才知道哪一处动得反常。 最后才谈原因,而且原因必须能被数据验证。 顺序反了会怎样?先有原因再找数据,那就是编故事——而且编出来的故事往往特别顺。 所以正文里要把顺序写死,写成编号一二三四,不给它自由发挥的空间。
四、产出:四段结论
同一份数据,这次跑出四段,一段对应一问。
| 段 | 它说了什么 |
|---|---|
| 总量与结构 | 三个月合计 2988000,手机占 78.0% |
| 变化 | 二月环比 +4.3%,三月环比 -5.8% |
| 异常 | 三月手机掉得最快,是主要拖累 |
| 归因 | 手机二月冲高后回落,配件稳步涨 |
四段读下来,一段不多一段不少,而且每段都有数字。 有数字这一点很关键:没有数字的结论是感想,有数字的结论才能被质疑。
五、测试:四道题全过
同一批四道题,这次全过。过的原因不是它变聪明了,是这四个问题被写进了正文。 特别看第三题「逐月怎么变」:V1 答不了是因为没按月分组,V2 答得了是因为正文里明写了「跟上一期比」。 所以很多「模型做不到」的事,其实是「没人告诉它要做」。
六、吃自己的狗粮:又撞出新问题
V2 装好,第二次真用。这次它把「是什么、怎么变、为什么」都讲清楚了。 但汇报的时候还差一口气:领导问「那我这个月该怎么办」。 V2 答不了这一问。它分析了,但没有给建议,也没有交代数据口径。 这不是分析能力的问题,是交付形态的问题:要的东西从「结论」变成了「一份能交出去的报告」。 所以 V3 要补的不是第五问,是另外两节:建议和附注。
七、动手 Demo:V2 加一个四问框架,四道题全过
这一段把四问写进技能,用同一份数据再跑一遍,看四道题怎么全过的。 环比是两个真算的数,减法方向和除数都写在正文里,正文也标了。
mon = _mon() # 逐月合计
m0, m1, m2 = [v for _m, v in mon]
chg1 = (m1 - m0) * 100.0 / m0 # 二月对一月
chg2 = (m2 - m1) * 100.0 / m1 # 三月对二月
print('二月 %+.1f%% 三月 %+.1f%%' % (chg1, chg2))
实跑输出:
--------------------------------------------------------------------
V2 加一个四问框架,四道题全过
--------------------------------------------------------------------
① 加的不是代码,是四个问题
--------------------------------------------------------------------
| 问 | 问什么 | 解决什么 |
|---|---|---|
| 一问 总量与结构 | 一共多少,各占多少 | 解决「是多少」 |
| 二问 变化 | 跟上一期比,涨还是跌 | 解决「怎么变」 |
| 三问 异常 | 哪里偏离得厉害 | 解决「哪里不对」 |
| 四问 归因 | 为什么会这样,能验证吗 | 解决「为什么」 |
四问的顺序有讲究:先看总量再看变化,先看变化再看异常,最后才谈原因。
! 顺序反了就会出现「先有结论再找数据」,那是编故事,不是分析。
② 同样一份数据,这次跑出四段
--------------------------------------------------------------------
| 段 | 它说了什么 |
|---|---|
| 总量与结构 | 三个月合计 2988000,手机占 78.0% |
| 变化 | 二月环比 +4.3%,三月环比 -5.8% |
| 异常 | 三月手机掉得最快,是主要拖累 |
| 归因 | 手机二月冲高后回落,配件稳步涨 |
四段对应四问,一段不多一段不少。
③ 四道题这次全过
--------------------------------------------------------------------
| 考题 | 结果 | 它靠什么过的 |
|---|:---:|---|
| 总量是多少 | 过 | 第一段第一句 |
| 哪个品类占比最高 | 过 | 第一段带了占比 |
| 逐月怎么变 | 过 | 第二段带了两个环比 |
| 有没有异常 | 过 | 第三段点名了拖累项 |
从 2/4 到 4/4。加的不是更多代码,是一个固定的提问顺序。
④ 环比要跟上期比,方向别搞反
--------------------------------------------------------------------
| 比什么 | 怎么算 | 结果 |
|---|---|---|
| 二月对一月 | (1030000 - 988000) / 988000 | +4.3% |
| 三月对二月 | (970000 - 1030000) / 1030000 | -5.8% |
减法方向写反,涨跌就整体颠倒。这类错在正文里看不出来,只有算一遍才知道。
! 所以技能里要写清「用本期减上期,再除以上期」,别只写「算环比」。
⑤ 狗粮再吃一次:又撞出新问题
--------------------------------------------------------------------
| 项 | 具体 | 结论 |
|---|---|---|
| 我要什么 | 那我这个月该怎么办 | V2 给不了 |
| 它给什么 | 为什么会这样 | 分析了但没建议 |
| 缺什么 | 从分析到行动的那一步 | V3 要补 |
V2 把「是什么、怎么变、为什么」讲清楚了,但没回答「所以呢」。
这一步不是分析能力的问题,是交付形态的问题——要的东西从「结论」变成了「报告」。
第一段是四问框架:总量与结构、变化、异常、归因,一问解决一类问题。 第二段同一份数据跑出四段结论:2988000、手机占 78.0%、二月 +4.3%、三月 -5.8%。 四段对应四问,每段都带数字。没数字的结论是感想,有数字的才能被质疑。 第三段四道题全过。过的原因不是它变聪明了,是这四个问题被写进了正文。 第四段专门讲环比:用本期减上期再除以上期。减法方向写反,涨跌整体颠倒,而且正文里看不出来。 第五段狗粮再吃一次:V2 答不了「那我该怎么办」。缺的不是第五问,是建议和附注两节。 所以 V3 补的是交付形态,不是分析能力。
30 秒实验
- 把你的 V1 拿出来,写下它答不了的那一问,补成四问写进正文。脚本不用改。
- 检查你的技能里有没有写清减法方向:本期减上期,除以上期。写「算环比」不够。
- 拿 V2 的输出给你同事看,问他「还差什么」。他说的那句就是 V3 的需求。
常见误区
- 以为 V2 的进步来自更多代码。脚本一行没改,加的是四个问题。能力早就在,缺的是调用它的理由。
- 四问顺序随便排。先谈原因再找数据,就是编故事,而且编出来的故事往往特别顺。
- 把「模型做不到」当结论。很多做不到只是没人告诉它要做。 V1 答不了逐月变化,是因为正文里没写「跟上一期比」。
自测三问(点开对答案)
1. V2 加了什么?为什么说它没加代码? —— 加的是四个问题:总量与结构、变化、异常、归因。算环比的能力脚本本来就有,只是之前没人让它算。 2. 四问的顺序为什么不能反? —— 反了就是先有原因再找数据,那是编故事。先总量、再变化、再异常、最后归因,顺序本身带着纪律。 3. V2 的狗粮撞出了什么? —— 它答不了「那我该怎么办」。缺的不是第五问,是建议和附注两节,属于交付形态问题。下一篇给 V3 挂上报告模板和设计简报,产出从四段结论变成七节报告。
- ☐ (本篇完,下一篇 7.3 V3 生产版:交付专业可视化报告)