2025年美赛C题:奥运奖牌榜模型 解析及Python代码实现
1 题目
2025 MCM问题C:奥运奖 牌榜模型在最近的2024年巴黎夏季奥运会期间, 粉丝们除了观看个人项目外, 还关注每个 国家的整体 " 奖牌榜 "。 最终的结果(表1) 显示 , 美国获得的奖牌总数最多 (126枚) , 中国和美国并列金牌榜第一名(40枚)。东道主法国在金牌榜上排名 第五(16枚) , 但在总奖牌榜上排名第四, 而大不列颠以14枚金牌排名第七, 在 总奖牌榜上排名第三。
奖牌榜上的排名总是受到密切关注, 但其他国家的奖牌榜通常也同样受到重视。例 如, 阿尔巴尼亚(2枚奖牌)、佛得角、 多米尼加和圣卢西亚(2枚奖牌)在巴黎奥 运会上获得了各自国家的第一枚奥运奖牌。 多米尼加和圣卢西亚也各获一枚金牌。 还有60多个国家尚未赢得奥运会奖牌。通常会对最终奖牌数进行预测, 但通常不是基于历史奖牌数, 而是在即将到来的 奥运会开始时, 当已知当前计划参加比赛的运动员时(例如:https://www.nielsen. com/newscenter/2024/virtualmedaltableforecast/)。
附件提供了所有夏季奥运会的奖牌榜、主办国的数据, 以及所有夏季奥运会按运动项目分 列的每届奥运会的奥运会项目数量。此外, 还提供了所有奥运选手的个人数据, 包括 他们的项目和成绩(奖牌类型, 或没有奖牌)。您的模型和数据分析必须仅使用所提 供的数据集。你可以使用额外的资源来提供背景和上下文, 或者帮助解释结果(一定 要记录来源)。具体来说, 使用提供的数据来:
- 为每个国家的奖牌数建立一个模型(至少是金牌和总奖牌数)。包括对模型预 测的不确定性/精度的估计, 以及模型执行情况的衡量标准。
- 根据你的模型, 你对2028年美国洛杉矶夏季奥运会奖牌榜的预测是什么? 包括所有结果的预测区间。你认为哪些国家最有可能改善? 哪些国 家的情况会比2024年更糟?
- 你的模型应该包括尚未获得奖牌的国家;你预计有多少国家会在下一届 奥运会上获得第一枚奖牌?你认为这个估计的赔率是多少?
- 你的模型还应该考虑某届奥运会的项目(数量和类型)。探索项目和国家 获得奖牌数之间的关系。 哪些运动项目对各个国家来说最重要?为什
么?主办国选择的项目如何影响比赛结果?
- 运动员可能代表不同的国家参赛, 但由于国籍要求而改变对他们来说并不是一 件简单的事情。然而, 教练可以很容易地从一个国家转移到另一个国家, 因为 他们不需要成为公民来执教。 因此, 有可能产生"伟大的教练"效应。两个可 能的例子包括郎平, 他曾带领美国和中国的排球队获得冠军, 以及有时备受争 议的体操教练b美国女子体操队的教练b美国女子体操队的教练b美国女子体操队 取得了巨大的成功。检查数据, 寻找可能由于"伟大教练"效应而导致的变化 的证据。你估计这种效应对奖牌数的贡献有多大?选择三个国家, 并确定他们 应该考虑投资一位"伟大"教练的体育项目, 并估计其影响。
- 你的模型还揭示了哪些关于奥运奖牌数的原创见解?解释这些见解如何为 国家奥委会提供信息。
2 数据介绍
summerOly_medal_counts.csv
这个表格包含了各个国家在每届夏季奥运会上的奖牌统计信息。每一行代表一个国家在某一年的奥运会上的奖牌数。
- Rank: 国家在奖牌总数上的排名
- NOC: 国家名称(以该届奥运会的记录为准)
- Gold: 获得的金牌数量
- Silver: 获得的银牌数量
- Bronze: 获得的铜牌数量
- Total: 获得的奖牌总数
- Year: 奥运会年份
summerOly_hosts.csv
这个表格列出了每届夏季奥运会的举办地。
- Year: 奥运会年份
- Host: 举办城市和国家
summerOly_programs.csv
这个表格包含了夏季奥运会的项目和学科信息,包括当前和已停办的项目。
- Sport: 运动类别
- Discipline: 运动类别中的具体项目
- Code: 项目的代码
- Year: 每年的项目数量
summerOly_athletes.csv
这个表格包含了参加夏季奥运会的运动员信息。
- Name: 运动员姓名
- Sex: 运动员性别
- Team: 运动员所属国家
- NOC: 国家代码
- Year: 奥运会年份
- Season: 奥运会类型(夏季)
- City: 举办城市
- Sport: 运动类别
- Event: 具体项目
- Medal: 获得的奖牌(如果有)
data_dictionary.csv
这个表格是数据字典,解释了其他表格中的变量和示例。
- summerOly_medal_counts.csv:
- Rank: 国家在奖牌总数上的排名
- NOC: 国家名称(以该届奥运会的记录为准)
- Gold: 获得的金牌数量
- Silver: 获得的银牌数量
- Bronze: 获得的铜牌数量
- Total: 获得的奖牌总数
- Year: 奥运会年份
- summerOly_hosts.csv:
- Year: 奥运会年份
- Host: 举办城市和国家
- summerOly_programs.csv:
- Sport: 运动类别
- Discipline: 运动类别中的具体项目
- Code: 项目的代码
- Year: 每年的项目数量
- summerOly_athletes.csv:
- Name: 运动员姓名
- Sex: 运动员性别
- Team: 运动员所属国家
- NOC: 国家代码
- Year: 奥运会年份
- Season: 奥运会类型(夏季)
- City: 举办城市
- Sport: 运动类别
- Event: 具体项目
- Medal: 获得的奖牌(如果有)
3 问题分析
3.1 问题一:建立奖牌数模型
目标:创建一个模型来预测每个国家的奖牌数(金牌和总奖牌)。
- 数据预处理
---对数据进行清理和预处理,处理缺失值和异常。
对数据进行规范化,以解释事件数量随时间的变化。
- 特性工程
根据历史表现,事件数量,东道国影响等创建功能。
包括社会经济因素(国内生产总值、人口)。
- 模式选择
选择合适的统计或机器学习模型(例如,线性回归,随机森林,XGBoost)。
使用历史数据训练模型并验证其性能。
- 不确定度和精度:
使用自举抽样等技术来估计预测中的不确定性。
提供奖牌数的预测间隔。
- 2028年预测:
使用训练好的模型预测2028年洛杉矶奥运会的奖牌数。
确定与2024年相比可能有所改善或表现更差的国家。
预测将获得第一枚奖牌的国家数量。
- 事件影响分析:
分析项目数量和类型与奖牌数之间的关系。
确定不同国家的主要体育项目以及本国赛事的影响。
预测模型可参考代码:https://github.com/hrugved06/OlympicsMedalPrediction
Name of the Model | Accuracy |
---|---|
Logistic Regression | 85.357825 |
MultinomialNB | 85.367968 |
Decision Tree | 84.095457 |
Random Forest | 88.779773 |
Gradient Boosting | 88.514205 |
Neural Network | 87.904691 |
3.2 问题二:伟大的教练效应
目的:调查"伟大教练"对奖牌数的影响。
- 数据分析
找出著名教练改变国家的例子。
分析教练任期前后奖牌数的变化。
- 模拟效果
创建一个模型来量化一个伟大教练对奖牌数的影响。
估计教练对总奖牌数的贡献。
- 建议:
找出三个国家和体育项目,在这些国家和体育项目中,投资一位优秀的教练可能会产生重大影响。
估计这些国家和体育项目奖牌数的潜在增长。
3.3 问题三:原始的见解
目的:揭示该模型对奥运奖牌数的其他启示。
- 探索性数据分析(EDA)
执行EDA以发现数据中的模式和趋势。
确定对奖牌数量有重大影响的因素。
数据分析可参考代码:https://github.com/thexinyu/OlympicMedalPrediction/blob/main/Olympic_Medal_Prediction.ipynb
- 洞察力产出
使用模型输出为国家奥委会提供可操作的见解。
突出显示数据中任何意外的发现或关系。
3 数学模型
4 Python代码
4.1 相关项目
- predictolympicmedals
- tokyo_2020_olympic_champions
- PredictingMedals
- OlympicsDataAnalyzerandMedalPredictor
- OlympicsMedalsPredictionModel
- tokyo_2020_olympic_champions
- OlympicsMedalPrediction
- OlympicMedalPrediction
- OlympicsMedalPredictionMachineLearningModel
- olympic_medal_prediction
- OlympicsPrediction
- MedalsPrediction
- MedalPredictions
- MedalsPredictions
- MedalsOlympics_Prediction
4.2 主要代码
见github:https://github.com/cityu-lm/2025_MCM_Problem_C/blob/main/README.md