SAS书杂谈(1):两本统计书

1. Categorical Data Analysis Using the SAS System (2nd edition, SAS Inc., 2000)

作者三位(SDK),在这个领域都是行家,SAS公司的一位负责统计工具研发的总监Maura E. Stokes , 爱荷华大学生物统计系的教授Charles S. Davis(后来他投身工业界)以及北卡大学教堂山分校生物统计系的教授 Gary G. Koch 。用SAS做Categorical Data Analysis,这书是引用最多的一本。国内一本书,刘勤和金丕焕编的《分类数据的统计分析及SAS编程》(复旦大学出版社,2002),能看到本书的影子(美中不足的是,这本书丝毫没有提到SDK)。

我喜欢这本书,还因为它是我读过的SAS BBU(books by users)系列中排版较好的一本。BBU一般由SAS Press或Wiley两家出版社出版,一个印象是,Wiley出的SAS书排版会比SAS Press的质量高。这本书由这两家联合出版。

以前学Categorical Data Analysis,上手就是Logistic回归,做信用评分/数据挖掘需要这个(这本书的后半部分讲这些模型)。现在的工作,需要多的是本书的前半部分,对列联表做的各种检验,这是统计学里相对传统的部分,也是我这样非统计科班出身学统计学时忽略最多的部分。

还有,这本书的数序公式用得恰到好处,简洁又富有启发性,能让一个(只)有基本数学素养的SAS 程序员体会到模型的含义,又不至于淹没在数学符号的汪洋大海之中。

2.Common Statistical Methods for Clinical Research with SAS Examples(2nd edition, SAS Inc., 2002)

作者是SAS最老的一批咨询顾问Glenn A. Walker。现在这书出了第三版,加上了一位合作者,Duke Clinical Research Institute(世界上最大的学院CRO)的一位SAS程序员,Jack Shostak,他也是SAS Programming in the Pharmaceutical Industry的作者。

我没有比较与新版的区别,只说说手头的第二版。跟SDK一样,这本书是用来恶补现在所需要的统计学基础的,给回归只留了两个章节:

Chapter 1 – Introduction & Basics 
Chapter 2 – Topics in Hypothesis Testing 
Chapter 3 – The Data Set TRIAL 
Chapter 4 – The One-Sample t-Test 
Chapter 5 – The Two-Sample t-Test 
Chapter 6 – One-Way ANOVA 
Chapter 7 – Two-Way ANOVA 
Chapter 8 – Repeated Measures Analysis
Chapter 9 – The Crossover Design
Chapter 10 – Linear Regression
Chapter 11 – Analysis of Covariance
Chapter 12 – The Wilcoxon Signed-Rank Test
Chapter 13 – The Wilcoxon Rank-Sum Test 
Chapter 14 – The Kruskal-Wallis Test
Chapter 15 – The Binomial Test
Chapter 16 – The Chi-Square Test
Chapter 17 – Fisher’s Exact Test
Chapter 18 – McNemar’s Test
Chapter 19 – The Cochran-Mantel-Haenszel Test
Chapter 20 – Logistic Regression
Chapter 21 – The Log-Rank Test
Chapter 22 – The Cox Proportional Hazards Model

章节设置,跟Jerrold Zar那册有名的Biostatistical Analysis类似,正好方便SAS程序员备查。这些统计学,在药厂的clinical部门常用。至于模型味更浓的data mining系列,discovery和pharmacovigilance(PV,药物警戒)部门用得多些。

这本书在写作方面没什么特色,好处在于实用、全面,做工具书再好不过。

————————————————————-

作为非统计出身的SAS程序员,经常徜徉于data steps,现在翻翻它的统计部分,又能感受到它背后的另一片广阔天地。浏览一下SAS/STAT 9.2的研发团队,——罗列书名、人名总能激起我的斗志,噫。

Excel杂谈

SAS-Excel

晚提到Excelpro的新书,《Excel图表之道——如何制作专业有效的商务图表》(刘万祥,北京:电子工业出版社,2010)。说些Excel,从一个SAS程序员的角度。

相对SAS,或其他的软件包(SPSS、R/S-Plus、Matlab等),Excel都是一个轻量级的分析工具。本来,Excel无意在统计分析方面跟那些统计工具包一较长短,各有适用的地方而已。但在商业世界,用Excel做分析的用户太多了,说最流行也不为过,一些统计学者,就提醒广大用户,用Excel做统计分析时一定要谨慎些,它有时候不够严谨有时候不够靠谱。详细的,可以参考谢益辉的三篇博文(以及他文中所附的参考材料):

1.Excel中的缺失值和0

2.为什么避免用Excel作统计计算

3.再谈为什么不用Excel做统计分析

用Excel本身的计算引擎有时是不够严谨,这是故事的一个方面(当然,它应付日常工作还是可以胜任的,对Excel,我们这点信心还是有)。故事的另一个方面,是鉴于Excel的广泛流行,各大BI(商务智能)套件,包括SAS系统,都要提供与Office/Excel整合的功能。上面就是 SAS Add-In for Microsoft Office在Excel里面的一个截图。利用这个Excel插件,商业用户可以继续使用他/她熟悉的Excel,访问SAS数据,并利用SAS的计算引擎来分析和作图,最后结果返回到Excel(或者Word、PPT)。一家公司不提供这玩意,它的BI技术就要受到质疑,至少也是没有做到user-friendly。夸张点说,小小的Excel就这样爬上了BI平台的最顶端。

我们注意到,与Excel的整合,重点是把它作为用户接口和展示平台。对一个传统的SAS程序员,与Excel打交道也是他职业生涯的一部分:

1. 有时候,数据会存储在Excel里面。你可能没法理解,为什么要把数据存在Excel里面,这样轻量级的数据,存在文本里面不是更好吗?在真实世界里,大部分人的行为模式一般是这样,他们打开Word来记事,打开Excel来记录数据。数据存在Excel或许也能接受,如果它们规规矩矩,行列有序。有一种情形就是,在一个Excel Book里,数据散布于各个Sheets,在同一个Sheet,数据可能不是按行列来排,而是长得就像一个report。平心而论,这样的数据真的是user-friendly,只是不够machine-friendly。在Windows平台下,SAS Base有三种最常用的方式读取Excel数据:

1-1 proc import or Import Wizard

1-2 SAS Excel Libname Engine

1-3 SAS DDE (Dynamic Data Exchange,这属于Windows的技术)

Excel不是一个跨平台的数据格式。在Unix平台下,如何读取Excel数据呢?SAS也有解决方案,那需要用到一个SAS/ACCESS Interface to PC Files for UNIX和SAS PC File Server for Windows,这也是一个Libname Engine的方式。

2. 读入Excel数据,一个相反的操作就是把SAS数据(或output)转化成Excel。程序员或许不太愿意,但这在商业世界有需求。这里SAS更是提供了五花八门的解决方案:

2-1 proc Export or Export Wizard

2-2 SAS Excel Libname Engine

2-3 SAS DDE (Dynamic Data Exchange)

2-4 proc printto

2-5 SAS ODS

2-6 data steps

2-7  SAS Add-In for Excel

……

除了DDE,你还可以利用其他非SAS技术,比如ODBC、OLE DB等。有一个小花招。利用ODS,可以把数据转化成用户可以用Excel打开的CSV、XML或者HTML格式,而它们本身是比.xls更优越的存储格式。特别是CSV(comma-separated values file),本身是文本文件,在Windows世界里,很多用户都把它当成Excel的一种格式,默认的打开方式也是Excel(而不是文本编辑器)。

罗列了这么多SAS与Excel的交互,回到Excel本身。它是一个功能强大的电子表格,在数据分析与展示方面也有不俗的表现(Excel作图,可以参考上面提到的Excelpro所达到的境界)。它赢得如此多的用户,说明它能满足大部分人大部分的需求。一个SAS用户,或者SPSS、R/S-Plus、Matlab等用户不必在统计分析方面展示对Excel的优越,这样显得就不够大气了——本来Excel就无意在这方面跟它们竞争。况且,即使工具之间有优劣,工具的本身的先后也不代表他们用户的先后,急于争辩工具厉害的人,往往忽略了人本身,自以为手持屠龙刀,就无敌于天下。笑话。

————————————————————————–

再讲个笑话,跟谢益辉有关(最近举例似乎老拿谢同学说事)。谢于数据可视化颇有研究,最近秀出了不少的工作,当然都是用R来展示。楼下便有人惊呼:R好强大啊。不知道谢听了做如何想。

《Excel图表之道》——书和人

Excel

 

Excelpro的《Excel图表之道——如何制作专业有效的商务图表》(刘万祥,北京:电子工业出版社,2010)4月份由武汉博文视点推出。我拿到书时,都已经是5月份第二次印刷的版本。“左手Excel,右手PPT”,现在这本书与一本叫《PPT演示之道》的书在当当卓越大卖,被认为是“2010年最值得阅读的职场充电图书”。好家伙,早知道这本书会火,没想到的是会这么快。扯扯我与这本书及其作者的花絮。

Excelpro一直在经营一个“ExcelPro的图表博客”,专攻Excel与商务作图,把Excel玩出花来的那种。读研时开始订阅他的博客,那时就想结识一番,这样的高手,要趁早认识。查看gmail记录,2008年12月19日,我给Excelpro写mail(当时只知道他的网名),说“ExcelPro,  你好。一有更新就看你的博客,还不知道你的真名真是有些说不过去。我叫***,blablabla”。很快收到回复。

知道了Excelpro的大名,按着习惯,在接下来的沟通中,我就直呼“万祥”了。在公司,包括以前的实习单位,无论同事还是老板,或者老板的老板,都是直接叫名字,慢慢也养成这习惯了——关于称谓,有一个趣事在下面,先打住。

武汉博文的周筠老师,不知什么时候也在看“ExcelPro的图表博客”。看这个博客,我的反应是高手要趁早认识,周老师的反应大概是,这样好的内容,要趁早出书。于是去年年底,武汉博文的编辑梁晶,问我能不能帮着看看一本Excel方面的新书。一看,ExcelPro,这么巧啊。赶紧答应下来,刚好可以趁着看文稿的机会好好学习一下Excel作图。

这本书讲Excel作图,可不是“excel->插入->图表->图表向导”这么简单。这种默认的作图方式,大伙一眼就能看出来,就是传统的、灰头土脸的Excel图表(熟悉吧?):

excel0

而这本书,是教你用Excel做出这样的图来:

excel1

是不是也很熟悉?就是国外顶尖商业杂志如《商业周刊》、《经济学人》等杂志风格的商务图表。如何做到,如何用Excel做到?审稿的时候,我就是这样怀着激动的心情,看Excelpro如何突破Excel的默认颜色、默认布局和默认的作图元素,从而一步步做出类似上图的专业商务图表,真是大呼过瘾。书还附有数据和样例,自己可以随手在机器上跟着实现。我平时鼓捣SAS,Excel用得不多,看了这书(你可以在这里下载高清样章),想什么时候该自己用Excel了,照着这书玩下去,铁定又是一条好汉。

出版社的老师喜欢称呼作者为老师。跟周老师和梁晶编辑邮件来往,她们都会提到“刘万祥老师”,一看,心想:惨了,我跟Excelpro邮件来往,叫名字都叫顺口了。我称呼周筠老师,周筠老师称呼刘万祥老师,而我就直呼“万祥”!这可窜辈了,邮件fwd来fwd去的。问Excelpro,最后我们约定,私下里我们称名字,有周老师在场就叫老师。——后来,刘万祥老师终于跟我开了个玩笑,在书的前言里,他写道:“感谢本书的评审专家孔文达老师、杜茂康老师和胡江堂老师”——“胡江堂老师?”我旁边朋友一看,立马收不住笑,Friday Humor?

SAS vs. R

在“统计之都”(COS)发布了一篇《Think  SAS》,是有感于R在学院(尤其是统计系)的流行,主要是写给对工业界感兴趣的在校生看,动员他们在学R之余,不妨考虑一下SAS。不想却引来长篇的R与SAS之争。关于软件的功能,比如R或SAS,本身没有任何问题:一个语言,只要能使分支语句和循环,再加上极少的要求,就可以完成几乎所有的任务了(语言的完备性,要求其实很简单)。所以讨论R与SAS谁更强大,意义不大,这更多是个人使用偏好的问题。在“统计之都”的博客文章,评论大多很精彩,有的甚至要超过正文,读者朋友不妨移步观望下。这将会是一个系列文章,陆续在COS发布,慢慢写了。

又,关于R与SAS,Peter Flom也在写系列比较文章,见

1. SAS v. R: Ease of learning

0. SAS vs. R: Introduction and request

SAS 认证

上午八点半到的知春里的中科软,九点开考,九点半出来,接着赶回公司。上午就这么考了人生第一个除英语六级外的认证,SAS Certified Base Programmer for SAS 9 Credential,一共是70道题(要求时间是两个小时),错了一道,拿了99/100分回家。还好,我06年开始接触SAS,并以此为生,这个成绩不算丢脸。

为什么想到考这个证?美国那里有句话说,“如果你有个SAS认证,你将不愁找不到工作”云云。对有经验的SAS程序员,雇主一般不在乎你是否考过SAS认证,我推荐在校生没事可以整这么一个,可以增加些筹码,以示自己也算是有些投资,花过功夫。我现在不需要这个认证找工作,倒是想借这个机会,重温一些基本概念。SAS公司有一份Base的认证文档说这可以refresh your mind on some details you might have forgotter,就是这个。当然,还有一个很重要的原因,现在考证,可以找东家报销(150美元,很大的一块蚊子肉啊),——做学生时穷,虽然只要半价,还是舍不得考。

计划下半年再考一次SAS Certified Advanced Programmer for SAS 9 Credential,这个拿高分还算是有些挑战性。为考试而考试是个很无聊的事,那就借着这个机会,温习下SAS Advance的东西,这些在日常工作中都要用到,相互促进了。

其实我最想考的是SAS Certified Predictive Modeler using SAS Enterprise Miner 5 Credential,数据挖掘相关的。读书时鼓捣得比较多,现在工作几乎都要忘掉这些了,考个证可以刺激下自个。啥时有机会去美国遛达,就乘机考了这厮。SAS Base和Advance都可以在国内考,唯有这DM需要在美国的SAS公司考。

附些材料,感兴趣的朋友可以参考。

1. 报名,SAS Base和Advance都可以网上预约,或者直接到考场报名,费用是150美元(或相应的人民币)。

预约或查询考点,上www.prometric.com/sas,有国际信用卡就可以支付。

又,考试时间也是可以预定的,从早上八点开始。我订的是早九点,早八点考场工作人员可能都在调试机器,拖后些比较好。

2.参考资料。对考Base来说,SAS公司的SAS OnlineTutor®: Basic and Intermediate SAS,止矣尽矣。这是我见到过的最好的入门材料。或者,同等有分量的入门材料,SAS Programming I: Essential和SAS Programming II: Data Manipulation Techniques。这些材料,既可以为准备考试用,更可以作为入门温习提高用。从准备考试来讲,它们比SAS Little Book实用。

技术博客重新开张

把以前在space写的文字都导入到这个新博客里了。

这新得白花花扎眼的一年,还想多写些关于SAS程序员本身的文字,关于这个职业,它依托的行业环境等等。SAS程序员在国内还不是一个很兴盛的职业。

还会有关于SAS本身的文字,关于SAS语言,SAS公司,关于它的创始人等等。最近我对SAS的创始人Tony Barr比较感兴趣。

技术本身,这个跟饭碗相关,除了SAS技术,很多笔墨可能会停留在CDISC上面。当然还会有自个兴之所至的其他文字,才年初呢,啥都没定。作为跟“统计之都”的约定,所有跟统计相关的文字,我会首先发布到“统计之都”,然后在自个的博客做个备份:

http://cos.name/author/hujiangtang/

通告

我的朋友,这段日子我换了个东家,技术路线有所倚重,这个(所谓)技术博客要停止更新了。这期间如果还有些数据挖掘跟应用统计方面的文章,会发布在“统计之都”(cos)上面:

http://cos.name/author/hujiangtang/

有网友说SAS爱好者,“或多或少、有意无意”都有光顾过这个博客。我从文科转入软件工程,以SAS起家,涉足数据挖掘与金融计算,更新不定,主题也不够专注,想想是比较惭愧。喜的是通过这些记录,大致能看到自己的用心所在,同时结交得许多志同道合的朋友,很多场合见面,就没有生疏之感。我现在一家药厂做SAS程序员,多跟临床试验打交道,想先沉淀一段日子再说。

说,技术或有转型,生活还是平稳如初。大伙感兴趣的,不妨先去我的生活博客转转:

http://li-and-jiang.com/blog/

RSS订阅地址是:

http://li-and-jiang.com/blog/feed/

想除了技术,我们还一定有许多聊得开的东西。再会。

Free Machine Learning Courses (Stanford) in YouTube

FYI:
 
http://www.youtube.com/view_play_list?p=A89DCFA6ADACE599

分类模型的性能评估——以SAS Logistic回归为例(3): Lift和Gain

书接前文。跟ROC类似,Lift(提升)和Gain(增益)也一样能简单地从以前的Confusion Matrix以及Sensitivity、Specificity等信息中推导而来,也有跟一个baseline model的比较,然后也是很容易画出来,很容易解释。以下先修知识,包括所需的数据集:

  1. 分类模型的性能评估——以SAS Logistic回归为例(1): 混淆矩阵
  2. 分类模型的性能评估——以SAS Logistic回归为例(2): ROC和AUC

*更多,见

http://cos.name/2009/02/measure-classification-model-performance-lift-gain/

del.icio.us Tags: ,,,,,,,,,,,

fyi: 数据挖掘软件大评比

去年年底(2008年11月),德国一家技术咨询公司,mayato,发布了一篇数据挖掘挖掘软件的评估报告,考察了以下12种产品:
 
传统的数据挖掘套件(Classic suites):
SAS Enterprise Miner
5.3
SPSS Clementine 12
 
开源数据挖掘软件(Open Source):
RapidMiner 4.2
KNIME
1.3.5
Weka 3.4.13
 
自动化数据挖掘软件(Self-Acting):
KXEN Analytic Framework
4.04
 
专门化的数据挖掘软件(Specialized):
Viscovery SOMiner
5.0
prudsys Discovery 5.5 / Basket Analyzer 5.2
Bissantz Delta Master
5.3.6
 
BI产品内置的数据挖掘软件(BI Vendors):
SAP NetWear 7.0 Data Mining
Workbench
Oracle 11g Data Mining
Microsoft SQL Server 2005 Analysis
Services
 
最近数据挖掘市场呈现出多元化的态势,除了传统的数据挖掘厂商SAS、SPSS的产品外,又有各种专有用途的数据挖掘软件,加上开源软件和BI产商提供的数据挖掘功能,这个市场看着是红红火火,给各种层次的用户提供了灵活的选择空间。mayato这篇报告的题目就叫做
Data
Mining Software 2009: Successful Analyses at Affordable Prices

(November 2008)。
 
可惜mayato这次的评估不够深入,所用的标准也嫌太过粗糙。在对Enterprise Miner (SAS),
Rapidminer (Rapid-I), Analytic Framework (KXEN), and NetWeaver Data Mining
Workbench (SAP)这四种产品进行了所谓thoroughly的评估后,它的结果是,Analytic Framework
(KXEN)综合排名第一,Enterprise Miner (SAS)紧接其后,然后是SAP NetWeaver Data Mining
Workbench和Rapidminer。
 
这次KXEN排名第一,我们并不感到吃惊(mayato是KXEN的合作伙伴)。不过,KXEN处理数据的速度的确非常值得称道。KXEN号称自动化数据挖掘软件(Self-Acting),客户定制调优的空间比较小,在默认选项下,其他软件在运行速度上就吃亏不少了。最后提一下,这次评估,KXEN在速度上占优,而SAS在性能上最为突出。
 
总的来说,这份评估过于简单,只能作为参考。不过它所展现的(以及遗漏的)数据挖掘软件市场,还是让人比较兴奋的(这次评估,当然有非常多的遗漏,如重要的Teradata
Warehouse Miner、IBM的DB2 Intelligence
Miner、Angoss、Unica等)。