2025年美赛C题:奥运奖牌榜模型 解析及Python代码实现

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 问题一:建立奖牌数模型

目标:创建一个模型来预测每个国家的奖牌数(金牌和总奖牌)。

  1. 数据预处理

---对数据进行清理和预处理,处理缺失值和异常。

对数据进行规范化,以解释事件数量随时间的变化。

  1. 特性工程

根据历史表现,事件数量,东道国影响等创建功能。

包括社会经济因素(国内生产总值、人口)。

  1. 模式选择

选择合适的统计或机器学习模型(例如,线性回归,随机森林,XGBoost)。

使用历史数据训练模型并验证其性能。

  1. 不确定度和精度:

使用自举抽样等技术来估计预测中的不确定性。

提供奖牌数的预测间隔。

  1. 2028年预测:

使用训练好的模型预测2028年洛杉矶奥运会的奖牌数。

确定与2024年相比可能有所改善或表现更差的国家。

预测将获得第一枚奖牌的国家数量。

  1. 事件影响分析:

分析项目数量和类型与奖牌数之间的关系。

确定不同国家的主要体育项目以及本国赛事的影响。

预测模型可参考代码:https://github.com/hrugved06/OlympicsMedalPrediction

https://github.com/acdick/tokyo_2020_olympic_champions/blob/master/src/04_Linear_Regression_Model.ipynb

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 问题二:伟大的教练效应

目的:调查"伟大教练"对奖牌数的影响。

  1. 数据分析

找出著名教练改变国家的例子。

分析教练任期前后奖牌数的变化。

  1. 模拟效果

创建一个模型来量化一个伟大教练对奖牌数的影响。

估计教练对总奖牌数的贡献。

  1. 建议:

找出三个国家和体育项目,在这些国家和体育项目中,投资一位优秀的教练可能会产生重大影响。

估计这些国家和体育项目奖牌数的潜在增长。

3.3 问题三:原始的见解

目的:揭示该模型对奥运奖牌数的其他启示。

  1. 探索性数据分析(EDA)

执行EDA以发现数据中的模式和趋势。

确定对奖牌数量有重大影响的因素。

数据分析可参考代码:https://github.com/thexinyu/OlympicMedalPrediction/blob/main/Olympic_Medal_Prediction.ipynb

  1. 洞察力产出

使用模型输出为国家奥委会提供可操作的见解。

突出显示数据中任何意外的发现或关系。

3 数学模型

4 Python代码

4.1 相关项目

4.2 主要代码

见github:https://github.com/cityu-lm/2025_MCM_Problem_C/blob/main/README.md

相关推荐
弥树子18 分钟前
使用 Python 和 scikit-learn 实现 KNN 分类:以鸢尾花数据集为例
python·分类·scikit-learn
Ronin-Lotus31 分钟前
程序代码篇---Python随机数
前端·python·学习·随机数
明月看潮生2 小时前
青少年编程与数学 02-008 Pyhon语言编程基础 01课题、语言概要
python·青少年编程·编程语言·编程与数学
weixin_307779133 小时前
设计转换Apache Hive的HQL语句为Snowflake SQL语句的Python程序方法
数据仓库·hive·python·sql
Zda天天爱打卡3 小时前
【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.27 线性代数王国:矩阵分解实战指南
python·线性代数·numpy
Icomi_3 小时前
【PyTorch】6.张量运算函数:一键开启!PyTorch 张量函数的宝藏工厂
c语言·c++·人工智能·pytorch·python·深度学习·机器学习
纠结哥_Shrek3 小时前
pytorch实现主成分分析 (PCA):用于数据降维和特征提取
人工智能·pytorch·python
lljss20203 小时前
python实现http文件服务器访问下载
服务器·python·http
martian6654 小时前
第27篇:Python开发进阶:python多线程与多进程编程
服务器·python