Beta

It’s a beautiful thing when free data meets free algorithm.

上次说到准备分析一下火箭的投篮点,今天补上一张球员投篮点和球队命中率的示例图:

注释:Hit Rate 部分,不同颜色的线条代表了第一二三四节的投篮命中率,也就是hat(beta)的值。 如果有人把图一帧一帧的看完,会发现:

  1. 火箭开局并不好,但在第一节后半段和第二节上半段发挥很好;其余时间发挥着实一般。
  2. 火箭攻击点大部分集中在两个区域:篮板前3英尺的水平线上和弧顶至禁区间区域。

是说,湖人成功将火箭进攻路线阻断?呵呵,比赛的时候我在写上面图的代码,没来得及看 ^_^

有意思的一个赛季,由于赛季之初 Artest 的到来,球迷们又开始 YY 松鼠姚的总冠军之路。不过可惜,随着 T-McGrady 的报废,基本上这赛季总决赛大门又一次提前关闭。紧接着球队的主力得分后卫 R. Alston 被换走,今天又签下 James White,我就纳闷了,为啥和火箭有关系的人我都关注过呢。 松鼠姚至今天(2009.03.05)共 28 次两双,占出场次数的 48%,场均数据并不惊艳。场均上场 32.9 分钟,得分为 19.8 分,篮板为 9.6 个。离场均两双还有一点点距离,给个及格分好了。

顺便做了下对火箭球员分析,共使用了 273 个火箭球员的相关变量,得到的结论解释了我几条疑问:

指标我就不多说了,爱打篮球的筒子一般都知道 FG、AST、REB 这类乱七八糟的指标,要说明的是 1722、532 这些数字是 ESPN 给 NBA 球员定义的编号,1722 就是 Y. Ming 了,其他的 532 为 T. McGrady,11 为 R. Alston,25 为 Artest ,1781 为 L. Scola ,3192 为 A. Brooks;而 1、0 则为方便记录胜负而设置的。

从图上不难找到火箭的关键球员,他们左右了每场比赛的胜负。对火箭成绩走向最关键的球员是 Y. Ming ,因为他在最根部,是决定下一个球员因素的前提(本赛季 T. McGrady 由于伤病困扰数据大幅下滑,不过从侧面说明 Y.Ming 已然是球队老大)。其他球员因素不必过多解释,数据显示结果唯一让我不满便是 S. Battier 的重要性,本来这次数据探索我就是朝着他去的,结果还是没有合适指标可以显示他的作用。再找时间做好了。

关于为什么 R. Alston 为什么会被换走,这里同样可以给大家一个清晰的解释:当 Yao 的 Field Goal 低于 5.5 时,同时 T. McGrady 的 AST 小于4.5 次时,R. Alston 的上场时间成为关键因素,不过抱歉的说,当他上场时间大于35.5 min 时,火箭会输!!估计莫雷应该用的是同样方法看到这一怪现象吧。那 R. Alston 在交易日截止之前被换走也就不难理解了。

阿德尔曼的普林斯顿体系是不是适合火箭。说实话,我也不熟。至今,我对经典的三角进攻都不知道如何开始。不过,火箭的 Team 数据(不包括20090305对爵士)可以说明一切。Exciting 的时刻来了:

  1. 如果火箭的得分(PTS)能够上到 102 分以上,那么这场比赛是拿定了。这种比赛个人认为应该是队员对教练战术执行彻底,进攻如行云流水,人挡杀人,见佛杀佛。这赛季以高于 102 的比分战胜的球队甚至包括马刺(103-84)、爵士(120-115) 等西部强队。
  2. 如果得分小于等于 102 分时,决定因素就转到防守篮板(DREB)上了。一般防守篮板小于31个时,输得概率比较高;不过即使防守篮板不济,当抢断大于10次时还是有希望得回胜利的。
  3. 得分小于 102,篮板大于 31 个,决定因素就变成了三分球试投(3PA)。只要投进三分球试投能够低于 19 个时,球队仍然可以以高概率赢得比赛(92%)。大家该冒出疑问了,为啥三分球试投数小了才能赢球,不是多了更好么。诚然从数字上看确实如此,但火箭三分多了,一般都是后卫在“浪投”,既不能对内线造成杀伤也不能迅速解决战斗。这也就是火箭从赛季之初一直在囤积后场的原因。只可惜,至今天,火箭的后场还是那么烂。

看看今天对爵士的比赛:火箭得分 94(没进攻),防守篮板 23(没防守) ,抢断为 8(没激情),你把这些数据按上图走一遍,是不是告诉你会返回 0。不输才怪!

以下请忽视,流程图最好工具是 plantuml,支持对象图、组件图、状态图、用例图等

一般来说,流程图大家比较习惯用 MS 的visio 来实现,或退而求其次使用 MS word 或 Excel 也可以实现相同功能。其实流程图是一种很简单的图形模式,R 的diagram 包也提供了 Flow Chart 功能,只不过使用命令行来实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
library(diagram)
pos <- coordinates(pos = c(3, 3, 3, 3, 3, 3))
cc <- c("Start", LETTERS[2:16], "End")
openplotmat(main = "Flow Chart")
for (i in seq(1, 15, by = 3))
straightarrow(from = pos[i, ] , to = pos[i + 3, ])
for (i in c(2, 5, 8))
straightarrow(from = pos[i, ] , to = pos[i + 6, ])
segmentarrow(
from = pos[16, ],
to = pos[2, ],
path = "RVL",
dd = 0.15
)
bentarrow(from = pos[8, ], to = pos[6, ], path = 'H')
bentarrow(from = pos[6, ], to = pos[2, ], path = 'V')
straightarrow(from = pos[14, ], to = pos[17, ])
for (i in c(2, 7, 13, 14, 16))
textrect(pos[i, ],
radx = 0.08,
rady = 0.04,
lab = cc[i])
for (i in c(1, 17))
textround(pos[i, ],
radx = 0.08,
rady = 0.04,
lab = cc[i])
textdiamond(
mid = pos[8, ],
radx = 0.15,
rady = 0.08,
lab = c("Has", "Detect?")
)
textmulti(
mid = pos[4, ],
radx = 0.1,
rady = 0.05,
nr = 6
)
textmulti(
mid = pos[6, ],
radx = 0.1,
rady = 0.05,
nr = 5
)
textellipse(mid = pos[10, ], radx = 0.1, rady = 0.05)
text(pos[8, 1] + 0.2, pos[8, 2] + 0.03, "YES", cex = 0.8)
text(pos[11, 1] + 0.04, pos[11, 2], "NO", cex = 0.8)

以上代码呈现的结果是这样的:

九连环这个玩具,最早在高中的时候摸过,记得解它的时候因为很多重复步骤,所以恨不得要把它拆掉,还好最后解开了, 不然我又得加条"亵渎古人智力"的罪名,呵呵。闲话少扯,下面是 n 连环实际步骤数的求法:

1
2
3
4
5
6
7
8
9
ggg <- function(n) {
a <- numeric(n)
a[1] <- 1
a[2] <- 1
for (i in 3:n) {
a[i] <- a[i - 1] + 2 * a[i - 2] + 1
}
return(a)
}

比如九连环的实际步骤:

1
2
gg(9)
[1] 1 1 4 7 16 31 64 127 256

第一届 R 会议就这么匆匆结束了,这么标志性事件,不写点东西对不起观众。昨天晚上本来想写些东西,不过这两天实在太累,只好放在了今天。见识了好多个传说中的大牛,做一些记录多年后再见。

  • Yihui Xie:这个师弟,脑子里奇思妙想太多,估计以后在国内,肯定可以比肩比尔盖茨。下次我决定用 R 跑个桌签,肯定也特方便。
  • Guohui Ding:传说中的那位,开始我一直以为是40、50岁的老头子呢,结果和自己同年生。下了飞机就直奔会场,敬业。大赞那个网络关系图,学基因的就是不一样。and 刚从德国带回来的那本让人狂吐的杂志。
  • 吴喜之老师:跟老师混这么多年,头一次看到吴老会在一个地儿坐一天(旁白:俺啥时候能学吴老的一招半式,也就能独步武林了)
  • Peng Zhan:……不重要,R 重要……险些笑翻我 ^_^
  • Tan Xi:这两个小伙,有前途啊
  • Gang Chen:原来生物和遗传应用这么个广泛,孤陋寡闻了
  • Lipeng Hou:一直以为是个mm,哈
  • John Maindonald:老头子真牛,够我喝一壶的了
  • Jian Li:统计学院一哥的美名不是白传得……
  • Xiang Zhang:那是美学!怎么学 R 的人都这么“不务正业”呢,而且是公司支持的不务正业!?
  • Chen Zuo:quantile regression 应用还是很广的,哎,当初俺们也有这机会就好了
  • Peng Ding:能上 PKU 的概率统计确实不一般,而且——贝耶斯统计被压抑太久了。嘿嘿嘿
  • Cloud wei:平时还挺腼腆的,上台后激情四射的
  • Yanping Chen:数学能爱好到这份上,而且居然同样用 R
  • Lichongl:PKU 卧虎藏龙,不说了
  • Huaru Wang:见识了在水文上也有成熟模型(还欠我数据呢啊!)
  • WengYm:精通 R 的 PPMM
  • Ming Liu:果然有在企业中规模使用 R 的
  • Bin Ma:手抄 6000+ 数据的牛人,太狠了!
  • Bing Zheng:以后的师妹,肯定没问题了,哈
0%