如何学习统计学,或我的学习之路——初学者写给初学者可能学习和工作还有兴趣都跟统计沾些边,一些朋友和网友也问我些如何学习统计之类的问题,他们当然一样是非统计出身。结合自己的学习经历,这里一并回答了,也权当一个成长备忘录,所以这里取一个柏拉图“《智者篇》,或论正名,逻辑”式的标题。(这篇文字的pdf版见http://sites.google.com/site/sharedbyhu/,欢迎大伙拍砖) 先说说自己在统计方面的学习经历,相信很多非统计出身的朋友会有共鸣。我本科在北京工商大学念经济学,先后修过三门相关的课:
1. 统计学。其实应该叫做经济统计基础(很老套的学科了),因为除了描述性统计跟统计推断外,这课还包括大量关于经济指数编制等内容。当时我是凭着一只科学计算器完成所有的作业包括考试的,想想是很土。
2. 计量经济学。这是经济系学生的主干课,我们天天跟着老师演算公式。这个比较恐怖,至少截止到期末考试的当天,我还记得二元线性回归的所有推导以及最终恐龙般的公式。这门课用的是授课老师编的教材,不值得推荐。当时为了记住一元跟二元回归的公式,我找到一本好像没多少人提到的书,一个叫白砂堤津耶的日本人写的《通过例题学习计量经济学》(人大出版社,2003)。这本书就是要让人手算各种计量模型,符号系统非常简洁,让要背公式考试的我省心不少。需要提一句的是,这本小书居然还提供了邹氏检验(Chow Test)的手算示例。
我的第一门计量经济学课程就是这么落伍。现在想想,千般不好也有一个好处,就是让我手推跟手算过基本的线性回归模型,这些东西对我而言不再是黑箱。这门课的最后,老师介绍了一下计量经济学小软件TSP的用法,当时没跟着学下来。据师弟师妹反映,该老师的一位研究生教会老师使用Eviews,以后我们的计量老师就在课堂推广Eviews了,福音啊。
3. SPSS与统计分析。这是一门选修课。之前为了培养对统计的兴趣,自学过些用Excel分析数据,选修这门SPSS是想让自己的工具箱更为强大。这课学得比较积极,跟老师的关系也挺好。
当时学习SPSS还有一个动力。2003年秋季学期我去北京大学经济研究中心(CCER)旁听计量经济学。比较幸运,教员是美国刘易斯-科拉克州立大学的计量经济学教授黄少敏。他刚好在北大访问,经济系七七级出来的。黄老师在课堂上推荐SPSS,并根据这次授课编了一本小书,叫《计量经济学入门》(北大出版社,2004)。那阵子还买了张文彤的两本SPSS书,大红版的《SPSS 11.0统计分析教程》(基础篇和高级篇,北京希望电子出版社,2002)。张当时是上海一个大学做医学统计的教授,在SPSS学习社区里很有名,现在好久没关注了。
本科时就大致如此了。还跟机械系的同学修过一门Matlab与系统仿真,仿真我不懂,就是图跟着学习一下Matlab,不过玩得不是很熟。SPSS很好上手,让我对数据有了不少信心。要捏着计算器面对一大堆数据,人都要疯的那种。
研究生期间我在北大念软件工程,金融信息工程方向,一样要跟数据打交道的专业。先是一门信用评分模型的课,让我自学起SAS。包括接下来一些数据挖掘应用的课程,我开始用SAS完成所有类似的数据分析工作。一般我们提到学SAS用SAS,说的大多是Base SAS或者再加上SAS/STAT,都是编程方式。现我在一家做数据挖掘与商务智能软件的公司实习,接触并学习了SAS产品的其他可视化模块,如Enterprise Guider、Enterprise Miner、JMP等等。这段时间,统计学的学习,包括多元分析时间序列等,都是通过去数学系旁听和自学。期间也尝试玩过R、S-Plus、Minitab之类,都是图个体验,没有认真学的意思。
回顾我的统计学习之旅,一个明显的特征就是统计软件一路同行。我的感受是,对于一个非统计出身的统计爱好者,不借助统计软件,几乎无法领略统计之妙——你没法通过推导公式研究算法而得到乐趣。跟各种软件打了这么多交道,另一个感触就是,过分依赖工具而忽略统计直觉可能是更为危险的事。这两条平行的观点,就构成了我对以下问题的建议:一个非统计出身的人,如何学习统计?
无论你从什么背景转到应用统计,通常的建议是找一本有趣的入门书,这个我觉得大多数国内引进的国外基础教材都不错,取一本而且只取一本学了就是。人大出版社引进的几本厚厚的统计学教材,给商学院学生准备的,突出的是应用,都是非常好的入门读物。商学院出来的学生,有一个好处,即使他们真的不懂数理统计,也不妨碍他们娴熟地运用统计模型向客户兜售观点,赢得单子。因该说,这是应用统计学教育的成功,尽管在统计学的(有意)误用方面,他们常受指摘。这里我熟一点的是安德森的《商务与经济统计》和林德的《商务与经济统计技术》,也有影印版,都多次重印的经典教材。这方面我走了不少弯路。本科时拿一本学校老师编的书上课,为了考试,还看得特别仔细,每道习题都做。想在想想,当时要是用这等精神攻读安德森或者林德的书,境界就不一样啦。现在也翻他们的书,做参考用,却不是以前苦读的劲头。这处女“读”,要献给谁,真是很重要。这跟读书一样,我没有师出名门,本科在北工商念,不敢说自己比北大本科的差,只想说,如果本科在北大念,我会表现更好。同样,如果你用院编教材,要达到安德森或林德的水平,你要付出更多的努力。幸运的是,在统计学习方面,你可以一开始就把自己的努力建立在一个较高的水平上:读安德森或林德。
去年年底,我翻出一本书来补自己的统计直觉,这部不推荐,是因为这书不好找了,只是个人喜欢,书也薄些,美国G.H.维恩堡等著的《数理统计初级教程》(常学将等译,太原:山西人民出版社,1986)。这本书的扉页,有位前读者题辞(在图书馆的书乱涂乱画啊):“本书给你统计学的直觉。”这书我续借超期再借在续借,已近一年,感受是,这书在培养直觉直观方面,真是下足了功夫。美中不足的是,这个译本没有提到这本书的原名就叫做Statistics: An Intuitive Approach。
前面我好几处提到“直觉”。统计直觉我没资格发言,以前念经济学,隐隐约约能感觉到economic intuition这玩意。这东西不好说,却也能表达一二。跟大部分学科一样,经济学看着也能分成两个类型(接下来我还要强调它们不是对立的),一是专业期刊里充满恐龙级数学符号那种,另外就是白话散文那种。分析现实问题(不必是经济问题)时,也就相应两种思路,一是建立数学模型,二就是拿白话解释,偶尔再加一个简单的图表。这两种方式,白话看似容易些,但也容易流于胡说八道,就要为学院人士所不齿。数学的技术活多些,容易出成果,好拿诺贝尔经济学奖。由白话而成巨星的,我们称之为思想家,更是难能可贵,如诺奖得主科斯,主创产权和交易成本理论的。北大出来去芝加哥大学念经济学的王勇讲了一个好故事:
白话加逻辑,不用数学而对问题有洞见,说的大概就是“直觉”吧。当然,数学公式密布的场合,直觉也有用武之地,比如,满满一黑板你证明出了一个复杂的定理,然后你拿白话说明为什么会有这个结果,The intuition behind this equation is blablabla,那直觉就相当强了。
经济学直觉完毕。关于统计学直觉,我是类似这样理解的。对非统计科班出身的我们来说,这种训练可能更为重要,而且更为迫切。我们对统计学抱着非常实用的态度,无暇也无力关注大多模型定理背后的推导过程,但为了解释和理解,我们需要对它们有一个通盘的印象,其中的细节不是通过数学推导而来,但是能够用白话明确地表达出来。比如中心极限定理,一个简单的形式是独立同分布的中心极限定理,大概说,如果随机变量X1,…Xn,…相互独立,服从同一分布,且具有相同的数学期望和方差,则随机变量之和ΣXi的标准化变量服从标准正态分布,这可以用数学精确地证明出来。我没有掌握这个推导,但我敢说我能理解这个定理,并且能够明确无误地传达出来,用白话,而不是刚才提到的数学语言。我读维恩堡《数理统计初级教程》,里面是这种处理的(下面的文字来自我做的读书笔记,而不必是该书的摘录。很多朋友可能没法看到该书,我在博客里有记):
这就是我喜欢的Intuitive Approach。这本书行走可读,坐卧可读,借助些简单的符号,适度的图表,统计学的基本模型都可以这样清晰地用白话表达出来。我下功夫学习并鼓吹用白话描述统计学,是去年跟Teradata的一位朋友聊天,他提到向客户陈述数据分析结果时,一定要用大白话明确地说出来。当时我尝试了一下,发现自己对统计学的基本概念,都还停留在数学描述的阶段。惭愧惭愧,那时的还自以为自己颇有些统计的基础呢,从此下决心苦练基本功,目标是对所有基本的统计概念、模型,都要达到能够清楚地向一个高年级高中生描述的程度。从应用的角度来说,这种训练是必须的。一个统计学家,不能指望他的听众都一样统计出身,同样,对大多数需要应用统计工具的非统计学家来说,也不能假设他的客户一样是统计爱好者,专业词汇只在一个很窄的圈子里通用。
上面提到的是对统计理论的直观理解。在运用统计技术时的直觉,需要理论基础和经验,这个我就说不了太多了。猜想,一个对统计技术有良好直觉的人,应该对各种数据的分布很敏感,对各种统计方法的运用和误用都了如指掌,总之言之言而总之,他应该像一个经验丰富的手工艺人,老木匠老雕匠一样。
再说统计工具的选用,先是初学时的工具,然后是工作的工具。初学者的工具,就是比如你第一次学习安德森或林德的基础统计学,需要选用的统计软件。首先不推荐用SAS、SPSS之类大型的商业软件包,他们会把初学者的精力吸引到工具的使用上面而不是统计理论的理解方面。就像初学一门编程语言,比如C++,所有的经典教材都鼓励用文本编辑器(如记事本、Notepad++等)写代码,而不是一上来就是用一些集成开发环境(IDE)如微软的Visual C++之类。文本编辑器足够简单,能让初学者集中精力关注代码本身而不是IDE的环境设置等扰乱心神的东西。
对初学者来说,电子表格如Excel是一个非常好的选择,足够简单,容易上手,而且还几乎够用。我推荐Excel的另一个理由是,在电子表格里,初学者可以更亲密地接触数据。电子表格里的数据容易编辑,容易犯错,容易修正,容易转换。我甚至鼓励初学者只用加减乘除四则运算,在Excel里手算些基本的如回归模型。手算的好处就是,你会觉得这个模型是你可以“掌”握的,每个结果都是你可以控制的,而不像SAS等软件包运行后就冒出来一大堆像是不请自来的结果。
为了增强对数据的敏感,我鼓励初学者花时间熟悉他有代表性的练习数据。学习统计或者统计软件时,我们面对大量不同的数据,经常是跑完一个数据,看看结果,然后转到另一份数据。这不利于培养对数据的敏感度,前面我提到,对数据的敏感是对统计技术运用有良好直觉的表现之一。讲个极端的例子,在Oracle数据库里,有一个用于测试和练习的公共账户scott,里面有一些数据库表的实例,其中主要两个表,雇员表EMP和部门表DEPT。大概全世界的Oracle程序员都用这两个表练习写SQL语句。他们对这几个表的熟悉程度到了多么夸张的地步呢?Oracle程序员聚会时,一个人提到EMP表里的某个人物,比如Smith,另一个人就可以说出他的职位来(这里Smith的Job是Clerk)。这真正是跟数据同呼吸共命运。
扯远了。还是用程序编辑器的类比,文本编辑器如记事本在初学时够用,但真正做项目时就会显得捉襟见肘了,Windows下的程序员多数还是会选择一些集成开发环境如VC++,这就是统计世界的商业软件包,成熟的是SAS、SPSS和S-Plus,选一款用就是,每款都几乎够用。我现在用SAS,不是说它一定就是最好的,只是说机缘巧合,选择了它,喜欢它,并且不准备更换。选择一个统计包,其实是个很偶然的事,你的老师用什么,你的朋友用什么,你的同事用什么,你大概就会用什么。石头都能刻出花来,无论玩哪一个,都能达到很高的境界。武林高手都有自己得心应手的兵刃,对学者来说,讨论SAS与SPSS孰优孰劣真是没有一点意义,都工具而已。即使不用SAS不用SAS,高手用SQL语句也是能够硬生生鼓捣出一棵决策树出来。
再提一下R,最近在各个统计社区都很流行,这是一款基于命令行的开源统计包。一个讨论就是,用基于命令的软件如R、SAS还是有图形界面的如SPSS。仁者见仁,智者见智,这当然又是一个伪问题,就看个人喜好了。其他的我不是很熟,就拿SAS说事。我们一般认为SAS是要写代码的,那是大多数用户接触Base SAS和SAS/STAT。SAS系统也有好用的桌面工具,如Enterprise Guider、Enterprise Miner、JMP等,图形界面都很友好,自己也经常用。工作中,其实我们都会抱着一个很实用的拿来主义态度,哪个适合完成任务,就选用哪个。但初学者静不下来,就会紧着考虑自己到底要选择哪些装备。
一般地,如果你熟悉SAS,一家只购买了SPSS的公司就不会怀疑你是不是会使用SPSS,其他类似。这里我还是强调它们的工具特性。工具会让我们更有自信,一个资质平平而且无意成为武林高手的庄稼汉,只要接受一点军事训练,拿一把刀就可以壮胆,在战场上还可能立功。现在他手头有一把屠龙刀,你就能指望他号令天下吗?一样的道理,你掌握了SAS,只能让你对处理数据更有信心,而且也能让你在工作中达到既定的目标,但这不表明你的统计功底就达到了你期望的水平。很久很久以前,统计先驱们是硬生生地摇手柄或者干脆拿稿纸手算,创立了现在我们使用的大部分基本统计模型。
到现在,总结一下思路,卑之无甚高论,我对初学者的建议是:
|
|