R来阐明林书豪
此刻网络上更为炙手可热的人物恐怕就是NBA新星林书豪(Jeremy Lin)了,可是俗话说:不怕不识货,就怕货比货。这位初生牛犊与其它NBA巨星对比,到底有何等优秀?尚有几多差距?照旧让数字来措辞吧。首先从这里下载2011-2012NBA赛季的球员数据,该数据中共有四百位球员,取得分最多的前一百位球员,将其数据拷贝到Excel中,并将林同学的数据添加在最后,删除了所属球队和排名之后我们获得了一个CSV数据文件。数据中的变量说明附后。
第一步:我们先画出这些变量的相干系数图,以剔除一些冗余的变量,从下图可看到深兰色方块即暗示两组数据间有较强正相关,那么我们只需取个中一组数据即可,譬喻TRB(篮板总数)就可以取代ORB/DRB/BUK。由此我们提取MP/FGA/FGP/X3PP/FT/FTP/TRB/AST/STL/PF/TOV/PTS这12个变量作进一步处理惩罚。
第二步:别离绘制这些变量的箱线图,并调查林同学在一百位NBA球员中的位置。但需要留意的是,林同学作为崭露头角的新星,上场时间较少。为了公正的较量在单元时间内的各项指标,需要将一些指标按上场时间举办平均化处理惩罚。譬喻将总得分数除以进场时间,但其它一些指标如进球率则保存稳定。
上面的箱线图中赤色的点即代表林书豪,可调查到他在助攻(AST.MP)和得分本领(PTS.MP)方面表示优秀,在得球时机(FGA>MP)和掷中率(FTP)方面亦属上佳,三分球掷中率(X3PP)和罚球掷中率(FGP)则属下乘,并且失误(TOV.MP)数字也相当的多。那么蓝色的点,你知道是代表哪一位球员吗?那就是今朝的得分王科比。仔细较量一下吧。
第三步:上面临各指标别离举办了一维的较量,下面用多维标度阐明要领,将多维空间的工具简化到低维空间举办定位和阐明。提取前两维绘制成散点图如下。个中赤色点暗示是林同学的位置,而蓝色点则是总得分排名前十位的球员。从图上好像可以获得令人受惊的结论,那就是林同学险些可与这十位巨星球员归为一类了。
结语:对篮球和数字感乐趣的同学可以作进一步的研究。但有几点需要留意的是:1、外貌的数字不必然代表球员本领,原因正如笔者在体育数据挖掘一文中提到过的;2、林同学上场时间还不多,样本太少,不必然具有代表性;3、上面是将林同学和一百位NBA球员举办较量,符合的作法还应该将他与打同一位置的球员加以比对。但这个数据中并未包括此信息。
R代码:
#读取CSV数据文件 data <- read.csv('d:/nba.csv',sep=',') summary(data) #绘制变量间的相干系数图 library(corrgram) corrgram(data[,c(-1,-2)]) #将几个指标除以上场时间,再合成为新的数据 temple.data <- sapply(data[c('FGA','FT','TRB','AST','STL','PF','TOV','PTS')],function(x) x/data['MP']) newdata1 <- cbind(data[c('FGP','X3PP','FTP')],as.data.frame(temple.data)) #对数据举办融合以利便ggplot2画图 library(reshape) newdata2 <- melt(newdata1) library(ggplot2) #提取林书豪与科比的数据 lindata<-melt(newdata1[101,]) kobedata <-melt(newdata1[1,]) #构建ggplot图层的根基数据层 p <- ggplot(data=newdata2,aes(x=variable,y=value)) #添加箱线图和点图 p + geom_boxplot()+ geom_point(data=lindata,colour='red',size=3)+ geom_point(data=kobedata,colour='blue',size=3)+ coord_flip() #加载MASS包举办MDS阐明 library(MASS) nba.mds <- isoMDS(dist(newdata1)) #提取前两维数据 x = nba.mds$points[,1] y = nba.mds$points[,2] mds.data <-data.frame(x,y,player=data$Player) lin.data <- mds.data[101,] topten.data <- mds.data[1:10,] #绘制散点图 g <- ggplot(data=mds.data,aes(x,y)) g + geom_point()+ geom_point(data=lin.data,color='red',size=4)+ geom_point(data=topten.data,color='blue',size=3)+ geom_text(size=4,data=topten.data,aes(label=player),hjust=1,vjust=0,alpha=0.5)
变量说明:
G:进场次数
GS:先发次数
MP:上场时间
FG:投中次数
FGA:投篮次数
FGP:掷中率
3P:3分掷中次数
3PA:3分投篮次数
3PP:3分掷中率
FT:罚球掷中次数
FTA:罚球次数
FTP:罚球掷中率
ORB:打击篮板
DRB:防守篮板
TRB:总篮板
AST:助攻
STL:盗球
BLK:封盖
TOV:失误
PF:小我私家犯规
PTS:总得分
变量名后加.MP的暗示以上场时间举办了平均处理惩罚。