Python案例:换人调整会影响结果吗?
这是一个很有意思的问题,涉及到因果推断(Causal Inference),下面我用一个具体的Python案例来探讨。

问题设定
假设我们想研究:足球比赛中教练换人,是否会影响比赛结果?
直觉上答案似乎是"会",但真正的问题是——如何用数据验证因果关系?
案例:用Python模拟
模拟数据(带混杂因素)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
import statsmodels.api as sm
np.random.seed(42)
n = 5000
# 混杂因素:球队实力(0-1,越强越接近1)
team_strength = np.random.beta(2, 2, n)
# 落后比分(落后越多,越可能换人)
goal_diff = np.random.normal(0, 1, n)
goal_diff = goal_diff - 0.5 * team_strength # 强队更可能领先
# 换人决策:受实力和比分影响
prob_sub = 1 / (1 + np.exp(-(2 - 3*team_strength + 1.5*goal_diff*(-1))))
substitution = np.random.binomial(1, prob_sub)
# 结果:胜/平/负(用二分类简化:是否赢球)
prob_win = 1 / (1 + np.exp(
-(0.8 * team_strength + 1.0 * goal_diff + 0.3 * substitution)
))
win = np.random.binomial(1, prob_win)
df = pd.DataFrame({
'strength': team_strength,
'goal_diff': goal_diff,
'substitution': substitution,
'win': win
})
天真分析(只看相关性)
# 直接比较换人 vs 不换人的胜率
naive = df.groupby('substitution')['win'].mean()
print("天真分析 - 换人组胜率:", naive[1].round(3))
print("天真分析 - 不换人组胜率:", naive[0].round(3))
结果可能是:换人组胜率反而更低!
这会得出荒谬结论:"换人导致输球",原因就是混杂:落后时教练才换人。
控制混杂变量(回归)
X = sm.add_constant(df[['strength', 'goal_diff', 'substitution']])
model = sm.Logit(df['win'], X).fit(disp=0)
print(model.summary())
# 提取换人的系数(对数几率)
coef_sub = model.params['substitution']
odds_ratio = np.exp(coef_sub)
print(f"\n换人对胜率的因果效应(OR): {odds_ratio:.3f}")
控制实力和比分后,换人的系数变为正,这才是更接近真实的因果效应。
倾向得分匹配(PSM)
from sklearn.neighbors import NearestNeighbors
# 用混杂变量估计倾向得分
X_ps = df[['strength', 'goal_diff']]
ps_model = LogisticRegression().fit(X_ps, df['substitution'])
df['ps'] = ps_model.predict_proba(X_ps)[:, 1]
# 对每个换人样本,找PS相近的不换人样本
treated = df[df['substitution'] == 1]
control = df[df['substitution'] == 0]
nn = NearestNeighbors(n_neighbors=1).fit(control[['ps']])
_, idx = nn.kneighbors(treated[['ps']])
matched = control.iloc[idx.flatten()]
ate = treated['win'].mean() - matched['win'].mean()
print(f"PSM估计的换人因果效应: {ate:.3f}")
| 方法 | 是否可信 | |
|---|---|---|
| 天真比较 | 换人降低胜率 | ❌ 有混杂偏差 |
| 回归控制 | 换人略微提升胜率 | ✅ 较可信 |
| PSM匹配 | 接近回归结果 | ✅ 较可信 |
答案:换人调整确实会影响结果,但要用对方法才能测出真实效应。
关键启示
- 相关 ≠ 因果:换人常常发生在落后时,直接比较会产生"辛普森悖论"
- 必须控制混杂变量:球队实力、当前比分、比赛时间、对手强度等
- 因果推断工具:回归、PSM、DID、工具变量、RCT
- 现实建议:想真正回答这个问题,最好用随机对照实验(比如球场上随机决定是否换人——当然现实中做不到)
如果你有具体场景(比如某个体育数据集、A/B测试数据),我可以把代码改得更贴近你的真实问题。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播