3. 风控A/B测试的核心指标设计:坏账率、通过率、逾期率、欺诈率、用户转化率、业务收益指标

风控场景下的A/B测试与互联网产品增长实验有本质区别:核心指标必须同时反映风险控制效果与业务增长目标。单一指标(如仅看通过率)极易导致决策偏差——提升通过率可能牺牲资产质量,过度收紧风控则可能扼杀用户转化。本章系统拆解六大核心指标的定义、计算口径、业务含义及在A/B测试中的使用规范。

3.1 指标全景图:从风险到收益的闭环

风控A/B测试的指标体系可划分为三个层级:风险度量层、转化效率层、商业价值层。三个层级相互制约,构成完整的评估闭环。

核心原则:任何风控A/B测试必须同时观测至少一个风险指标和一个转化指标,避免“幸存者偏差”或“虚假优化”。
风控A/B测试核心指标体系架构图 风控A/B测试核心指标体系架构 风险度量层 衡量资产质量与风险暴露水平 坏账率 逾期率 欺诈率 风险综合评分 转化效率层 衡量用户转化与业务规模 用户转化率 通过率 授信使用率 商业价值层 衡量最终业务收益与ROI 业务收益指标 风险调整后收益(RAR) ⚠ 三个层级必须联动分析:风险降低但转化暴跌 → 策略可能过严;转化提升但风险恶化 → 策略可能失效

3.2 六大核心指标详解

3.2.1 坏账率 (Bad Debt Rate)

定义:在观察周期内,逾期超过特定天数(通常为M3+,即90天以上)且经催收后确认无法回收的贷款本金占总放款本金的比例。

维度说明
计算公式坏账率 = 确认坏账金额 / 同期总放款金额 × 100%
观察窗口通常需要6-12个月(vintage分析),A/B测试中建议使用滚动12个月口径
A/B测试使用作为核心负向指标,若实验组坏账率显著高于对照组,策略应立即回滚
注意事项坏账率存在滞后性,短期A/B测试可能无法完全暴露,需配合迁移率(Migration Rate)做早期预警

3.2.2 逾期率 (Delinquency Rate)

定义:在观察时点,处于逾期状态(通常按1+、30+、60+、90+分层)的贷款余额占总贷款余额的比例。

维度说明
计算公式逾期率 = 逾期贷款余额 / 总贷款余额 × 100%
分层口径DPD1+(1天以上)、DPD30+、DPD60+、DPD90+,不同层级反映不同风险深度
A/B测试使用作为中期风险指标,DPD30+的变化通常可在3-6个月内观测到
注意事项逾期率受账龄结构影响较大,A/B测试中需确保实验组与对照组账龄分布一致

3.2.3 欺诈率 (Fraud Rate)

定义:在观察周期内,被识别为欺诈交易或欺诈申请的数量(或金额)占总交易(或申请)数量的比例。

维度说明
计算公式欺诈率 = 确认欺诈案件数 / 总申请或交易数 × 100%
识别方式规则引擎命中、设备指纹、关系网络、人工复核、贷后确认
A/B测试使用作为安全底线指标,欺诈率上升通常意味着风控策略存在漏洞
注意事项欺诈率存在“确认延迟”,部分欺诈案件在放款后数月才暴露,需结合实时规则命中率做辅助判断

3.2.4 通过率 (Approval Rate)

定义:在观察周期内,通过风控审核的申请数量占总申请数量的比例。

维度说明
计算公式通过率 = 通过审核的申请数 / 总申请数 × 100%
分层口径可细分为:机审通过率、人工审核通过率、最终放款通过率
A/B测试使用作为核心正向指标,反映策略对用户转化的影响
注意事项通过率提升必须与坏账率、逾期率联动分析,警惕“通过率虚高”导致风险后移

3.2.5 用户转化率 (User Conversion Rate)

定义:从用户进入申请流程到最终完成借款(或激活授信)的完整漏斗转化比例。

维度说明
计算公式转化率 = 最终完成借款用户数 / 进入申请流程用户数 × 100%
漏斗拆解注册→实名认证→提交申请→风控审核→签约→放款,每个环节均可独立计算转化率
A/B测试使用作为用户体验指标,反映风控策略对用户流程的摩擦影响
注意事项转化率受产品体验、UI交互、风控策略共同影响,A/B测试需控制非风控变量

3.2.6 业务收益指标 (Business Revenue Metrics)

定义:综合衡量风控策略对业务最终盈利能力的贡献,通常包含收入、成本、风险损失等复合计算。

维度说明
常用指标净息差(NIM)、风险调整后资本回报率(RAROC)、单客收益、ROI
计算公式示例RAROC = (收入 - 资金成本 - 运营成本 - 预期损失) / 经济资本
A/B测试使用作为最终决策指标,所有风控策略的A/B测试最终应回归到业务收益
注意事项收益指标计算复杂,需财务、风险、产品多方对齐口径,避免重复计算或遗漏成本

3.3 指标间的联动关系与权衡矩阵

六大指标并非孤立存在,它们之间存在内在的制约与联动。理解这些关系是设计A/B测试方案的前提。

风控A/B测试指标权衡矩阵 风控A/B测试指标权衡矩阵 策略方向 放宽风控 收紧风控 优化模型 规则调整 坏账率 逾期率 欺诈率 通过率 转化率 ↑ ↑ ↑ ↑ ↑ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↑ ↑ ~ ~ ↓ ~ ~ 图例: ↑ 指标上升 ↓ 指标下降 ~ 影响不确定 | 红色=风险恶化 绿色=风险改善或转化提升
实战建议:在A/B测试的指标看板中,建议将上述六个指标分为“护栏指标”和“优化指标”。护栏指标(坏账率、欺诈率)设定阈值红线,一旦突破立即熔断;优化指标(通过率、转化率、收益)作为核心评估依据。

3.4 指标设计的最佳实践与避坑指南

3.4.1 指标设计五步法

  1. 明确实验目标:是提升通过率?还是降低逾期率?目标决定指标权重。
  2. 选择核心指标:每个A/B测试至少选择1个风险指标 + 1个转化指标 + 1个收益指标。
  3. 设定观察窗口:短期指标(通过率、转化率)可周度观测;中期指标(逾期率)需月度观测;长期指标(坏账率)需季度观测。
  4. 定义成功标准:明确统计显著性水平(通常α=0.05)、最小可检测效应(MDE)、样本量要求。
  5. 建立监控看板:实时监控指标变化,设置预警阈值,避免指标恶化未被及时发现。

3.4.2 常见陷阱与规避策略

陷阱表现规避策略
指标滞后性坏账率在实验结束后3-6个月才暴露使用迁移率、早期逾期率作为代理指标;延长实验观察期
指标互斥通过率提升但坏账率同步上升采用“风险调整后通过率”或“收益-损失综合评分”作为北极星指标
样本偏差实验组与对照组用户风险分布不一致严格随机分流,使用分层抽样或PSM匹配
多重比较同时观测多个指标导致假阳性率膨胀使用Bonferroni校正或FDR控制;预先指定主要指标和次要指标
指标口径不一致不同团队对“逾期率”定义不同在实验设计文档中明确指标计算公式、数据源、计算时点

3.5 指标计算代码示例

以下Python代码展示了在A/B测试中计算核心风控指标的标准流程,包含实验组与对照组的对比计算。

import pandas as pd
import numpy as np
from scipy import stats

def compute_risk_metrics(df, group_col='experiment_group', 
                         loan_amount_col='loan_amount',
                         default_flag_col='is_default',
                         overdue_flag_col='is_overdue_30',
                         fraud_flag_col='is_fraud',
                         approved_flag_col='is_approved',
                         applied_flag_col='is_applied'):
    """
    计算风控A/B测试核心指标
    
    Parameters:
    -----------
    df : DataFrame
        包含实验组别和风控字段的数据
    group_col : str
        实验组别字段,取值 'control' 或 'treatment'
    
    Returns:
    --------
    metrics_df : DataFrame
        包含各组核心指标的汇总表
    """
    results = []
    
    for group in df[group_col].unique():
        group_df = df[df[group_col] == group]
        
        # 基础统计
        total_applied = group_df[applied_flag_col].sum()
        total_approved = group_df[approved_flag_col].sum()
        total_loan = group_df[loan_amount_col].sum()
        
        # 风险指标
        bad_debt_rate = group_df[default_flag_col].sum() / total_loan if total_loan > 0 else 0
        overdue_rate = group_df[overdue_flag_col].sum() / total_loan if total_loan > 0 else 0
        fraud_rate = group_df[fraud_flag_col].sum() / total_applied if total_applied > 0 else 0
        
        # 转化指标
        approval_rate = total_approved / total_applied if total_applied > 0 else 0
        conversion_rate = total_loan / total_applied if total_applied > 0 else 0
        
        # 收益指标(简化版)
        avg_loan_amount = group_df[loan_amount_col].mean()
        expected_loss = bad_debt_rate * avg_loan_amount
        revenue_per_user = avg_loan_amount * 0.15  # 假设利率15%
        risk_adjusted_revenue = revenue_per_user - expected_loss
        
        results.append({
            'group': group,
            'sample_size': len(group_df),
            'approval_rate': approval_rate,
            'conversion_rate': conversion_rate,
            'bad_debt_rate': bad_debt_rate,
            'overdue_rate': overdue_rate,
            'fraud_rate': fraud_rate,
            'avg_loan_amount': avg_loan_amount,
            'risk_adjusted_revenue': risk_adjusted_revenue
        })
    
    metrics_df = pd.DataFrame(results)
    
    # 计算实验组 vs 对照组的差异和p值
    control = df[df[group_col] == 'control']
    treatment = df[df[group_col] == 'treatment']
    
    # 通过率差异检验(卡方检验)
    crosstab = pd.crosstab(df[group_col], df[approved_flag_col])
    chi2, p_value_approval, _, _ = stats.chi2_contingency(crosstab)
    
    # 坏账率差异检验(两样本比例检验)
    n_control = len(control)
    n_treatment = len(treatment)
    bad_control = control[default_flag_col].sum()
    bad_treatment = treatment[default_flag_col].sum()
    z_stat, p_value_bad = stats.proportions_ztest(
        count=[bad_control, bad_treatment],
        nobs=[n_control, n_treatment]
    )
    
    print(f"通过率差异 p-value: {p_value_approval:.4f}")
    print(f"坏账率差异 p-value: {p_value_bad:.4f}")
    
    return metrics_df

# 使用示例
# metrics = compute_risk_metrics(experiment_data)
# print(metrics)
重要提醒:上述代码为简化示例,实际生产环境中需考虑:1) 样本量计算前置;2) 多重比较校正;3) 时间序列自相关处理;4) 非参数检验备用方案(当正态性假设不满足时)。

3.6 指标设计检查清单

在启动任何风控A/B测试之前,请逐项确认以下检查点:

  • ✅ 是否同时选择了风险指标和转化指标?
  • ✅ 是否定义了主要指标(Primary Metric)和次要指标(Secondary Metric)?
  • ✅ 是否设定了护栏指标(Guardrail Metrics)及其阈值?
  • ✅ 是否明确了指标的计算口径、数据源、时间窗口?
  • ✅ 是否进行了样本量计算,确保统计功效达到80%以上?
  • ✅ 是否考虑了指标滞后性,设计了中期代理指标?
  • ✅ 是否与业务、财务、风险团队对齐了收益指标的计算方式?
  • ✅ 是否建立了实时监控看板和预警机制?