新版本发布灰度上线的因果效应评估(DID-Excel版)

项目背景

为提升首页流量分发效率与个性化推荐转化能力,某电商平台对 App 首页进行结构性改版,新增「猜你喜欢」瀑布流模块,通过算法实时捕捉用户兴趣,实现"千人千面"的商品曝光。

受限于服务端渲染能力与推荐算法算力,本次改版采用城市级灰度发布策略:杭州、成都作为实验组开启新版首页,南京、西安作为对照组维持旧版首页不变。

由于灰度城市与对照城市在用户画像、消费习惯及活跃度上存在天然差异,且同期存在季节性波动与运营活动干扰,简单对比无法识别瀑布流模块的真实贡献。

因此,本项目基于双重差分法(DID),在满足平行趋势假设的前提下,剥离城市固定效应与时间趋势,系统评估「猜你喜欢」瀑布流对用户浏览行为、转化效率及交易成交的净因果效应,为后续全量上线、推荐策略调优及首页流量分配机制优化提供量化决策依据。

分析目标

目标 指标示例 业务含义
验证瀑布流对流量分发效率的影响 首页 PV / UV、人均浏览时长、浏览深度 是否提升用户注意力
评估推荐算法对互动行为的提升 瀑布流曝光 UV、CTR、人均浏览商品数 推荐相关性是否有效
量化对转化漏斗的拉动作用 加购率、下单转化率 流量是否更有效变现
测算对成交规模与结构的影响 客单价(AOV)、GMV、人均 GMV 商业价值是否提升

城市级灰度的概念:

维度 说明
分组单位 城市(或城市群),不是单个用户
实验组 杭州、成都 → 首页是新版(有「猜你喜欢」)
对照组 南京、西安 → 首页仍是旧版(无「猜你喜欢」)
判定逻辑 App 后端 / 前端根据 user.city_id决定渲染哪个首页模板
上线时间 同一天对所有杭州、成都用户生效(有明确 treatment date)

为什么要用城市级灰度,而不是随机分流ABTest?

|------------------------------------|---------------------------------------------------------------------------------|
| 采用城市级灰度的原因 | 详细说明 |
| 避免同一城市部分人看新版、部分看旧版带来的舆情混淆 | 用户发现身边人的首页不一样,可能会找客服投诉。一个城市统一版本,用户只会觉得:"不同城市的首页本来就可能不一样",而不会觉得:"平台针对我一个人搞差别对待"。 |
| 新版首页依赖本地缓存 / CDN / 推荐模型,按城市批量切流更简单 | 如果新版首页崩了:按城市灰度 → 只回滚一个城市配置,按用户随机 → 要紧急改实验流量,风险不可控。 |
| 想观察 物流 / 品类 / 地域偏好​ 不同是否会放大或削弱效果 | 不同城市,用户行为完全不同,如果直接全国上线,可能看不到这些差异。如果指标上涨并不知道:是因为高线城市拉起来的? |
| 避免推荐系统冷启动压力集中在全国 | 只给 2~3 个城市​ 流量:推荐日志可控,模型可以逐步学习,算法同学有时间调参。 |

实验设计

实验组(Treatment):杭州、成都(灰度开启城市)

对照组(Control):南京、西安(未开启,保持旧版首页)

上线时间:2026-03-15

分析窗口:

事前:2026-02-15 ~ 2026-03-14(4 周)

事后:2026-03-15 ~ 2026-04-14(4 周)

**核心目标:**量化瀑布流对用户体验与成交的净影响,排除大盘自然波动。

**评估指标:**CTR(点击率)、人均停留时长(秒)、GMV per user(人均成交金额)

关键假设

平行趋势:上线前,灰度城市与非灰度城市的指标变化趋势一致

无同时干扰:同期无其他针对灰度城市的专项活动

SQL取数

sql 复制代码
with 
user_event as (
select 
dt,
user_id,
city_name,
sum(case when event_id='home' then 1 else 0 end) as home_pv,
sum(case when event_id='guess_you_like' then 1 else 0 end) as gyl_click
from ods_user_event
where dt between '2026-02-15' and '2026-04-14'
and event_id in ('home','guess_you_like')
group by dt,user_id,city_name
)
,

user_duration as (
select
dt,
user_id,
city_name,
sum(duration_sec) as duration_sec
from dws_session_summary
where dt between '2026-02-15' and '2026-04-14'
group by dt,user_id,city_name
)
,

user_gmv as (
select 
dt,
user_id,
city_name,
sum(pay_amount) as gmv
from dwd_order_info 
where dt between '2026-02-15' and '2026-04-14'
and order_status=1
group by dt,user_id,city_name
)
,

user_feature as (
select 
case when d.city_name in ('杭州','成都') then '实验组' else '对照组' end as is_treat,
case when d.dt>='2026-03-15' then '后' else '前' end as post,
d.dt,
user_id,
city_name,
duration_sec,
gmv,
home_pv,
gyl_click
from user_duration d 
left join user_gmv g on d.dt=g.dt and d.user_id=g.user_id and d.city_name=g.city_name
left join user_event e on d.dt=e.dt and d.user_id=e.user_id and d.city_name=e.city_name
where city_name in ('杭州','成都','南京','西安')
)

select 
is_treat,
post,
avg(home_pv) as avg_home_pv,
avg(gyl_click) as avg_gyl_click,
avg(duration_sec) as avg_duration,
avg(gmv) as avg_gmv
from user_feature 

提取出的数据:

组别 时期 人均停留 GMV/人 CTR
实验组 155 48.2 0.062
实验组 173.6 49.8 0.071
对照组 152 47.5 0.061
对照组 154 47.7 0.062

结果计算

DID = (试点后−试点前)−(对照后−对照前)

Excel计算公式:

单元格 A B C D E
1 指标 实验Δ 对照Δ DID​ 提升%
2 停留时长 B2 = Sheet1!C3 - Sheet1!C2 173.6-155=16.6 C2 = Sheet1!C5 - Sheet1!C4 154-152=2.0 D2 = B2 - C2 18.6-2.0=16.6 E2 = D2 / Sheet1!C2 16.6/155 =10.7%
3 GMV/人 49.8-48.2=1.6 47.7-47.5=0.2 1.4 1.4/48.2=2.9%
4 CTR 0.071-0.062=0.009 0.062-0.061=0.001 0.008 0.008/0.062=12.9%

计算结果:

指标 实验Δ 对照Δ DID 提升% 业务含义
停留时长 +18.6 +2.0 +16.6秒 +10.7% 用户更愿意浏览
GMV/人 +1.6 +0.2 +1.4元 +2.9% 带动成交
CTR +0.009 +0.001 +0.008 +12.9% 推荐的模块吸引力强

业务解释:

"猜你喜欢"瀑布流显著提升了首页流量利用效率

用户停留时长提升 12%,GMV 提升 3.4%

增量主要来自 长尾商品曝光​ 与 个性化推荐点击

相关推荐
SelectDB7 小时前
宽表元数据膨胀怎么解?Doris Segment V3 对比 Parquet、Lance
大数据·数据库·数据分析
pycharm使用学习11 小时前
NCSS 2025安装教程(附安装包)NCSS 数据分析环境配置图文教程
数据库·mysql·其他·数据分析
王小王-12314 小时前
基于B站的视频分析系统——面向美食视频内容生态的多源数据分析与可视化系统
数据分析·音视频·美食·视频分析·b站数据分析·b站弹幕分析
ATA888814 小时前
Chat2DB vs Navicat vs DBeaver:架构差异与技术选型深度对比
数据分析·数据库管理·智能问数
CAIE研习社15 小时前
大学生数据分析作品集,应该包含哪些内容?
人工智能·数据分析
m0_5474866616 小时前
《Python程序设计与数据分析》全套PPT课件
python·数据分析
卷无止境2 天前
Python数据进阶专题:用声明式验证让数据管道告别"惊喜"
后端·python·数据分析
Jay_Franklin2 天前
Python 数据处理工作流:marimo、PyCharm 与数据存储
开发语言·数据仓库·ide·python·pycharm·数据分析·开源
babe小鑫2 天前
2026机械专业想进智能制造学数据分析的价值分析
数据挖掘·数据分析·制造