TapCub 正式上线:统计、分析、客服一个平台免费用
数据分析

写给营销和分析人员的回归分析:一个完整算例

回归分析估计一个结果会随驱动因素怎么变化。用 12 周的例子说明:漏掉自然流量,会让广告花费的效果被高估三分之一;再讲怎么读结果、检查假设和避开常见错误。

苏禾 发布于 2026 年 11 月 5 日 6 分钟阅读 数据分析
写给营销和分析人员的回归分析:一个完整算例示例数据

用你自己的数据试一下

这篇文章里出现的报表免费版全都有。一段代码,网站和 App 都能接,最多 10 个站点。

免费开始

回归把一团散点变成能拿来做预算的数字:每个驱动因素变动一个单位,结果动多少,以及有多大把握。本文用 12 周的广告花费、自然流量和注册数演示:只看花费的模型说每 1,000 美元带来 14 个注册,控制了自然需求的模型说是 10.6 个。

读完你会知道

  • 回归估计效应大小、不确定性,还能做预测
  • 漏掉一个相关的驱动因素,系数会被带偏
  • 比较变量个数不同的模型,用调整后 R²
  • 检查线性、独立、正态和方差相等
  • 观测数据得出的系数是关联,不是因果

什么是回归分析?

回归分析(Regression Analysis)是一类统计方法,用来估计一个结果(因变量)会随一个或多个输入(自变量或预测变量)怎么变化。它给出图表给不了的三样东西:每个关系有多大、这个大小有多不确定,以及给定新的输入时怎么预测结果。

在数据分析里,常见的问题是:在自然流量不变的情况下,广告每多花 1,000 美元能多带来多少注册?加载时间每多 1 秒,转化损失多少?哪些客户行为能预测流失?

最简单的形式就是散点图里的一条直线:

y = β₀ + β₁x + ε

β₀ 是截距,β₁ 是斜率(x 每变化一个单位,y 变化多少),ε 是直线解释不了的误差。普通最小二乘法(OLS)选出让误差平方和最小的那条线。

回归的种类

类型结果统计里的例子
简单线性回归连续值,一个预测变量注册数和广告花费
多元线性回归连续值,多个预测变量注册数和花费、自然流量、节假日
逻辑回归是 / 否这个试用会不会转付费?这个账号会不会流失?
泊松 / 负二项回归计数每个账号每月的工单数
多项式 / 样条回归曲线关系转化率和加载时间,边际递减
带时间项的回归时间序列带趋势和季节性的周销售额
类型结果例子
简单线性回归连续值,一个预测变量注册数和花费
多元线性回归连续值,多个预测变量注册数和花费、自然流量
逻辑回归是 / 否试用会不会转付费
泊松回归计数每个账号的工单数

按要建模的结果选回归类型。

计算示例:广告花费能带来注册吗?

某 SaaS 网站 12 周的数据(示例数据):每周广告花费(千美元)、自然搜索会话(千次)和注册数。

周广告花费(千美元)自然会话(千次)注册数
12.08.0109
22.59.6116
33.08.6121
42.210.4121
53.59.0131
64.011.2140
73.210.8135
84.510.0139
95.012.2162
104.211.6142
115.511.0158
126.012.8170

模型 1:只用花费解释注册

注册数 = 83.1 + 14.2 × 花费。斜率的标准误 1.2,R² = 0.93。

直接读:每多花 1,000 美元多 14 个注册,一个注册大约 70 美元。

模型 2:加上自然会话

注册数 = 53.3 + 10.6 × 花费 + 4.2 × 自然会话(千次)。标准误分别为 1.2 和 1.0,R² = 0.976,调整后 R² = 0.971。

花费的系数降了四分之一。为什么?这个季度里花费和自然流量一起上涨(相关系数 0.76),因为团队在旺季加了预算,而旺季本来自然搜索的兴趣就高。模型 1 把旺季自然需求带来的注册也算到了广告头上。自然流量是一个混杂变量,漏掉它让估计偏高,这就是遗漏变量偏差。

在自然会话不变时,多花 1,000 美元大约带来 10.6 个注册:每个注册的成本更接近 94 美元而不是 70 美元,这个差距足以改变预算决定。

预测: 某周花费 5,000 美元、自然会话 11,000 次,模型 2 预测 53.3 + 53.0 + 45.8 ≈ 152 个注册。残差标准误大约是 3 个注册,偏离这个范围很多的周值得查一查。

app.tapcub.com/analytics/sources

每千美元注册(直接看)

14.2

控制自然流量后

10.6

▼ 25%

每个注册成本

94 美元 vs 70 美元

▲ 34%

每周注册数 · 两个回归模型

12 周
项模型 1模型 2
截距83.153.3
广告花费(千美元)14.2(标准误 1.2)10.6(标准误 1.2)
自然会话(千次)—4.2(标准误 1.0)
R²0.9330.976
调整后 R²0.9270.971

示例数据。花费和自然会话的相关系数为 0.76。

示例数据

怎么读回归结果

输出告诉你什么注意
系数其他变量不变时,x 每变一个单位 y 变多少单位:每 1 美元还是每 1,000 美元?
标准误系数的不确定性样本小,误差就大
t 值 / p 值系数和 0 能不能区分开显著不等于大,见效应量
置信区间系数的合理范围往往比 p 值更有用,见怎么算置信区间
R²y 的方差被解释了多少加变量一定会变大
调整后 R²对多余变量做了惩罚的 R²比较变量个数不同的模型时用它
残差模型漏掉了什么残差有规律,说明模型少了东西

要检查的假设

线性回归依赖四个假设,常记作 LINE:

  1. 线性(Linearity): 关系大致是一条直线。用散点图或「残差对拟合值」图检查。
  2. 独立(Independence): 误差之间互不相关。每日、每周数据常常违反这一条,因为这周像上周;要用带时间项的回归或专门的时间序列模型。
  3. 正态(Normality): 残差大致服从正态分布(样本小、要算区间时最重要)。
  4. 方差相等(Equal variance): 残差的离散程度不随预测值变大。收入数据经常不满足,取对数会有帮助。

还要检查多重共线性:两个预测变量高度相关时,模型分不清各自的作用,数据稍有变化系数就大幅摆动。例子里 0.76 的相关在 12 周的数据上还能接受,到 0.95 就不行了。

常见错误

  • 把系数当因果效应。 对观测数据做回归,只能说明控制了你放进去的变量之后的关联。没测到的混杂变量照样会带偏结果,见相关不等于因果。
  • 外推。 模型是用每周 2–6 千美元的数据拟合的,对 2 万美元的一周说明不了什么,到那时投放早就饱和了。
  • 过拟合。 用 10 个变量去拟合 12 周数据,会拟合得完美,却什么也预测不了。经验上每个预测变量至少要 10 到 20 个观测。
  • 让离群点主导直线。 一周埋点出错就能把斜率带歪,检查残差和离群值。
  • 忽略均值回归。 因为某周表现最差而被选出来优化的页面,下周无论如何都会看起来好一些。
  • **追求高 R²。** 时间序列里 R² 很高,常常只是两个变量都在上涨。

用 TapCub 的数据做回归

TapCub 提供回归需要的输入:按渠道的每日或每周会话、目标转化、收入、页面性能和 UTM 活动数据。用 SQL 查询或导出拿到这些数,再加上广告平台的花费数据,到表格(LINEST)、Python(statsmodels)或 R(lm)里拟合。UTM 参数要命名一致,花费和转化才能按活动对上。当某个系数会影响预算决定时,用实验确认一下,比如按地区或按时间留出对照组,因为只有实验能排除你没测到的混杂因素。

另见:描述统计、推断统计。

参考资料

这篇文章对你有帮助吗?

我们会根据反馈修改和补充这篇内容。

苏禾

数据分析师

围绕流量来源、转化漏斗与用户留存写作,重视指标口径和分析过程,用具体示例解释数字背后的问题。

给模型准备干净的输入

按渠道的会话、活动转化和收入,可以直接查询或导出。

看清数据,找到增长。

每一次点击,都有数据依据。装好一行代码,1 分钟看到第一批数据。

无需信用卡 · 统计与客服都有免费版 · 统计无 Cookie