发现了一个 ¥933 万的转化损失问题,定位到详情页→购物车这个全局瓶颈,用 PIE 矩阵给出了 P0/P1/P2 优先级策略和 ROI 估算。 从双漏斗方法论选型、到统计检验三件套配合、到损失量化和策略闭环,是一个从业务问题出发、经过多轮 AI 协作迭代的完整数据分析项目。
| 维度 | 关键信息 |
|---|---|
| 分析规模 | 633,450 会话 / 220 万行为事件 / 10 万用户 / 10 万笔交易 |
| 核心瓶颈 | 详情页→购物车交叉到达率仅 25.81%(74% 用户看完没加购),该环节年损失 ¥370 万,全链路合计 ¥933 万 |
| 最终产出 | P0/P1/P2 优先级策略 + 实施成本 + ROI 估算(预期 1.5-3:1)+ What-If 模拟 |
| 方法论 | 双漏斗模型 / Shift-Share 归因 / t 检验 + Cohen's d + Bonferroni / PIE 矩阵 |
| 技术栈 | Python 3.13+ / MySQL 8.4 / Pandas / SciPy / Matplotlib / Plotly / Power BI |
| 测试 | 47 个 pytest 用例,全部通过(~9s) |
| 运行 | pip install -r requirements.txt && python python/main.py(约 4 分钟) |
面试中反复被问到"你做过什么完整的数据分析项目?"——我发现自己能讲 SQL 查询、能讲图表、能讲统计方法,但缺少一个把这些能力串起来的端到端案例。与其等下一次面试再被问住,不如动手做一个能从"原始数据"一路推到"可执行策略"的完整项目。
电商转化率优化(CRO)是最适合的题材:业务逻辑直观、分析方法论丰富、从数据到策略的链路完整。我选择了 Kaggle 上的一套模拟电商数据集(220 万行),模拟了一个中大型电商平台 2021-2023 年的用户行为。
| 表 | 行数 | 字段 | 说明 |
|---|---|---|---|
events.csv |
2,000,000 | 12 | 用户行为事件流(浏览/点击/加购/购买) |
transactions.csv |
103,127 | 9 | 交易订单(含退款状态) |
customers.csv |
100,000 | 7 | 用户画像(忠诚度等级/获客渠道) |
products.csv |
2,000 | 6 | 商品信息(品类/价格) |
campaigns.csv |
50 | 7 | 广告活动(渠道/预算) |
数据为算法生成的模拟数据,非真实用户日志。所有分析结论用于方法论演示。 经清洗后最终用于分析的会话数为 633,450 条(38 列),详细清洗逻辑见 3.1 节。
一个电商平台的运营团队通常面临三个层次的问题:
| 层次 | 问题 | 如果没有分析 |
|---|---|---|
| 发生了什么? | 转化率是多少?哪个环节流失最严重? | 团队凭直觉优化,可能花三个月改首页,但瓶颈在详情页 |
| 为什么会发生? | 流失是渠道问题还是页面体验问题?不同用户群是否有差异? | 只能猜测,A/B 测试的方向全凭运气 |
| 应该怎么做? | 先改哪里?要花多少钱?改了能回本吗? | 资源分散,改了一堆但转化率没动 |
- 漏斗瓶颈在哪? → 详情页→购物车,交叉到达率仅 25.81%,是整个漏斗的断裂带。购物车→结算页虽然流失也多,但主要是深链流量结构问题,非体验问题。
- 用户真的按标准路径走吗? → 不。仅 0.02% 用户走完 Home→PLP→PDP→Cart→Checkout 全程。54.9% 的 PLP 流量跳过首页直达,95.8% 的 PDP 流量来自非标准路径。
- 不同渠道/设备/国家的瓶颈一样吗? → 不一样。Social、Paid Search、Organic 瓶颈在 PDP→Cart;Email 和 Direct 瓶颈在 Cart→Checkout。国家间差异不显著(p=0.63),不需要分国家策略。
- 流失意味着多少损失? → 年预估损失 ¥933 万。其中 PDP→Cart 占 ¥370 万(40%),PLP→PDP 占 ¥249 万(27%)。
- 先改哪里 ROI 最高? → P0:详情页改版(PIE 122 分,预期 ROI 1.5-3:1)。购物车→结算页虽然 Ease 最高,但 Potential 太低,优先级反而最低(P3,17 分)。
- 三年转化率为何下滑? → Shift-Share 分解显示几乎 100% 由质量效应驱动(各渠道内部 CR 同步腰斩),不是渠道结构变化。所有 5 个渠道 CR 降幅 50-63%,指向系统性原因,但也可能 2022-2023 年数据不完整。
数据探查 → 数据清洗 → 漏斗建模 → 多维诊断 → 流失根因 → 损失量化 & 策略闭环
五表加载 → traffic_source 字段标准化 → 会话时长异常值过滤(1s - 2h)→ 去重 → 漏斗宽表构建。
最终产出 funnel_wide.csv:633,450 行会话级数据,每行包含该会话是否到达了五个页面、是否触发了四种行为事件、所属渠道/设备/国家等维度字段。
第一个关键方法论决策。传统做法是按 Home→PLP→PDP→Cart→Checkout 的严格顺序统计各步转化率。但跑完数据后发现:仅 0.02%(73/300,782)的用户按严格顺序走完全程。95.8% 的 PDP 流量来自深链(广告直达、搜索直达),根本不过首页。
这意味着:单一漏斗模型会丢弃 95% 的用户行为信息。
解决方案:同时跑两套模型。
| 模型 | 统计方式 | 回答的问题 |
|---|---|---|
| 页面覆盖分析(宽松漏斗) | 各页面独立统计到达会话数,计算相邻页面交叉到达率 | 每个页面的触达能力如何?哪个环节覆盖下降最陡? |
| 严格路径漏斗 | 必须按时间顺序 Home→PLP→PDP→Cart→Checkout | 理想路径的留存率是多少?是否存在"跳跃式"浏览? |
两个模型对照阅读:覆盖分析定位问题所在(断裂带在详情页→购物车),严格漏斗揭示用户实际路径结构(绝大多数用户不走标准路径)。
在漏斗建模的基础上,按 6 个维度下钻:
- 渠道(Organic / Paid Search / Social / Email / Direct)
- 设备(Desktop / Mobile / Tablet)
- 国家 × 转化率
- 品类漏斗
- 用户忠诚度等级 × 转化
- 获客渠道 × 长期转化
每个维度都跑独立的漏斗分析,找差异最大的维度——差异越大,优化空间越大。
多维度下钻分析有一个陷阱:大样本下几乎所有差异都"显著"(63 万个会话,p 值动不动就 <0.001)。
用三种方法配合使用,避免误判:
| 方法 | 做什么 | 在本项目中的应用 |
|---|---|---|
| 独立样本 t 检验 | 检验两组的均值差异 | 流失用户 vs 转化用户的事件数、会话时长等行为指标差异 |
| Cohen's d | 量化效应大小 | 判断差异"实际上大不大"(d=0.2 小,0.5 中,0.8 大) |
| Bonferroni 校正 | 控制多重比较错误率 | 同时对多个维度跑检验时,提高显著性阈值 |
损失公式:流失会话数 × 预期转化率 × 客单价 ¥90.36
其中"预期转化率"为该环节到达者中最终购买的比例——而非假设所有流失用户 100% 会购买(后者会高估约 5.8 倍,¥59.76M → ¥9.33M)。但公式隐含一个假设:流失用户与留存用户的购买概率相同。真实业务中流失用户购买意愿往往更低,因此当前估算应理解为损失的上界,实际可能在当前值的 60-100% 区间。面试中能解释"我的数字在什么假设下成立",比给出一个精确数字更重要。
但这只是第一步。真正的策略闭环需要回答"然后呢?"——用 PIE(Potential × Importance × Ease)矩阵给每个瓶颈打分,按优先级排 P0/P1/P2,并估算每个优化方向的一次性投入和年化回报。
完整的 CRO 策略文档见 operations/cro_strategy.md,涵盖实施人天、成本估算、ROI 预估和 What-If 增量模拟。
如果只有半分钟向业务方展示,这条线是:
年损失 ¥933 万(首页 KPI)→ 74% 的用户在详情页看完没加购(瓶颈定位)→ 详情页改版是 P0,预期 ROI 1.5-3:1(可执行策略)→ 不同渠道需不同方案:Social / Paid Search 优化详情页,Email / Direct 优化结算页(差异化落地)。
以下图表和 Power BI 报表完整支撑这条叙事线的每个节点:
大字 ¥9,328,840 + 瓶颈定位 + 策略提示。面试官看这第一张图就知道项目做了什么、值多少钱。
详情页→购物车交叉到达率仅 25.81%。74% 的用户在详情页看完后没有把商品加入购物车。这是整个漏斗的断裂带。
不。必须按 Home→PLP→PDP→Cart→Checkout 时间顺序访问时,仅 0.02%(73/300,782)的会话走完全程。95.8% 的 PDP 流量来自深链(广告/搜索/邮件直达),不过首页和列表页。这张图是"为什么需要双漏斗"的直观证据。
浏览→点击→加购→购买的行为转化链。浏览→点击仅 54.4%,意味着近一半用户看完页面后没有任何点击行为——这是互动意愿的第一道坎。行为漏斗与页面漏斗互补:页面漏斗告诉你"用户到了哪",行为漏斗告诉你"用户到了之后做了什么"。
左:宽松覆盖,每个页面独立统计到达数;右:严格路径,必须按顺序经过。两者差异巨大——仅 4.2% 的 PDP 流量来自标准路径。
三个渠道(Social、Paid Search、Organic)的核心瓶颈在详情页→购物车,但 Email 和 Direct 渠道的瓶颈在购物车→结算页——邮件链接直达购物车后,结算体验成为断裂带。图中每个子图已显式标注瓶颈类型和优化方向,不再需要读者自行解读深色柱含义。
从 2021 年的 ~17% 降至 2023 年的 ~8%,三年降幅 53%。Shift-Share 分解显示几乎 100% 由各渠道内部转化率同步腰斩驱动,不是渠道结构变化。
每个环节导致的流失会话数和预估金额损失,用来判断"哪个环节损失最大"。
PIE = Potential × Importance × Ease(WiderFunnel 方法论,10 分制)。详情页→购物车得分最高(P=4.0, I=5.1, E=6.0 → 122 分),落在高影响+高易实施象限。每个气泡已标注 ROI 预估(一次性投入 vs 年挽回收入),实现优先级 + 回报率在一张图上同时呈现。
一次性投入 vs 年预期挽回收入,基于 What-If 模拟数据("PDP→Cart 提升 10pp"等三个场景)+ cro_strategy.md 实施成本。购物车→结算页 ROI 最高(>10:1,速赢),详情页→购物车绝对回报最大但投入也最高。
新老用户的页面漏斗几乎一致(瓶颈都在详情页→购物车,约 25.8%),但行为漏斗差异巨大——老用户的浏览→购买转化率(21.12%)是新用户(12.48%)的 1.7 倍。差异不在于"走什么路径",而在于每到一个页面后,老用户更愿意做点击、加购这类高意图动作。对新用户的优化方向不是改页面结构,而是引导互动深度。
回购留存:每行是一个月首次购买的用户同期群,每列是第 N 个月的回购率。回答的是"用户买了第一次之后,多久会回来买第二次?"
访问留存:每行是一个月首次访问的用户同期群,每列是第 N 个月的回访率。回购留存只覆盖购买用户(~15%),访问留存覆盖全部用户——回答的是"用户来了一次之后,还会不会再来?"两张图对照阅读:回购留存高但访问留存低的同期群,说明"逛的人多但买的人少",需要从转化入手而非流量。
PBIR 格式报表,双击 Ecommerce Funnel CRO.pbip 即可在 Power BI Desktop 中打开,支持交叉筛选和交互式下钻。powerbi/HOWTO.md 有完整的打开方式说明。
第 1 页 — 漏斗健康仪表板 (Funnel Health) 顶部 KPI 卡:总会话 633,450 / 转化率 15.08% / 年损失 ¥933 万。中部:页面漏斗(PDP→Cart 交叉到达率 25.81%)+ 行为漏斗(浏览→点击 54.4%)。底部:三年月度趋势(2021 年 CR 16.97% → 2023 年 7.98%,降幅 53%)。一页覆盖"发生了什么"的全部关键数字。
第 2 页 — 流量质量 (Traffic Quality) 渠道拆解:Organic 占 47% 流量但 CR 仅 12.98%(量最大但质最低),Social CR 最高 24.38% 但仅占 15% 流量。设备拆解:Desktop CR 16.32% vs Mobile 13.84%。国家间 CR 差异不显著(Cramér's V < 0.01,p=0.63),不需要分国家策略。
第 3 页 — 流失诊断 (Churn Diagnostics) 瀑布图:PDP→Cart 流失 24 万会话(环节流失率 74.2%),为全链路最大断裂带。流失特征表:流失用户平均事件数 3.32 vs 转化用户 4.47(Cohen's d=-0.74,中等偏大效应量)。渠道×设备热力图交叉定位不同切面的流失模式。
第 4 页 — 优先级矩阵 (Priority Matrix) PIE 条形图 + 数据明细表:PDP→Cart PIE=122(P0,P=4.0/I=5.1/E=6.0),PLP→PDP PIE=56(P1),首页→PLP PIE=54(P2),Cart→Checkout PIE=17(P3——Ease 最高 8.0 但 Potential 太低)。表内标注速赢项目和避免投入项。
第 5 页 — 用户分析 (User Analysis) 忠诚度 × 转化:Platinum CR 58.07% vs Bronze ~10%,高忠诚度用户是核心资产。获客渠道 × 长期转化:Referral 获客的用户长期转化最高。新老用户对比:老用户浏览→购买转化率(21.12%)是新用户(12.48%)的 1.7 倍——差异在行为深度而非页面路径。
现象:各渠道、各国家、各品类的转化率差异只有 1-2 个百分点。真实电商中,渠道间的转化率差 3-5 倍是常态。
应对:两个决定。(1) 继续用这个数据——数据分析师的日常就是面对不完美的数据;(2) 所有结论标注"基于模拟数据",在 README、文档、图表脚注中反复说明局限。面试中展示"知道自己不知道什么"比假装数据完美更成熟。
现象:宽松漏斗中,购物车到达数(172,491)少于结算页到达数(172,734),出现"下游超过上游"的反直觉结果。
应对:宽松漏斗统计的是"是否到达过该页面",不是"按顺序经过"。大量用户通过深链直达结算页(如邮件一键结账),因此结算页的独立到达数可以超过购物车——这是深链流量结构的正常体现,而非数据异常。将两个模型明确命名("覆盖分析" vs "严格路径"),并在图表标题中标注统计口径,避免混淆。
现象:63 万个会话,任何细小的差异(如 0.5pp 的转化率差)跑 t 检验都能得到 p < 0.001。
应对:t 检验 + Cohen's d + Bonferroni 校正三件套配合使用。t 检验确认差异是否大于随机波动,Cohen's d 量化差异的实际大小(多数 d 在 0.1-0.3 之间,属小效应),Bonferroni 保证多重比较不产生假阳性。面试中这展示了"知道自己用的方法有什么局限"的意识。
现象:最初在文档中把宽松漏斗的指标叫"转化率"。
应对:改名。宽松漏斗中"同时到达 A 和 B 的会话 / 到达 A 的会话"描述的是重叠关系,不是因果顺序关系。叫"转化率"会误导读者以为用户在按顺序走。改名为"交叉到达率"——一个命名差异背后是对指标口径的严谨态度。
项目包含 47 个 pytest 用例(全部通过,~9s),覆盖三个维度、四个测试文件:
| 文件 | 覆盖范围 | 用例数 | 关键边界值测试 |
|---|---|---|---|
tests/test_funnel_analysis.py |
漏斗计算、损失量化、PIE 优先级、流失特征、统计检验、Cohort 留存 | 22 | 流失会话数 ≤ 总会话、交叉到达率 ≤ 100%、转化率单调递减、Bonferroni α=0.0125 |
tests/test_data_cleaning.py |
会话时长异常值过滤、traffic_source 标准化、漏斗宽表构建 | 13 | 空 DataFrame 处理、缺失列防御、步骤列二进制约束 |
tests/test_integration.py |
端到端管道完整性、错误传播、空数据边界 | 12 | _safe_plot 单图失败不中断、_stage_runner 错误传递、无 transactions 时 AOV 回退 |
测试设计原则:构造数据使用偏态分布(Gamma/Poisson/LogNormal)模拟真实电商数据,而非均匀随机分布。损失计算有专门的测试验证 AOV 来源切换逻辑(transactions 表单笔均值 vs funnel_wide 估算)。
pytest tests/ -v
# 47 passed in ~9s| 阶段 | 产出 |
|---|---|
| 数据探查 | 五表质量报告 + 关联完整性校验 |
| 数据清洗 | funnel_wide.csv(633,450 行 × 38 列) |
| 漏斗建模 | 页面漏斗 ×2 + 行为漏斗 + 5 渠道漏斗 + 品类漏斗 |
| 多维诊断 | 渠道/设备/国家/品类/忠诚度/获客 × 时段/趋势/交叉 |
| 流失根因 | 统计显著性报告(含效应量 + 多重比较校正) |
| 策略闭环 | PIE 优先级排序 + 实施成本估算 + ROI 预估 + What-If 模拟 |
| 指标 | 数值 |
|---|---|
| 分析会话数 | 633,450 |
| 整体会话转化率 | 15.08% |
| 最大瓶颈 | 详情页→购物车(交叉到达率 25.81%) |
| 年预估损失 | ¥9,328,840 |
| 三年转化率降幅 | 53%(16.97% → 7.98%) |
| P0 优化方向 | 详情页改版(预期 ROI 1.5-3:1) |
从 220 万行原始事件数据出发,经过清洗、双漏斗建模、多维诊断、统计检验,最终输出 P0/P1/P2 优先级策略和对应的 ROI 估算——形成了从数据到决策的完整闭环。
这个项目的另一个维度是与 AI 的协作方式。全流程(代码、文档、图表)均通过 Claude Code + OpenClaw 双引擎协作完成,共 20+ 次 commit。
用户 (tian, 数据分析师)
│
├─→ Claude Code (VS Code 插件) ← 主力开发引擎
│ - 脚手架搭建、代码实现、调试
│ - 需求理解 & 方案设计
│ - 图表优化 & 参数调整
│ - Git 管理 & 文档编写
│
└─→ OpenClaw (FAFA, 工作区 Agent) ← 自主分析 & 质量把关
- 项目背景感知 (AGENTS.md, SOUL.md)
- 跨会话记忆 (memory/ 每日笔记)
- 主动发现数据问题 & 提出优化方向
- 按"简历导向"标准审视每个结论
项目的全部代码(Python、SQL、Power BI 配置)通过 Claude Code 在 VS Code 中完成,协作流程为:
- 需求表达:用自然语言描述分析目标("我需要一个双漏斗模型,宽松统计和严格路径各一套")
- 代码生成:Claude 生成完整的模块代码,包含类型提示、docstring、错误处理
- 迭代优化:运行 → 看结果 → 描述不满意的点 → Claude 修改 → 再运行
- 多轮审查:项目经历了多次内部 review(见
docs/reviews/),每次发现的问题都通过 Claude 修复
关键经验:用 AI 做数据分析的核心能力是"问对问题"——把模糊的业务需求("帮我分析转化率")拆解为精确的分析指令("跑五个渠道各自的漏斗,对比哪个环节差异最大,用 Cohen's d 量化效应")。
OpenClaw 是一个面向数据分析场景的 AI 工作区框架。在本项目中的配置:
- 身份定义(IDENTITY.md, SOUL.md):FAFA,一个"犀利洞察 + 严谨专业"的数据分析助手,核心理念是"用数据说话,不是用感觉说话"
- 工作约定(AGENTS.md):定义了分析六阶段的执行规范、指标口径约定、行业基准、禁止事项(不编造数据、诚实标注模拟数据局限)
- 持久记忆(memory/):跨会话维护项目上下文,避免每次对话都从零开始
- 简历导向标准:FAFA 被明确要求审视每个结论是否"够硬"——是否有统计检验支撑、是否有量化数字、是否有行业基准对标
关键经验:给 AI 建立"人设"和"工作约定",比裸写 prompt 有效得多。 FAFA 的人格(直接、严谨、简历导向)不是一句 system prompt,而是通过 SOUL.md + AGENTS.md + memory 三件套维持的稳定行为模式。
以"漏斗建模方法选型"为例:
- 用户提出:"帮我画个转化漏斗"
- Claude Code 实现第一版:严格的 Home→PLP→PDP→Cart→Checkout 顺序漏斗
- OpenClaw (FAFA) 在 review 中发现:95.8% 的 PDP 流量在严格漏斗中丢失,提出应加入宽松覆盖分析作为对照
- 用户采纳,Claude Code 实现双漏斗模型
- 后续 review 中,DeepSeek 和 MiniMax 的交叉验证确认了这个方向
项目还引入了一个独特实践:用不同的 AI 模型独立 review 同一份分析结果,然后对比它们的意见。
docs/reviews/ 目录下保存了完整的 review 记录:
- Claude (OpenClaw) 的自主分析意见
- DeepSeek 的独立 review
- MiniMax (Qwen) 的独立 review
- 三者的consolidated review——合并后的问题清单
不同 AI 的背景和训练数据不同,对同一份分析的关注点和判断标准也存在差异。引入多模型交叉 review 的目的,是让这些差异被显性化而非遗漏。
| 指标 | 数值 |
|---|---|
| 总 commit 数 | 20+ |
| 参与模型 | Claude Code(主力开发)+ OpenClaw(审查)+ DeepSeek + MiniMax(交叉验证) |
| 从启动到完成 | 约 2 周(含多轮迭代和重构) |
整套工作流的关键文件都在仓库中(AGENTS.md、SOUL.md、TOOLS.md、IDENTITY.md、memory/ 目录),其他数据分析师可以直接参考这套配置,建立自己的 AI 协作工作区。
ecommerce_funnel_analysis/
├── data/ # 原始数据 (未上传,需自行生成)
├── python/ # 分析引擎 (6 个模块)
│ ├── config.py # 全局配置 + CRO 行业基准 + 统计参数
│ ├── data_loader.py # 五表加载 + 探查 + 质量报告
│ ├── data_cleaning.py # 会话异常值清洗 + 漏斗宽表
│ ├── funnel_analysis.py # 20+ 分析函数 (双漏斗/多维诊断/统计检验/损失量化)
│ ├── visualization.py # 28 张图表 (matplotlib + plotly)
│ └── main.py # 主入口 (支持 --skip-viz / --output)
├── sql/ # 8 个独立 SQL 脚本 (MySQL 8.4)
├── powerbi/ # Power BI PBIR 报表 (5 页交互式 + PNG 预览)
├── docs/ # 分析文档 + 多 AI 交叉 review 记录
├── operations/ # CRO 策略详情 (含实施成本 + ROI 估算)
├── .openclaw/ # OpenClaw 工作区配置
├── output/charts/ # 28 张可视化图表
└── tests/ # pytest 单元测试 + 集成测试
pip install -r requirements.txt
python python/main.py运行环境:Python 3.13+ | MySQL 8.4(仅 SQL 脚本需要)| 内存 ≥ 4GB | 运行时间约 3-4 分钟
完整版分析文档见 docs/04-results.md,CRO 策略详情见 operations/cro_strategy.md。
Q: 为什么坚持跑两套漏斗?如果业务方只让你给一套,你选哪套?
A: 覆盖分析"问题在哪"(哪个环节覆盖下降最陡),严格漏斗"用户实际路径结构"(绝大多数人不走标准路径)。如果只能给一套,选覆盖分析——它能保留 95.8% 的 PDP 流量不丢失,且交叉到达率直接定位瓶颈。严格漏斗作为补充说明,解释为什么"转化率"这个叫法不准确。
Q: 你的损失 ¥933 万是怎么算的?假设靠谱吗?
A: 公式 流失会话数 × 预期转化率 × 客单价。预期转化率用该环节到达者中最终购买的比例,而非假设 100% 购买(后者会高估 5.8 倍)。但这个公式隐含假设"流失用户和留存用户购买概率相同"——真实业务中流失用户意愿更低,所以 ¥933 万是损失上界,实际可能在 60-100% 区间。面试中能解释"数字在什么假设下成立"比数字本身更重要。
Q: PIE 评分中的 Ease 是数据驱动还是拍脑袋?
A: Ease 基于电商优化经验估算(非数据驱动),已在文档中诚实标注。但 I(Importance)和 P(Potential)都基于漏斗数据计算。且 cro_strategy.md 中每个策略都有具体的人天和成本估算(如 P0 详情页改版 43 人天 / ¥14 万一次性投入),这些数字可以和 Ease 评分交叉验证。Ease ±1 的敏感性测试也不改变 P0 优先级。
Q: 2022-2023 年数据量下降 86.5%,你的趋势结论可靠吗?
A: 已在文档中诚实标注数据完整性风险。Shift-Share 分解显示"质量效应驱动了 ~100% 的下降",但如果 2023 年只覆盖了 Q1 数据,那就是采样偏差带偏了归因。真实场景下我会先跑逐月 session 数量探查,确认数据覆盖完整性后再决定是否调整对比口径或加置信区间。
Q: 这个项目没有预测模型——你怎么看转化率优化的预测性分析?
A: 项目已有确定性的 What-If 模拟("PDP→Cart 提升 10pp 则挽回 ¥X")。没有加 ML 模型的原因是:模拟数据本身的特征分布不反映真实电商,在上面跑逻辑回归/随机森林得到的特征重要性缺乏业务可解释性。但在真实业务数据上,我会用转化预测模型输出特征重要性来解释"什么驱动了购买",作为漏斗分析的补充——漏斗告诉你"在哪流失",模型告诉你"为什么流失"。
| 能力维度 | 本项目体现 |
|---|---|
| 业务理解 | 将模糊的"提升转化率"拆解为可度量的漏斗环节和 PIE 优先级 |
| 数据清洗 | 会话时长异常值处理、traffic_source 标准化、多表关联去重 |
| 分析框架设计 | 六阶段闭环 + 双漏斗模型 + 20+ 维度下钻体系 |
| 统计学基础 | t 检验、Cohen's d、Bonferroni 校正、卡方检验——知其所以然 |
| SQL 能力 | 8 个独立脚本,从建表到运营导出,含窗口函数和 CTE |
| Python 工程 | 模块化设计、CLI 参数化、日志系统、47 个 pytest 单元测试 + 集成测试 |
| 数据可视化 | matplotlib 静态图表 + plotly 交互式图表 + Power BI 报表 |
| 商业敏感度 | 损失金额量化、ROI 估算、P0/P1/P2 优先级排序 |
| 局限性意识 | 明确标注模拟数据、指标口径差异、不做虚假承诺 |
| AI 协作能力 | Claude Code + OpenClaw 双引擎工作流,多 AI 交叉验证 |
MIT

















