从数据角度分析年龄与NBA球员赛场表现的关系【数据分析项目分享】

好久不见朋友们,今天给大家分享一个我自己很感兴趣的话题分析——NBA球员表现跟年龄关系到底大不大?数据来源于Kaggle,感兴趣的朋友可以点赞评论留言,我会将数据同代码一起发送给你。

目录

  • NBA球员表现的探索性数据分析
    • 导入Python库和加载数据
  • 数据简要概述
  • 数据可视化
  • 年龄与上场时间的比较
  • 年龄与出场次数相比较
  • 年龄与PER相比较
  • 结论

NBA球员表现的探索性数据分析

美国国家篮球协会(NBA)中有各个年龄段的新秀和资深球员。本次数据分析将突出年龄和技能之间的关系,同时研究年龄在球员表现中的因素。

导入Python库和加载数据

首先,加载数据,并按球员名称进行索引,然后查看前5行数据,以了解数据的样式。

import pandas as pd
pd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
from sklearn.linear_model import LinearRegression as linreg

NBA = pd.read_csv('./nba.csv',index_col=1)
NBA.head() 


RkPosAgeTmGMPPERTS%3PArFTr...Unnamed: 19OWSDWSWSWS/48Unnamed: 24OBPMDBPMBPMVORP
Player
Alex Abrines\abrinal011SG24OKC7511349.00.5670.7590.158...NaN1.31.02.20.094NaN-0.5-1.7-2.2-0.1
Quincy Acy\acyqu012PF27BRK7013598.20.5250.8000.164...NaN-0.11.11.00.036NaN-2.0-0.2-2.2-0.1
Steven Adams\adamsst013C24OKC76248720.60.6300.0030.402...NaN6.73.09.70.187NaN2.21.13.33.3
Bam Adebayo\adebaba014C20MIA69136815.70.5700.0210.526...NaN2.31.94.20.148NaN-1.61.80.20.8
Arron Afflalo\afflaar015SG32ORL536825.80.5160.4320.160...NaN-0.10.20.10.009NaN-4.1-1.8-5.8-0.7

5 rows × 28 columns

*对于本次分析,我们其实只需要以下几个字段的数据。

  • 球员的年龄, (Age)
  • 出场场次 (G)
  • 出场时间 (MP)
  • 效率值Player Efficiency Rating (PER)
  • 真实命中率 (TS%)

除了球员姓名外,其余列将被删除,并且任何包含缺失数据的列也将被删除。

nba_temp = NBA.loc[:,  ['Age', 'G', 'MP','PER','TS%']]
nba = nba_temp.dropna(axis=0)
nba = nba[~nba.index.duplicated()]
nba.head()
AgeGMPPERTS%
Player
Alex Abrines\abrinal01247511349.00.567
Quincy Acy\acyqu01277013598.20.525
Steven Adams\adamsst012476248720.60.630
Bam Adebayo\adebaba012069136815.70.570
Arron Afflalo\afflaar0132536825.80.516

为了更容易理解,列将被重新命名,以将它们转为非缩写形式。

nba =nba.rename(index=str, columns={'G' : '# Games','MP': 'Minutes Played',
                               'PER': 'Player Efficiency Rate'})

数据简要概述

print(nba.shape)  # 看下数量级
nba.describe()
(537, 5)
Age# GamesMinutes PlayedPlayer Efficiency RateTS%
count537.000000537.000000537.000000537.000000537.000000
mean26.10428348.6052141105.86219712.9517690.531965
std4.17485427.312191855.1955228.7494760.124523
min19.0000001.0000001.000000-41.1000000.000000
25%23.00000021.000000253.0000009.7000000.500000
50%25.00000056.0000001045.00000012.8000000.541000
75%29.00000073.0000001810.00000016.4000000.582000
max41.00000082.0000003026.000000133.8000001.500000
  • 在2017-18赛季,大约有537球员出场打比赛。
  • 根据以往赛季的年龄平均值,预计2017-18赛季的NBA球员平均年龄约为26岁。
  • 有趣的是,联盟中最年长的球员是41岁,比最年轻的球员大22岁!(最大的没记错的话应该是卡特,最小的没啥印象)
  • 平均每位球员在赛季中打了43场比赛,而其真实命中率约为53%

数据可视化

正如之前注意到的,球员年龄范围广泛,但各年龄的分布人数情况又如何呢?

sns.set_style("dark")
plt.figure(figsize=(10,10))
plt.ylabel('# of Players')
sns.histplot(data=nba, x='Age')
plt.show()

在这里插入图片描述

联盟过去和现在都倾向于年轻球员,这是可以预料的。球队通常会寻找年轻的潜力球员,在他们大学期间或之后选择他们。

然而,这个直方图只能提供有限的信息,我们仍然想知道年龄是否真的会影响球员的表现。所以让我们从年龄与参加比赛数量的关系开始看起吧

年龄与上场时间的比较

plt.figure(figsize=(20,10))
plt.ylabel('Minutes Played')
plt.xlabel('Age')
sns.regplot(data=nba, x='Age',y='Minutes Played')
plt.show()

在这里插入图片描述

从上述散点图我们可以得知:

  1. 年龄在19岁至28岁之间的年轻球员比年龄在28岁至41岁之间的老年球员打的比赛更多。
  2. 年轻球员的上场时间范围总体上比老年球员更大。
  3. 总体上,老年球员的上场时间比年轻球员更长。

需要注意的是,这可能不是散点图的最佳线性拟合,然而,该图表大致说明年龄可能不会影响比赛中的上场时间。

年龄较大可能意味着更多的经验,从而在场上停留更长时间,但也有许多年轻的潜力球员比老将球员打得时间更长。

年龄与出场次数相比较

在我们进行年龄与参与游戏次数之间的比较之前,让我们先看一下参与游戏次数与比赛时间之间的关系。

plt.figure(figsize=(20,20))
plt.ylabel('Minutes')
plt.xlabel('Games')
sns.scatterplot(data=nba, x='# Games',y='Minutes Played')
plt.show()

在这里插入图片描述

看起来,如果一个球员在赛季中参加的比赛越多,他们的平均比赛时间也会更长。

在这个基础上,让我们在这个比较中加入年龄。

plt.figure(figsize=(15,10))
plt.ylabel('Minutes')
plt.xlabel('Games')
sns.scatterplot(data=nba, x='# Games',y='Minutes Played', hue='Age')
plt.show()

在这里插入图片描述

关于这个散点图需要注意的一些点:

  1. 这个散点图证实了我们关于年龄与比赛时间之间关系的结论,因为年龄大的和年龄小的人在各种时间段内都有参与比赛的情况。
  2. 年龄较小和较大的范围都分布在整个图中,这表明年龄可能不影响个体参与比赛的次数。

在表现方面,看起来年龄只是一个数字?也许是这样,但我们目前只关注了定量方面的因素,那么比赛中的实际技能呢?

年龄与PER相比较

尽管可能有球员参加更多比赛或比赛时间更长,但这并不能准确地描绘这些个体的表现。因此,我们将根据年龄来评估这些散点图的真实性,考察球员的球员效率评分(PER)。

但是,什么是PER呢?PER简单来讲就是:它允许将篮球运动员的所有成就(得分、盖帽、抢断等)转化为一个单一的数字。PER也是一种每分钟的度量方式,可以比较任意两位选手,而不受比赛场次或比赛时间的限制。这也是为什么我们之前删除了一些列的原因,因为这样可以更简便地比较累积统计数据,如PER,而不需要处理每个个体方面的数据。

有了PER,我们现在可以从新的角度分析年龄对表现的影响。

plt.figure(figsize=(15,10))
sns.regplot(data=nba, x='Minutes Played',y='Player Efficiency Rate')
plt.show() 

在这里插入图片描述

单看平均趋势的话,如果一个球员参与比赛的时间更长,他们的PER很可能比大多数人要高。

那接下来,我们来比较下比赛次数与PER之间的关系。

plt.figure(figsize=(15,10))
sns.regplot(data=nba, x='# Games',y='Player Efficiency Rate')
plt.show() 

在这里插入图片描述

同样的情况,如果一个球员参加的比赛更多,他们的PER很可能更高。

所以到目前为止,一切似乎都符合预期,PER与球员在比赛中的参与程度呈正相关关系。

那现在,让我们开始将年龄与这两个变量进行比较。

plt.figure(figsize=(15,10))
sns.regplot(data=nba, x='Age',y='Player Efficiency Rate')
plt.show() 

在这里插入图片描述

在回归斜率中几乎是一条直线,年龄几乎与PER没有关系。但这意味着什么呢?

这意味着年龄与球员效率评分之间几乎没有明显的关联。年龄对于一个球员的表现并不是决定因素,至少在这个数据集中。其他因素,如技能水平、体能和经验可能更重要。

结论

尽管我们对不少的变量同年龄进行了比较,并使用了不同的绘图方法,但年龄似乎从未对最终结果产生影响。年龄对于篮球运动员来说既不是负面特征,也不是优势。

根据这个分析,还可以得出一些其他的结论:

  • 这些仅仅是一个赛季中少数球员的结果,因此我们不能轻易将此结论推广到NBA的每个赛季。
  • 在NBA中,年龄是相对而言的。年龄范围在很大程度上分为年轻球员和年长球员,但可以重新进行分析,并尝试使用更小的年龄段,可能会得出新的见解。
  • 这个分析纯粹基于可视数据,对于个人表现的每个方面,如领导能力和团队合作,并没有提供深入了解。

总的来说,这个分析我觉得是可以给到我们一个新的视角来了解NBA球员的水平,因为即使年龄不小了,他们也不会让年龄成为阻碍,努力成为最好的球员。

最后,很高兴在kaggle闲逛的时候有幸能看到一个我这么感兴趣的数据集,也仅以此篇,致敬詹库杜,致敬那些现在仍在奋斗着的NBA老将们。


推荐关注的专栏

👨‍👩‍👦‍👦 数据分析:分享数据分析实战项目和常用技能整理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/335543.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

会话跟踪技术(cookiesession)

文章目录 1、什么是会话跟踪技术2、Cookie2.1、Cookie基本使用2.2、Cookie原理2.3、Cookie使用细节 3、Session3.1、Session基本使用3.2、Session原理3.3、Session使用细节 4、Cookie和Session的对比 1、什么是会话跟踪技术 会话 ​ 用户打开浏览器,访问web服务器的…

在行情一般的情况下,就说说23级应届生如何找java工作

Java应届生找工作,不能单靠背面试题,更不能在简历中堆砌和找工作关系不大的校园实践经历,而是更要在面试中能证明自己的java相关商业项目经验。其实不少应届生Java求职者不是说没真实Java项目经验,而是不知道怎么挖掘,…

DB107S-ASEMI智能LED灯具专用DB107S

编辑:ll DB107S-ASEMI智能LED灯具专用DB107S 型号:DB107S 品牌:ASEMI 封装:DBS-4 最大重复峰值反向电压:1000V 最大正向平均整流电流(Vdss):1A 功率(Pd):50W 芯片个数:4 引…

浅析智能家居企业面临的组网问题及解决方案

在这个快速发展的时代,组网对于企业的发展来说是一个至关重要的环节。 案例背景: 案例企业是一家智能家居制造企业,在不同城市分布有分公司、店铺、工厂,这些点原本都是各自采购网络,与总部进行日常沟通、访问。 现在…

Linux用户与文件的关系和文件掩码(umask)的作用

文章目录 1 前言2 Linux用户与文件的关系3 文件掩码(umask)4 总结 1 前言 阅读本篇文章,你将了解Linux的目录结构,用户与文件的关系,以及文件掩码的作用。为了方便大家理解,本文将通过实例进行演示&#xf…

外卖系统创新:智能推荐与用户个性化体验

外卖系统的日益普及使得用户对于更智能、个性化的体验有着不断增长的期望。在这篇文章中,我们将探讨如何通过智能推荐技术,为用户提供更贴心、更符合口味的外卖选择。我们将使用 Python 和基于协同过滤的推荐算法作为示例,让您更深入地了解智…

【分布式技术】Elastic Stack部署,实操logstash的过滤模块常用四大插件

目录 一、Elastic Stack,之前被称为ELK Stack 完成ELK与Filebeat对接 步骤一:安装nginx做测试 步骤二:完成filebeat二进制部署 步骤三:准备logstash的测试文件filebeat.conf 步骤四:完成实验测试 二、logstash拥有…

解决 java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader 报错

在使用POI导出Excel表格的时候&#xff0c;本地运行导出没问题&#xff0c;但是发布到服务器后提示 “java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader” 下面是pom.xml中的配置 <dependency><groupId>org.apache.poi</groupId><art…

多场景建模:阿里STAR

多场景建模&#xff1a;阿里STAR 阿里提出了Partitioned Normalization、Star Topology FCN、Auxiliary Network应用到多场景建模&#xff0c;在各个场景上面取得不错的效果。 两个场景&#xff1a; 淘宝主页的banner&#xff0c;展示一个商品或者一个店铺或者一个品牌猜你喜欢…

css 3D立体动画效果怎么转这个骰子才能看到5

css 3D立体动画效果怎么转这个骰子才能看到5 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equ…

Java和SpringBoot学习路线图

看了一下油管博主Amigoscode的相关视频&#xff0c;提到了Java和SpringBoot的学习路线&#xff0c;相关视频地址为&#xff1a; How To Master Java - Java for Beginners RoadmapSpring Boot Roadmap - How To Master Spring Boot 如下图所示&#xff1a; 当然关于Java和Spr…

SpringBoot 服务注册IP选择问题

问题 有时候我们明明A\B服务都注册成功了&#xff0c;但是相互之间就是访问不了&#xff0c;这大概率是因为注册时选择IP时网卡选错了&#xff0c;当我们本地电脑有多个网卡时&#xff0c;程序会随机选择一个有IPV4的网卡&#xff0c;然后读取IPv4的地址 比如我的电脑有3个网…

铸铁平台使用米字型布局的特点——河北北重

铸铁平台使用米字型布局的特点主要有以下几点&#xff1a; 结构稳定&#xff1a;米字型布局能够使得铸铁平台的结构更加稳定。因为米字型布局将平台的重力均匀分散到四个支撑角上&#xff0c;减小了平台的变形和挠曲程度&#xff0c;使得平台能够承受更大的荷载。 节省空间&am…

伊恩·斯图尔特《改变世界的17个方程》傅里叶变换笔记

主要是课堂的补充&#xff08;yysy&#xff0c;我觉得课堂的教育模式真有够无聊的&#xff0c;PPT、写作业、考试&#xff0c;感受不到知识的魅力。 它告诉我们什么&#xff1f; 空间和时间中的任何模式都可以被看作不同频率的正弦模式的叠加。 为什么重要&#xff1f; 频率分量…

【JavaEE进阶】 SpringBoot配置⽂件

文章目录 &#x1f340;配置⽂件的作⽤&#x1f334;SpringBoot配置⽂件&#x1f38b;配置⽂件的格式&#x1f384;properties配置⽂件&#x1f6a9;properties基本语法&#x1f6a9;读取配置⽂件&#x1f6a9;properties的缺点 &#x1f333;yml配置⽂件yml基本语法&#x1f6…

文件服务FTP

文章目录 一、FTP协议二、VSFTPD服务介绍基础配置匿名用户访问&#xff08;默认开启&#xff09;本地用户访问虚拟用户访问 一、FTP协议 FTP协议&#xff1a;文件传输协议&#xff08;File Transfer Protocol&#xff09; 协议定义了一个在远程计算机系统和本地计算机系统之间…

【Linux的基本指令】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 1、ls 指令 2、 pwd命令 3、cd 指令 4、touch指令 5、mkdir指令&#xff08;重要&#xff09; 6、rmdir指令 && rm 指令&#xff08;重要&#xff09;…

中使用 MOOTDX库读取通达信的数据,WIN+PYTHON,最新问题排查

M项目概述 - MOOTDXhttps://www.mootdx.com/zh-cn/latest/帮助文档https://www.mootdx.com/zh-cn/latest/​​​​​​​​​​​​​​​​​​​​​ 库的安装 注&#xff1a;我这的安装过程必须要ROOT权限&#xff0c;所以我用管理员的权限运行了控制台 pip install moot…

SEO文章自动生成发布网站工具【网站维护必备】

在SEO优化的过程中&#xff0c;高质量的原创文章是吸引搜索引擎和用户的关键。然而&#xff0c;对于许多站长和网站管理员而言&#xff0c;创作大量原创内容可能是一项繁琐而耗时的任务。为了解决这一难题&#xff0c;免费的147SEO软件应运而生&#xff0c;通过输入关键词或标题…

Red Hat Enterprise Linux 6.10 安装图解

引导和开始安装 选择倒计时结束前&#xff0c;通过键盘上下键选择下图框选项&#xff0c;启动图形化安装过程。需要注意的不同主板默认或者自行配置的固件类型不一致&#xff0c;引导界面有所不同。也就是说使用UEFI和BIOS的安装引导界面是不同的&#xff0c;如图所示。若手动调…