model results
三层分析的核心数字一览:从样本规模、类别不平衡,到 Fisher 检验、独立效应、交互项放大效应。
methodology
不同精度的问题用不同方法回答。三层依次回答信号是否存在、控制变量后是否仍显著、组合是否产生超线性放大。
高价区间 Voucher 样本仅 75 条,大样本卡方近似不再可靠,改用 Fisher 精确检验避免假设失效。直接比较两种支付方式的取消率差异,回答信号是否存在。
特征:is_voucher、payment_value。在全量数据上估计两者各自的独立效应,回答控制金额后 Voucher 效应是否仍显著,排除 Voucher 取消率高仅因金额高的混淆假设。
用交互项捕捉高金额 + Voucher 是否存在超出单独效应的组合放大。statsmodels Logit 拟合,输出系数、p 值、95% CI,并用 AIC 对比基础模型判断是否为有效信息。
findings
Fisher 精确检验:300+ 区间 Voucher 取消率 20.00%(15/75),信用卡仅 0.79%(65/8268),Odds Ratio 31.55,p < 0.000001。差异不可能由抽样波动解释,高价区间确实存在 Voucher 异常风险。
基础逻辑回归:在全量数据上控制金额后,Voucher 支付本身仍独立提升取消概率约 39%(OR=1.39,95% CI [1.33, 1.45]),金额每升高一个标准差额外提升约 15%(OR=1.15)。两个效应都不被对方解释掉,排除混淆假设。
交互项逻辑回归:voucher × payment_value 交互项 OR=1.09,95% CI [1.06, 1.13],p < 0.0001。模型 AIC 从 6083 降至 6049,加入交互项是有效信息而非噪声。在 Voucher 用户中,金额对取消率的放大作用比信用卡用户更强,组合风险并非简单叠加。
三层互相印证:高价区间的极端差异(Fisher OR=31.55)在全量数据上被分解为支付方式独立效应、金额独立效应、组合放大效应三个分量,且都在统计上显著。从描述性发现到因果验证的链路完整闭合。
visualization
展示三个特征的 OR 及 95% 置信区间。voucher × payment_value 交互项橙色高亮,红色虚线为 OR=1 的 baseline。三个 OR 均显著大于 1,且交互项不被两个独立效应吸收。

交互项 OR=1.09 看似不大,但需要结合两点理解:一是已经控制了 Voucher 与金额的独立效应,交互项捕捉的是两者之外的额外放大;二是 AIC 从 6083 降至 6049 说明加入交互项是有效信息而非噪声。换言之,高金额 + Voucher 的风险组合不是两者风险的简单叠加。
code highlight
网页中只展开 1 段最能体现项目能力的建模代码,完整 notebook 与三层分析代码保留在 GitHub 仓库中。
用 statsmodels Logit 拟合含交互项的逻辑回归,输出 OR 与 95% 置信区间。交互项的显著性是验证高金额 + Voucher 组合放大效应的关键。
# 第六部分:交互项逻辑回归
features_inter = ['is_voucher', 'payment_value', 'voucher_x_value']
scaler_inter = StandardScaler()
X_inter = scaler_inter.fit_transform(df[features_inter])
X_inter = sm.add_constant(X_inter)
model_inter = sm.Logit(y, X_inter).fit(disp=0)
# 提取 OR 与 95% CI
print("Odds Ratio(交互项模型):")
pvals_inter = model_inter.pvalues.values[1:]
for name, coef, (lo, hi), p in zip(
features_inter,
model_inter.params[1:],
model_inter.conf_int().iloc[1:].values,
pvals_inter
):
print(f" {name:20s} OR={np.exp(coef):.4f} "
f"95%CI=[{np.exp(lo):.4f}, {np.exp(hi):.4f}] "
f"p={p:.4f}")
# 输出:
# is_voucher OR=1.30 95%CI=[1.23, 1.37] p<0.0001
# payment_value OR=1.10 95%CI=[1.05, 1.16] p<0.0001
# voucher_x_value OR=1.09 95%CI=[1.06, 1.13] p<0.0001
# AIC: 6083 → 6049(基础模型 vs 交互项模型)challenge
business action
data
limitations
project value
本项目完整覆盖了从描述性发现、混淆假设识别、检验方法选择,到逻辑回归控制变量、交互项验证组合效应的因果建模流程,重点体现统计方法选择能力、混淆控制意识与建模结论解释能力,是 Olist 经营分析项目从描述统计走向因果验证的延伸闭环。