基于线性模型对奥运金牌数的预测 2011-12-12

为什么往往反而是最简单的线性模型会比复杂精巧的模型有更好效果,其实不外乎因变量除了主要自变量之外会有大量微小的因素所影响,以至于剩下的不能由自变量所解释的误差恰好已足够构成正态分布这个原因。

我当时是从下面的例子(来自我的导师Prof. Yang和师兄Dr. Zhang)体会到线性模型的威力的。我们都知道,在世界杯或者奥运会上作为东道主,都具有一定的主场优势,球队成绩或者代表队的金牌数可以较上届有所提高。那么如果我们要衡量东道主地位究竟能给成绩带来多大提升,仅仅用线性模型(或者稍作改进的线性模型)居然就可以做得很好。为了预测2008年奥运会中国代表队能得到多少块金牌,我们收集到的数据如下:

届别

时间

举办地点

东道主本届金牌数

东道主上届金牌数

NA备注

第1届

1896

希腊·雅典

10

NA

没有上届比赛

第2届

1900

法国·巴黎

26

5

第3届

1904

美国·圣路易斯

70

20

第4届

1908

英国·伦敦

56

1

第5届

1912

瑞典·斯德哥尔摩

24

8

第6届

1916

德国·柏林

NA

NA

因第一次世界大战停办

第7届

1920

比利时·安特卫普

13

2

第8届

1924

法国·巴黎

13

9

第9届

1928

荷兰·阿姆斯特丹

6

4

第10届

1932

美国·洛杉矶

41

22

第11届

1936

德国·柏林

33

4

第12届

1940

先日本·东京,后芬兰·赫尔辛基

NA

NA

因第二次世界大战停办

第13届

1944

英国·伦敦

NA

NA

因第二次世界大战停办

第14届

1948

英国·伦敦

3

4

第15届

1952

芬兰·赫尔辛基

6

8

第16届

1956

澳大利亚·墨尔本

13

6

第17届

1960

意大利·罗马

13

8

第18届

1964

日本·东京

16

4

第19届

1968

墨西哥·墨西哥城

3

0

第20届

1972

德国·慕尼黑

13

5

第21届

1976

加拿大·蒙特利尔

0

0

第22届

1980

苏联·莫斯科

80

49

第23届

1984

美国·洛杉矶

NA

NA

美国拒绝参加上届

第24届

1988

韩国·汉城(现称首尔)

12

6

第25届

1992

西班牙·巴塞罗那

13

1

第26届

1996

美国·亚特兰大

44

37

第27届

2000

澳大利亚·悉尼

16

9

第28届

2004

希腊·雅典

6

1

第29届

2008

中国·北京

需要预测金牌数

32

事先删除某些离群值,然后基于均值建模,得到的回归方程是:

东道主本届金牌数=5.8+1.35×上届金牌数

这个方程预测金牌数为49枚。如果反感手动删除数据,可以使用中位数回归,即quantreg包中rq()函数,然后基于中位数建模,得到的回归方程是:

东道主本届金牌数=3.65+1.56×上届金牌数

这个方程预测金牌数为53-54枚。而实际上在2008年奥运结束的前一晚,中国队的金牌总数才刚好达到49枚。因为男子跳台丢了金牌,所以悬念留到最后1天,最终中国队的金牌数字是51。当然这个只是给了一个很粗略的估计,但似乎已经比当时所有来自专家的预测都靠谱多了。可见只要变量选得好,线性模型的预测效力是很靠谱的。而从下图可以看出,其实得出这个预测结论并非如想像中那么显然。



Powered by Jekyll on GitHub | ©2016 Meroa | Last modified: 2018-03-22