LOL竞技量化分析体系
基于现代量化基金范式重构 —— Citadel · Two Sigma · AQR · Renaissance Technologies 方法论应用于英雄联盟电子竞技数据分析。因子与 Alpha 严格分离,Barra 风格风险分解,Black-Litterman BP 决策融合。
v2.0
多因子模型
Barra风险
Black-Litterman
§1 体系总架构
第0层
数据层
原始数据 → 清洗/标准化 → 衍生变量 → Panel结构
→
第1层
因子层
风格因子(β) | Alpha因子(α) | 事件因子(γ)
→
第2层
风险与归因
Barra结构风险 · Brinson/因子归因 · VaR/ES
→
第3层
信号与策略
多因子Alpha合成 · 衰减校准 · 风险预算
→
第4层
决策执行
BP选禁 → 阵容构建 → 实时调整 → 赛后复盘
六大设计原则
β ⊥ α
因子与Alpha分离
IC·IR
信号思维
Panel
截面×时序
5-Pos
分位置建模
Regime
版本即Regime
Z(·)
全量标准化
§2 数据层:字段分类与衍生变量
数据源:Oracle's Elixir 2026 · 原始字段 ~120+ · 标准化到 league-patch-position 层面
| 类 | 核心字段 | 粒度 | 用途 |
|---|---|---|---|
| 标识 | gameid, league, year, split, playoffs, date, patch | 比赛 | 分组/过滤/时间轴 |
| 身份 | participantid(1-5,100,200), side, position, playername, teamname | 选手/团队 | 实体标识 |
| BP | firstPick, champion, ban1-5, pick1-5 | 阵容 | 英雄选择 |
| 结果 | gamelength, result (1=胜/0=负) | 比赛 | 目标变量 |
| KDA | kills, deaths, assists, teamkills, teamdeaths | 选手 | 击杀贡献 |
| 多杀 | doublekills, triplekills, quadrakills, pentakills | 选手 | 爆发力 |
| 先机 | firstblood, firstbloodkill, firstbloodassist, firstbloodvictim | 选手 | 早期事件 |
| 龙 | firstdragon, dragons, elementaldrakes, elders, opp_* | 团队 | 资源控制 |
| 塔 | firsttower, towers, firstmidtower, turretplates, opp_* | 团队 | 推进力 |
| 伤害 | damagetochampions, dpm, damageshare, damagetakenperminute | 选手 | 输出/承伤 |
| 视野 | wardsplaced, wpm, wardskilled, visionscore, vspm, controlwardsbought | 选手 | 信息控制 |
| 经济 | totalgold, earnedgold, earned gpm, earnedgoldshare, goldspent | 选手 | 资源效率 |
| 时间切片 | gold/xp/cs@10/15/20/25, *_diff@*, opp_*@* | 选手 | 分阶段优势 |
核心衍生变量
| 变量 | 公式 | 经济含义 | 金融类比 |
|---|---|---|---|
| eff_dmg | damageshare / max(earnedgoldshare,0.01) | 单位经济产出伤害 | ROA |
| eff_gold | (earnedgold - goldspent) / gamelength × 60 | 每分钟净经济累积 | 自由现金流率 |
| eff_vision | visionscore / max(wardsplaced+controlwardsbought,1) | 单眼价值产出 | 单位成本产出 |
| kp | (kills + assists) / max(teamkills,1) | 击杀参与份额 | 市场份额 |
| dtf | deaths / max(teamdeaths,1) | 死亡占团队比例 | 损失份额 |
| x_factor | dk×2 + tk×3 + qk×4 + pk×5 | 多杀爆发力 | 尾部收益事件 |
| laning_adv | Z(golddiff@10 + xpdiff@10) | 对线期综合优势 | 开盘动量 |
| gold_hhi | Σ(earnedgoldshare²) | 经济Herfindahl集中度 | 行业集中度 |
| snowball | golddiff@15 − golddiff@10 | 滚雪球幅度 | 趋势加速 |
| opp_strength | 对手历史胜率(剔除本场) | 对手强度调整 | 基准调整 |
§3 风格因子 β — Barra-style · 多空组合构建
F1 · Momentum
动量因子 MOM
rolling_WR_short − rolling_WR_long
AQR Momentum。近3~5场胜率 − 前6~10场胜率。正MOM=上升期,负MOM=下滑期。
F2 · Quality
效率因子 EFF
Z(damageshare / earnedgoldshare)
ROA/质量因子。单位经济产出的伤害量。高EFF=运营效率卓越,低EFF=资源浪费。
F3 · Size
规模因子 SIZE
Z(earnedgoldshare) 分位置
Fama-French SMB。经济占比远超同位置均值=资源富集型。低SIZE=被牺牲位置。
F4 · LowVol
低波动因子 LVOL
−σ(滚动10场 earnedgpm)
Betting-Against-Beta。低波动异常——稳定队伍风险调整后表现更好。
F5 · Tempo
节奏因子 TEMPO
Z(teamkills / gamelength × 60)
市场微观结构/换手率。高TEMPO=频繁打架快节奏高方差,低TEMPO=慢运营。
F6 · Value
价值因子 VALUE
残差(result ~ earnedgoldshare)
Fama-French HML。实际胜率 − 基于经济的预期胜率。正VALUE=被低估的"价值股"。
F7 · Info
信息因子 INFO
Z(vspm_team − opp_vspm)
信息比率(IR)。视野压制幅度。正INFO=信息不对称优势,地图"全亮"。
F8 · Early
先手优势 EARLY
Z(golddiff@10 + xpdiff@10)
开盘效应/日内动量。前期统治级对线=节奏掌控者。负EARLY=依赖翻盘。
F9 · ObjCtrl
资源控制 OBJ
综合野怪控制率(龙/先锋/大龙/厄塔汗/巢虫)
公司治理因子。管理层的资源利用效率。正OBJ=关键地图资源全面领先。
§4 Alpha因子 α — Pure Skill · 正交化残差
构建流程: 计算原始指标 → 截面回归剔除9个风格因子暴露 → 残差Z-score标准化 → Alpha Factor
A1 · Pure Skill
纯个人能力
残差(0.4×eff_dmg + 0.3×x_factor + 0.3×kp)
控制MOM/EFF/SIZE/LVOL/TEMPO/EARLY后。剔除版本红利、队友喂资源、节奏快慢——选手本身的操作水平。
A2 · Clutch
关键先生
late_kda_ratio / early_kda_ratio
控制MOM/EARLY/TEMPO后。前期可能不亮眼,但越到后期越能站出来。类似篮球的"第四节得分"。
A3 · Counter
逆境Alpha
被counter时超额胜率
对手英雄对位胜率>55%时的超额表现。控制SIZE/EARLY后。即使选角被counter仍能打出超额。
A4 · Jng Gap
打野差距
Z(jng_golddiff@15 + jng_xpdiff@15 + jng_early_kp)
控制OBJ/INFO/TEMPO后。打野独自创造的前期优势——不是跟着线上混的。打野位的纯超额贡献。
A5 · Sup Impact
辅助影响力
Z(vspm + ctrlwards/gamelength + kp)
控制INFO/SIZE后。剔除团队视野红利后,辅助个人的视野和参与贡献。辅助的不可替代价值。
A6 · ShotCall
决策Alpha
golddiff@15 < -1000 时的胜率
控制EARLY/MOM后。前期劣势后的翻盘率 → 指挥决策质量。类似管理层的危机应对能力。
A7 · Consistency
一致性Alpha
−σ(kills@10/15/20/25)
控制LVOL后。单场内各阶段稳定性。剔除整体波动因子后的"真稳定"——不因阶段变化而起伏。
§5 事件因子 γ — 离散冲击 · 条件胜率增量
| # | 事件 | 源数据 | 作用 | ΔP(Win) |
|---|---|---|---|---|
| E1 | First Blood | firstblood | 早期士气/节奏先手 | ~+12% |
| E2 | First Tower | firsttower | 推进先手权 | ~+18% |
| E3 | First Dragon | firstdragon | 龙魂节奏先手 | ~+10% |
| E4 | First Herald | firstherald | 塔皮经济爆发 | ~+15% |
| E5 | First Baron | firstbaron | 中后期终结 | ~+25% |
| E6 | Elder Take | elders>0 | 远古龙终结 | ~+30% |
| E7 | Atakhan Take | atakhans>0 | 关键资源节点 | ~+20% |
| E8 | First to 3 Towers | firsttothreetowers | 推塔节奏优势 | ~+22% |
| E9 | Inhibitor First | inhibitors>opp_inhibitors | 高地压制 | ~+28% |
EventFactor = I(event) × ΔP(Win|event),从历史数据估计边际贡献。
§6 因子协方差结构 ΣF
| MOM | EFF | SIZE | LVOL | TEMPO | VALUE | INFO | EARLY | OBJ | |
|---|---|---|---|---|---|---|---|---|---|
| MOM | 1.0 | +.2 | +.1 | −.1 | +.3 | .0 | +.1 | +.4 | +.2 |
| EFF | 1.0 | −.3 | +.1 | −.2 | +.3 | −.1 | .0 | −.1 | |
| SIZE | 1.0 | −.2 | +.3 | −.4 | +.1 | +.5 | +.4 | ||
| LVOL | 1.0 | −.4 | +.1 | .0 | −.1 | −.1 | |||
| TEMPO | 1.0 | −.1 | +.1 | +.2 | +.2 | ||||
| VALUE | 1.0 | .0 | −.2 | −.1 | |||||
| INFO | 1.0 | .0 | +.3 | ||||||
| EARLY | 1.0 | +.3 | |||||||
| OBJ | 1.0 |
基于金融因子经验类比。实际应从数据估计 Ledoit-Wolf shrinkage covariance。
Panel回归: Ri,t = αi + Σk=1..9 βi,k·Ft,k + Σj=1..9 γi,j·Eventi,t,j + εi,t
§7 Barra风险分解
σ²total = wT(X ΣF XT)w + wTΔw = 因子风险 + 特质风险
| 指标 | 公式 | LOL含义 |
|---|---|---|
| Total Risk | σtotal | 单局总不确定性 |
| Factor Risk | √(wT X ΣF XT w) | 系统性版本/赛区风险 |
| Specific Risk | √(wT Δ w) | 队伍/选手自身波动 |
| VaR(95%) | Q0.05(loss) | 95%置信最差表现 |
| CVaR(95%) | E[loss | loss > VaR] | 极端崩塌平均幅度 |
| Sharpe | (E(R)−Rf)/σ | 风险调整后胜率 |
| Sortino | (E(R)−Rf)/σdown | 仅惩罚下行风险 |
| Info Ratio | α / σ(α) | Alpha稳定性 |
尾部风险场景: 版本地震 | 对线崩盘(golddiff@10 < -1500) | 资源全丢(OBJ < -1.5σ) | 视野全黑(INFO < -1.5σ)
§8 信号与策略层
IC > .05
信息系数
IR > 0.3
信息比率
t½ > 3
衰减半衰期(场)
< 50%
换手率/场
| 策略 | 信号条件 | 逻辑 | 金融类比 |
|---|---|---|---|
| S1 动量延续 | MOM_z > +0.8 && EFF_z > +0.5 | 上升期+高效率 → 继续赢 | Trend Following |
| S2 价值反转 | VALUE_z > +1.0 && MOM_z < -0.5 | 被低估+连败 → 反弹 | Mean Reversion |
| S3 低波稳健 | LVOL_z > +0.8 && TEMPO_z < -0.5 | 稳定+慢节奏 → 高确定性 | Low Vol Anomaly |
| S4 前期压制 | EARLY_z > +1.0 && OBJ_z > +0.5 | 前期优势+资源控制 → 滚雪球 | Momentum |
| S5 事件驱动 | firstblood + firsttower + firstdragon | 三先机全拿 → 胜率 > 80% | Event-Driven |
| S6 Alpha套利 | 因子暴露相似,Alpha差 > 1σ | 同类队伍能力差距被低估 | Stat Arb |
§9 绩效归因
Brinson三阶段归因
| 阶段 | 时间窗口 | 权重 | 关键指标 |
|---|---|---|---|
| 对线期 | 0-15min | 30% | golddiff@15 |
| 中期 | 15-25min | 35% | OBJ + 塔差 |
| 后期 | 25min+ | 35% | 团战胜率 |
因子归因: 若输但 EARLY>0 → 问题在后期团战。若赢但 OBJ<0 → 靠操作硬赢,资源控制需改进。
选手边际贡献: Shapley值 + Kalman Filter 动态估计真实状态。
选手边际贡献: Shapley值 + Kalman Filter 动态估计真实状态。
§10 BP优化工程
阶段1
Ban · 风险剔除
移除对手最优英雄
→
阶段2
先选 · 构建核心
盲选安全性+摇摆灵活
→
阶段3
后选 · Counter补齐
Counter+协同+均衡度
Black-Litterman BP: E[R] = [(τΣ)−1 + PTΩ−1P]−1[(τΣ)−1Π + PTΩ−1Q]
Π=数据驱动英雄胜率 · Q=教练主观观点 · Ω=观点置信度 → 融合输出调整后期望胜率 → MV优化选阵容
| 阵容维度 | 指标 | 目标 |
|---|---|---|
| 伤害结构 | AD/AP比例 | 混合,避免全AD/全AP |
| 坦度 | 前排(坦克+战士)≥2 | ≥2 |
| 控制 | 硬控技能≥3 | ≥3 |
| 输出曲线 | 前/中/后期伤害权重 | 至少2阶段有强点 |
| 资源分配 | gold_hhi | 0.25~0.35 |
§11 预测工程
实时预测架构
赛前: P(Win) = Logistic(赛前特征:队伍历史+选手Alpha+对手强度+BP+对阵历史+赛程)
赛中@15min: P(Win|@15) = Logistic(赛前特征 + golddiff@15 + firsttower + firstdragon + firstherald + turretplates)
赛中@25min: P(Win|@25) = Logistic(赛前+@15特征 + barons + elders + atakhans + inhibitors)
AUC > .75
模型区分度
LogLoss < .55
概率校准
ECE < .05
校准误差
Kalman Filter 选手评估: 状态方程 xt = xt-1 + ηt | 观测 yt = xt + εt → 自动区分真状态变化和单场偶然波动。
Regime检测: Markov Switching 识别高影响力/均衡/适应期三种版本状态。
Regime检测: Markov Switching 识别高影响力/均衡/适应期三种版本状态。
§12 因子评估与信号衰减
1
因子构建
→
2
IC分析
Pearson/Spearman
→
3
分层回测
Q1-Q5胜率差
→
4
衰减分析
t½ = -ln(2)/ln(ρ)
→
5
稳健性检验
样本外/Walk-forward
过拟合防范: 严格样本外测试 | Walk-forward滚动窗口 | 独立信号≤10个 | Ledoit-Wolf收缩 | Deflation新因子必须在控制已有因子后仍显著
📖 金融-LOL 术语对照
| 金融术语 | LOL术语 | 核心关联 |
|---|---|---|
| 资产 (Asset) | 选手/队伍/英雄/阵容 | 被评估标的 |
| 收益率 (Return) | result (胜=1/负=0) | 表现度量 |
| 超额收益 (Excess Return) | adjusted result (对手调整) | 剔除市场后的表现 |
| 风险 (Risk) | 表现波动/不确定性 | 不确定性度量 |
| 因子 (Factor) | 风格/Alpha/事件因子 | 系统性能影响因素 |
| 因子暴露 (Exposure) | 队伍对风格因子的敏感度 | β |
| Alpha | 纯个人/团队超额能力 | 剔除所有β后的残差 |
| 夏普比率 (Sharpe) | 风险调整后胜率 | 每单位风险回报 |
| 信息比率 (IR) | Alpha稳定性 | Alpha均值/Alpha标准差 |
| IC (信息系数) | 因子预测力 | 信号与未来表现的相关性 |
| 组合优化 (Portfolio) | 阵容/BP优化 | 资源最优配置 |
| 回测 (Backtest) | 基于历史数据的策略验证 | 策略在历史数据的表现 |
| 套利 (Arbitrage) | 阵容/版本/赛区策略差 | 无风险/低风险机会 |
| 对冲 (Hedge) | 阵容风险分散/摇摆位 | 降低风险暴露 |
| 归因 (Attribution) | 胜负点/选手贡献分解 | 绩效来源分析 |
| Black-Litterman | 数据+教练判断融合 | 混合BP模型 |
| Barra风险模型 | 因子风险+特质风险分解 | 系统性vs特异性风险 |
| Regime Switching | 版本切换影响 | 结构性断点 |
🛤 实现路线图
Phase 1
数据工程
CSV清洗/前生变量/Panel/Z-score管道
→
Phase 2
因子构建
9风格+7Alpha+9事件+卐方差
→
Phase 3
模型构建
多因子回归/风险模型/Logistic/Kalman
→
Phase 4
策略与BP
6策略回测/三阶段BP/Black-Litterman
→
Phase 5
归因与报呒
Brinson/因子归因/Shapley值/英雄矩阵
技术栈:Python (Pandas, Statsmodels, Scikit-learn, XGBoost, CVXPY, PyPortfolioOpt, Alphalens)