分享

用数据说话——通过因子分析对NBA教练水平排序

问题导读:
1、如何进行因子分析?
2、如何鉴于因子分析,进行测试模型?



背景分析与问题简介:
NBA是世界上最有影响力、水平最高的篮球联赛,不仅仅球员,教练也散发着他们各自的魅力。各种NBA杂志隔三差五都会发表一篇关于教练排行的文章,排序方法五花八门,得到的结果也千奇百怪。各位NBA的粉丝可能对这些结果觉得有很大主观性,接下来我们将会用数据来对NBA教练进行排序,真正做到客观公正。

部分原始数据如下
1.jpg
总共265名NBA教练(以取执教场次>=20作为初步筛选的标准),具有的数据分别有名人堂次数、最佳教练次数、总冠军数、进入总决赛数、赛季数、进入季后赛数、常规赛胜率、常规赛场次、常规赛胜负场次、季后赛胜率、季后赛场次、季后赛胜负场次。以上便是用来衡量教练水平的原始数据。鉴于没有一个因变量Y来直观的描述教练的水平,于是无法采用回归算法来计算,我们选择使用因子分析把这多个变量降维并进行解释。
首先将完全相关的部分变量筛选掉,以初步减少多重共线性的问题。因为常规赛胜场=常规赛场次*常规赛胜率,常规赛负场=常规赛场次*(1-常规赛胜率),故我们可以将常规赛胜负场的变量去掉,同理季后赛胜负场也去掉;而赛季数与常规赛场次高度相关,我们也把它去掉。最后剩下名人堂次数、最佳教练次数、总冠军数、进入总决赛数、进入季后赛数、常规赛胜率、常规赛场次、季后赛胜率、季后赛场次这9个变量。

代码与分析:
  1. rt=read.table("f://1234.txt",head=TRUE)
  2. z=rt[,c(1,2,3,4,5,6,8,9,12,13)]
复制代码

为之后简化处理,在R中将变量改名为x1-x10:
2.jpg

之后对这9个变量进行因子分析,方法采用极大似然法,因子得分选用回归法,并进行方差最大旋转,因子数选用3:
4.jpg

可见累积贡献度已达77.4%,我们试过使用4个因子:
3.jpg


累积贡献度只到达78.2%,仅提升0.8%,故选用3个因子即可。
由loadings可知,factor1中x6,x8,x10的系数最大,即季后赛数,常规赛场次,季后赛场次,故factor1主要衡量教练的执教场数,且一定程度上描述了获得名人堂和最佳教练的程度;
Factor2中,x4,x5系数最大,即总决赛数及总冠军数,故factor2主要衡量教练进入最终比赛的能力,一定程度上也包括名人堂及场次;
Factor3中,x7,x9系数最大,即常规赛胜率及季后赛胜率,故factor3主要衡量教练的胜率。
再来看因子得分:
5.jpg

(具体可见附录)
将因子得分的情况复制到excel中进行排序:
6.jpg

先对factor1因子得分进行排序:
7.jpg

可得就场次而言前20名的教头排名如上。

再对factor2因子得分进行排序:
8.jpg

可得就总决赛水平而言前20名教头排名如上。

最后对factor3因子得分进行排序:
9.jpg

可得就综合胜率而言前20名教头排名如上。
因子得分排名可能实际情况有出入,毕竟每个因子不仅仅是只有某项属性(如factor1不仅仅代表场次),所以排名会有所偏差。
那么如何衡量教练的总体水平?
我们选用的方法如下,设K为教练的总体水平指数,令
K=0.324*x1+0.26*x2+0.19*x3,其中0.324,0.26,0.19分别为3个因子的贡献度,而x1,x2,x3则是每个教练的各项因子得分,最后得到如EXCEL中F列的数据,并按F列的数据进行排序:
10.jpg

于是我们得到总体水平前20名的教头。

模型测试:
如何测试模型呢?鉴于因子分析要对一个整体来进行处理,所以我们很难加入新的教练并对它们排序,唯一的测试方法就是将我们的排名与之前杂志的排名进行对比。我们在网上找到了一部分排名:
http://hi.baidu.com/af23145/item/fe8bb24543d9aae0bdf451ba
1:菲尔-杰克逊 2:里德-奥尔巴赫 3:帕特-莱利 4:格雷戈-波波维奇 5:拉里-布朗      6:查克-戴利 7:约翰-昆德拉 7:约翰-昆德拉 9:唐-尼尔森 10:兰尼-威尔肯斯
http://sports.china.com/zh_cn/sportsnews/basketball/nbanews/nbadongtai/11027367/20050924/12686023.html
1. 雷德-奥尔巴赫2. 查克-戴利3. 比尔-费奇4. 雷德-霍尔兹曼5. 菲尔-杰克逊
6. 约翰-昆德拉7. 唐-尼尔森8. 杰克-拉姆齐9. 帕特-莱利10. 伦尼-威尔肯斯

可见网上的十大教头中所有教头均排进了我们的前20的列表中(我们的原始数据中似乎没有约翰昆德拉。。。囧)所以可认为我们的模型可行。

结论:
通过因子分析,得到的教练排名(前20)如下:
11.jpg

柱状图:
12.jpg

可见前3名评分相较第四名以后的教练高出不少,4-9为一个档次,10-20为一个档次。

已有(1)人评论

跳转到指定楼层
qustwr 发表于 2014-7-9 10:50:55
因子分析中,你最终选用的的三个因子,而在因子得分时候会显示有4列,请问第四列是什么得分?是三个因子的综合得分吗?如果是,是怎么计算出来的呢? 谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条