SAS Tips &Tricks:按组求累加值

 未分类  SAS Tips &Tricks:按组求累加值已关闭评论
11月 301999
 

按组求累加值:原数据由下面给出:

data a;
    input id sum;
cards;
1 4
1 3
2 5
2 7
2 9
3 6
3 6
;

上面id分为1、2、3,要求按每组求累加值,即生成一个新变量cum,它看起来是这样的:

id    sum    cum
1     4       4
1     3       7
2     5       5
2     7      12
2     9      21
3     6       6
3     6      12

方案一:

proc sort data=a;
    by id;
run;

data b;
    set a;
    by id;

retain cum;
if first.id then cum=sum ;
        else cum=cum+sum;
run;

方案二(方案一的小改进):

proc sort data=a;
    by id;
run;

data b;
    set a;
    by id;
    if first.id then cum=sum ;
        else cum+sum;
run;

如何学习统计学,或我的学习之路——初学者写给初学者

 未分类  如何学习统计学,或我的学习之路——初学者写给初学者已关闭评论
11月 301999
 
  

可能学习和工作还有兴趣都跟统计沾些边,一些朋友和网友也问我些如何学习统计之类的问题,他们当然一样是非统计出身。结合自己的学习经历,这里一并回答了,也权当一个成长备忘录,所以这里取一个柏拉图“《智者篇》,或论正名,逻辑”式的标题。(这篇文字的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这玩意。这东西不好说,却也能表达一二。跟大部分学科一样,经济学看着也能分成两个类型(接下来我还要强调它们不是对立的),一是专业期刊里充满恐龙级数学符号那种,另外就是白话散文那种。分析现实问题(不必是经济问题)时,也就相应两种思路,一是建立数学模型,二就是拿白话解释,偶尔再加一个简单的图表。这两种方式,白话看似容易些,但也容易流于胡说八道,就要为学院人士所不齿。数学的技术活多些,容易出成果,好拿诺贝尔经济学奖。由白话而成巨星的,我们称之为思想家,更是难能可贵,如诺奖得主科斯,主创产权和交易成本理论的。北大出来去芝加哥大学念经济学的王勇讲了一个好故事:
 
在中心的毕业生中,我大概是属于那种数理倾向比较严重的一类,对经济学中一个个美轮美奂的经典模型痴迷地有些“顽固不化”,要是在自己的论文里突然发现能用上一条在实变函数课上学到的定理会兴奋地跳起来,套用
Ariel Rubinstein教授在2004年国际计量经济学会主席演讲的最后一句话“这真是太美了!不是么?”
 
然而在芝大上了两年课以后,我才慢慢地更能体会到林老师在《论经济学方法》中提到的很多观点。在上一年级第一学期的课时,我就被深深地震动了。ECON301的价格理论I课的每周作业是Becker教授和
Murphy教授各出一道长题,题目中用文字交待一些经济学问题或者社会现象的背景知识,从恐怖主义到健康问题,从国际贸易到贩毒和住房问题,从投资到经济增长,什么都有,然后接二连三地问一堆问题。每个周二傍晚出题,当周周五上午交作业。我有生以来第一次为完成作业而熬夜就是第二次作业的那个周四。怎样分析这些现象,怎样回答这些问题,完全由自己选择分析方法,而我总想把问题抽象成一个严格的数学模型来求解,取怎么样的假设显然也得完全由自己定夺。可是经常是好不容易使建好的模型能回答第一个小问题a,突然发现很难再用这个模型来回答第二个小问题b,不是求不出解析解就是出现太多不合理的多重解。只好回头修改我的模型,然后不得不再另加一些技术性假设,当然需要再配上为何作如此取舍的经济学理由。如此反反复复,最终发现窗外已经发白,而自己却只能眼巴巴地望着求解问题f时出现的那12条非线性方程和12个未知变量,心灰意冷地继续写道“假定这个系统的解是存在的并且是唯一的,那么……”。我将近25页的作业发下来,10分我只得了3.7分,助教的批语是我采用的是科布—道格拉斯函数型的效用函数,而忽略了分析non-homothetic
偏好这一重要情况。于是我“耿耿于怀”地去仔细对照那将近20页的标准答案。读完后我真的完全惊呆了:真没想到这么一个个二维平面分析图会那么厉害,所给的分析全是替代效应与收入效应的变相综合,所用的也全是诸如正常商品(normal
goods)这样的通常假设,没有太“漂亮”的数学,但是在逻辑上分析的明显要比我的模型完整的多、严密的多、深入的多、也更加具有一般性。 
——王勇:《两年后再读<与林老师对话>有感
 
白话加逻辑,不用数学而对问题有洞见,说的大概就是“直觉”吧。当然,数学公式密布的场合,直觉也有用武之地,比如,满满一黑板你证明出了一个复杂的定理,然后你拿白话说明为什么会有这个结果,The
intuition behind this equation is blablabla,那直觉就相当强了。
 
经济学直觉完毕。关于统计学直觉,我是类似这样理解的。对非统计科班出身的我们来说,这种训练可能更为重要,而且更为迫切。我们对统计学抱着非常实用的态度,无暇也无力关注大多模型定理背后的推导过程,但为了解释和理解,我们需要对它们有一个通盘的印象,其中的细节不是通过数学推导而来,但是能够用白话明确地表达出来。比如中心极限定理,一个简单的形式是独立同分布的中心极限定理,大概说,如果随机变量X1,…Xn,…相互独立,服从同一分布,且具有相同的数学期望和方差,则随机变量之和ΣXi的标准化变量服从标准正态分布,这可以用数学精确地证明出来。我没有掌握这个推导,但我敢说我能理解这个定理,并且能够明确无误地传达出来,用白话,而不是刚才提到的数学语言。我读维恩堡《数理统计初级教程》,里面是这种处理的(下面的文字来自我做的读书笔记,而不必是该书的摘录。很多朋友可能没法看到该书,我在博客里有记):
   
演示性例子
 
想像一个很大的箱子,装满了小纸条,可供我们无穷无尽地抽取,每张纸条上写有一个数字。为简单起见,假定只有0、1、2三个数字,且每个数字出现在每张纸条上的可能性都是1/3。记住,这个箱子里的纸条如此之多,以致我们可以抽取任一数目的任一种纸条,而不必担心会改变箱中剩下的各种纸条之间的比例。
 
箱子有一个小口,通过它,每次可以释放出一张纸条。箱子还有一个洗牌装置,这种装置会把纸条洗得这样得均匀,以至当我们决定抽取一张时,每张纸条有同样的被释放出来的机会。因此,我们的观察室独立的,而且我们的样本是随机的。
 
现在我们就来抽取等容量的随机样本,假设每个样本都包含200张纸条。
 
我们一张一张地抽取200张纸条。比如头一张纸条上的数字是2,第二张纸条的数字是0,第三张纸条是2,如此等等。假设构成这个第一份样本的200张纸条上的数字总和是210,这个和成为所产生的新的分布的第一项。
 
第二个样本的200张纸条上的数字之和比如是194.对大量的样本,每个样本都包含200张纸条,重复这个过程。中心极限定理告诉我们,这种样本和数越来越多时,样本和的分布近似于正态分布。
 
    如何实际运用中心极限定理
 
关于中心极限定理,对被抽取样本的那个总体没有要求任何限制。不管被抽取样本的那个总体,其分布的形状如何,样本和的分布都是正态的。
 
中心极限定理说明,为什么正态分布出现在如此多的不同的问题之中。我们用于纸条取样的那种方法,看来是实际中特别喜欢使用的一种方法。在每次情况中出现的、构成一个正态分布的那些数,都可以看作独立观察资料的等容量样本的和。
 
例子1。考察射击时围绕靶子构成正态分布的子弹。每一颗子弹击中的位置实际上是许多随机影响的和,比如姿势、风向、光线、心理等等。这些因素和诸如此类因素的影响,同时在一位特定射手的身上起作用;且对于不同的射手,它们是不同的。一个射手的得分,表明他的子弹最终射到何处去了,这个得分是那些随机影响的样本之和。具体地,比如每一个射手的分布式70项主要影响之和,因而每一发子弹的得分,都可以看作是70项的一个样本和(与70张纸条上的那些数字的和相对应)。这样一来,不同射手的得分,就可以看作是不同的等容量样本的和。根据定理1,子弹得分的分布式正态的。
 
例子2。考察每个人的智力水平,也可以当作出自不同根源的小影响的和来看待,包括营养、机会、性格、遗传等等。这么看来,大量的人的智力水平的分布式正态的。
 
这就是我喜欢的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,只能让你对处理数据更有信心,而且也能让你在工作中达到既定的目标,但这不表明你的统计功底就达到了你期望的水平。很久很久以前,统计先驱们是硬生生地摇手柄或者干脆拿稿纸手算,创立了现在我们使用的大部分基本统计模型。
 
到现在,总结一下思路,卑之无甚高论,我对初学者的建议是:
1. 找一个类似安德森或林德的统计学入门教材,熟悉概念和基本模型;
2. 在学习初期,可以使用Excel等电子表格,培养自己手算的敏感;
3. 做项目时,找一款适合自己的软件包;
4. 继续学习统计,不要迷信工具。
 
一些小建议,还可以附在最后:
5. 学习期间,有任何问题,首先不要想着去论坛发问,教科书或Google能解决你大部分问题。或者干脆找到一个懂行的人,直接去问。人要爱惜自己的羽毛,在论坛问一些傻瓜问题,会损害你在社区的名誉。自己解决问题,会让自己变得更强壮;

6. 不要过于积极地去网上找学习资料。资料太多,人生太短,对大部分人来说,需要的几本书,国内都有引进,找一本搁案头翻阅就是。几本难得的电子书,赶紧打印了出来,从此不再网上瞎整。以前我把硬盘塞满时,突然警惕。疯狂收集电子书自有乐趣,你会沉浸在这种乐趣之中,而忽略真正有用的东西和真正要做的事情;
7. 多认识几位念统计学的朋友,让自己时刻清醒,自己还是这个领域的门外汉。我们都有自己的专攻,清楚非科班出身的人在涉及自己领域时的种种形状。
                                             

                                 
2008-11-20

我所有的(所谓)技术文章,从2007年3月15到2008年1月14

 胡说  我所有的(所谓)技术文章,从2007年3月15到2008年1月14已关闭评论
11月 301999
 

这样子的整理,本该是07年末的事,以后也这样随手摆出来了:

************************“技止于此”文章目录,从2007年3月15到2008年1月14************************

46-  SAS和蒙特卡罗模拟(2):随机数基础
45-  SAS Tips &Tricks:按组求累加值
44-  SAS和蒙特卡罗模拟(1):开篇
43-  SAS程序员必备的十大技巧
42-  Excel债券计算函数
41-  金融随机过程:备忘录
40-  Paul Wilmott’s Books on Quantitative Finance
39-  BNF标记法:简介
38-  SQL——在Oracle SQL*Plus里工作(1):基础篇
37-  常见数据挖掘错误:识别和纠正(译稿)
36-  SAS Base 金融函数
35-  答客问:SAS对列求和
34-  SAS备忘录:format和informat
33-  Ryszard Michalski
32-  How to pronounce SAS ?
31-  概率、信息和熵
30-  三个有名的决策树算法和它们的叶子
29-  提升指数、提升表和提升图
28-  SAS Macro的面对对象解释-一个附会
27-  SAS学习笔记(4):Editing and Debugging SAS Programs
26-  数据采集策略:数据挖掘与统计学的一个区别
25-  SAS学习笔记(3):Referencing Files and Setting Options
24-  计算股票的贝塔值β
23-  KDNuggets调查2007:数据挖掘方法论
22-  SAS学习笔记(2):Using the Programming Workspace
21-  神经网络:学习笔记(1):神经元
20-  SAS学习笔记(1):Basic Concepts
19-  SAS学习笔记:开篇
18-  KDnuggets调查:数据挖掘方法和工具
17-  备忘录之主成分分析
16- 下载yahoo finance和雅虎财经数据
15-  S语言:棕皮书、蓝皮书、白皮书和绿皮书
14-  一款像模像样的数据挖掘软件—AlphaMiner
13-  最大熵模型:读书笔记
12-  SAS Logistic回归:一个完整例子
11-  三个有名的决策树算法:CHAID、CART和C4.5
10-  数据挖掘——我们能从股市数据得出什么,以及一些算法
9-  Windows下运用Linux工具(一):G++/Cyguns
8-  一组常用的SAS快捷键和命令(一):入门阶段
7-  Excel-备忘录
6-  在UltraEdit中配置Java编译器
5-  推荐书:朱世武老师的《SAS编程技术与金融数据处理》
4-  决策树的构造——一个手工例子
3-  几个有名的数据挖掘与机器学习的练习数据集(一)
2-  数据挖掘入门书:Roiger&Geatz《数据挖掘教程》清华版2003
1- 写在前面——我要经营的技术博客

***************************************************************************************************

次贷冲击下的统计学反思

 未分类  次贷冲击下的统计学反思已关闭评论
11月 301999
 
 
/*这篇小东西先发布在益辉主持的cos.name(统计之都)上,转回来做个备份。以后有跟统计相关的文章,都先发布到cos.name,然后转回这个博客。上次我那篇《如何学习统计学,或我的学习之路——初学者写给初学者》,也发布在cos。*/
 
有点标题党的意思了,确切地说,本文只是一个小小的通讯稿。前两天(11月25-26)我参加一个“中国银行风险管理国际峰会2008”,其中SunGard公司的David
M.Rowe博士的主题演讲Lessons from the Subprime Mortgage Crisis(次级按揭危机经验教训),第一条就是Limits
of Statistical
Analysis(统计分析的局限性)。Rowe先生是SunGard公司风险管理部门的高级副总裁,宾大计量经济学与金融学博士,沃顿商学院MBA,以及卡内基梅隆大学的经济学学士。
 
这次次贷危机,对外部评级机构如Moodys来说是一个丑闻,它们利用各种复杂的统计模型为各种证券评级。Rowe举一个例子,AAA级的债券,定义的年违约风险是0.01%,也就是说,其违约概率是每一万年发生一次,而最优良的次级房贷抵押债券,在外部评级机构的评分中,享有AAA甚至更高的评级。Rowe就问:在这样的评级中,实证研究何在?
 
Rowe的总结是:
 
Statistical analysis can extract information from daa,
it cannot create information not already contained in the data. Like water,
information cannot rise higher than its soucre.
 
统计分析只能从数据中提取信息,而不能创造数据本身。正如联通器中的水,不能超越水源的高度。
 
最后,Rowe提到Nassim Nicholas Taleb的黑天鹅理论(Black Swan
Theory),最近似乎很流行。一般认为天鹅是白的,但一旦发现天鹅也有黑的(的确是发现了),就会对人们的视野产生极大的冲击。黑天鹅理论就是讨论这些极少发生的、难以预测的,一旦发生,就会造成很大影响的事件。不知道统计系在读这本书没有。

实用SAS编程技巧25招(译注版)

 未分类  实用SAS编程技巧25招(译注版)已关闭评论
11月 301999
 
 
 这一期的SAS Publishing
News(2008-11)有一则SAS资深玩家Kirk Lafler提供的25 Best Practice Coding Techniques for SAS
Users。文章和作者简介见这里。看着好玩,一一做些译注,对其中关于SAS软件质量管理和视图方面的建议,注释就详细些: 
 
 1.
After running a SAS program, immediately review the SAS log for notes, warnings,
and error messages. Avoid turning off SAS System options that turn off SAS log
notes, messages, and
warnings.

 
 运行完SAS代码,立即查看日志文件。
 
 2.
Turn on the SOURCE2 SAS System option to display included source code on the
log. Best practice coding techniques should mandate inclusion and display of any
and all information that is available during a SAS
session.
 
 打开SOURCE2的SAS系统选项。这里有个讲究,一般提交SAS代码有两种方式,一是在SAS的编辑器里编写或者打开,然后执行,源代码在不在日志文件出现由系统选项SOURCE决定,SOURCE的默认值是1,二就是用如%include
"test.sas"语句提交,这时源代码test.sas是否在日志里出现由系统选项SOURCE2决定,它的默认值是0。打开SOURCE2的SAS系统选项的方法是,打开Tools-Options-System,在Options-log
and procedure output control-SAS
log下,找到SOURCE2,把它的Value改成1。
 
 3. Considering procedures
like PROC SQL and PROC REPORT for code simplification. Because multiple
processes can be frequently accomplished in a single procedure step, I/O may be
reduced.

 
 为了简化代码,考虑使用proc sql或者proc
report。作者是一个SAS畅销书PROC SQL: Beyond the Basics Using SAS的作者。SAS是一个庞大的工具箱,有多种编程方式。选择应该是基于实用主义原则的,哪个好用用哪个。
 
 4.
When a DATA step or PROC can do the same job, consider using procedures whenever
possible. Procedures are tried-and-proven throughout the world’s SAS
installations, testing requirements is considerably less.

 

 
如果data步和proc步能完成同一个任务,尽量用proc步。SAS内置的proc步是经过研发人员多次测试通过的,一般会比我们写的强健一些。
 

 5. Create user-defined format libraries to store formatted
values in one place. User-defined format libraries have the added advantage of
making programs easier to maintain since formatted data values are not hard
coded.
 
在同一个地方建库,存放所有自定义的格式化数据。
 
 6.
Include RUN statements at the end of each DATA or PROC step (to separate step
boundaries) to print benchmark statistics on the SAS log immediately following
each
step.

 
 在每一个data步和proc步之后加上run语句。
 
7.
Document programs and routines with comments. In addition to the value
associated with explaining program logic, comments should provide important
information about complex code and logic conditions in a program. This helps to
document important program processes as well as minimizes the learning curve
associated with program maintenance and enhancement for other
users.
 
 养成代码加注释的习惯,尤其是在代码算法方面。
 
 8.
Assign descriptive and meaningful variable names. Besides improving the
readability of program code, it serves an important element in the form of
documentation.

 
 养成良好的变量命名习惯。选用一目了然的名字,而不是如var1、var2。
 
 9.
Construct program header information to serve as program documentation for all
programs. The following example illustrates the type of information that can be
added so others have a useful documented
history.
 
软件项目管理,好像只跟C++、Java有关,其实,在一个大的SAS开发或应用系统里,项目管理的实施同样重要。这里说的是代码归档的事(documentation)。前面第7条说的代码加注属于documentation的尝试之一,program
header(文件注释头)是每份源代码的开头,写的对其他程序员或客户看的指导性的注释,我们常见的花盒子注释就是。一个叫A Programming
Development Environment for SAS Programs的文档,可以参考这里
 
10.
Simplify complex code and operations into smaller, more manageable parts. By
splitting complex code into two or more programming statements, a program
becomes easier to read as well as more maintainable.
 
把复杂的代码分解成易于管理的小块(blocks)。
 
11. Specify SAS data set names when invoking
procedures to help improve documentation efforts as well as preventing an
incorrect data set from being processed.
 
在调用proc步时,指定要引用的数据,用proc print data=a;而不是proc
print;。
 
12. Utilize macros for redundant code and enable
autocall processing by specifying the MAUTOSOURCE system
option.
 
用宏(macro)来管理你的代码。打开MAUTOSOURCE系统选项以便自动调用宏(这是默认的)。
 
13. Create macro libraries to store common macro
routines in one place.
 
在同一个地方建库,存放所有类似的宏文件。
 
14. Create permanent libraries containing
information from daily, weekly, monthly, quarterly, and annual runs. The type of
libraries consists of scripts, SAS programs, SAS logs, output lists, and
documentation of instructions for others to follow.
 
为每天、每周、每月、每季度和每年都要运行的例行代码,分别建立永久性的库,存放相关的信息。
 
15. Create views based on user input to simplify
and streamline redundant, complex and/or burdensome tasks. Consider creating
views in a central view library to support maintenance and documentation
requirements.
 
视图是数据库里的概念。简单地说,比如,你用十行SQL代码完成了一次查询,这个查询结果是你老板(客户)感兴趣的。以后你老板想要看这个查询结果,你可以让他每次都写或运行这个十行代码,或者,你把这次查询的结果做成一个虚拟的表——说是虚拟的,因为数据库里并不真正存在这张表,存在的只是这十行SQL脚本;说是表,是因为运行这个脚本时表就会动态生成。这个虚拟的表,就叫做视图。现在你把中堆东西做成了一个视图,你老板想要这个结果,只需要写一句“视图,阿里巴巴”。视图有很多好处,这里是可以简化老板对数据的理解,同时简化他们的操作。
 
16. Code for unknown data values. This will
prevent unassigned or null data values from falling through logic
conditions.
 
对未知的数据值,用编码表示,如99999999之类。如果是空值,可能会引起一些预料不到的逻辑错误。
 
17. Store informats, formats, and labels with the
SAS data sets that use them. Informats, formats, and labels should be stored
with important SAS data sets to minimize processing time. An important reason
for using this technique is that many popular procedures use stored formats and
labels as they produce output, eliminating the need to assign them in each
individual step. This provides added incentives and value for programmers and
users, especially since reporting requirements are usually time
critical.
 
把数据的描述性部分(descriptor portion)如informats, formats, and
labels跟数据存储在一起。
 
18. Construct conditions that would render data
unusable and abort (or end) the program. This prevents unwanted or harmful data
from being processed or written to a data set.
 
写一段条件语句,使得数据不能够被随意改写。(这段我还要好好琢磨一下)
 
19. Test program code using "complete" test data
particularly if the data set is small or represents a random sample of a large
data set.
 
测试代码时,使用所有的测试数据,特别是这些测试数据本身很小,或者它们就是总体数据的一个很好的样本。
 
20. Set OBS=0 to test syntax and compile time
errors without the risk of executing any observations through a DATA or PROC
step.
 
测试代码的语法错误时,使用obs=0这个选项。
 
21. Use the PROC SQL VALIDATE clause to test
syntax and compile time errors in PROC SQL code.
 
PROC SQL时,用VALIDATE这个选项来指示语法错误。
 
22. Specify the NOREPLACE system option to prevent
permanent SAS data sets from accidentally being overwritten while writing or
testing a program.
 
为了防止永久逻辑库里的数据文件被改写或者覆盖,使用NOREPLACE这个系统选项。具体做法是把系统选项REPLACE的值改为0。做练习时这个选项要慎用。
 
23. Take advantage of procedures that summarize
large amounts of data by saving and using the results in order to avoid reading
a large data set again.
 
为了避免重复读入大型的数据,利用一些proc步,它们可以通过保存一些处理过的结果来概况数据。
 
24. Add options that are frequently used into the
SAS configuration file. This eliminates the time and keystrokes necessary to
enter them during a SAS session.
 
在SAS的配置文件里添加一些你常用的选项。SAS的配置文件就是sas root下的那个SASV9.CFG,以SAS
9为例。这里你可以找到更多相关的信息。
 
25. Add statements that are frequently used into
the SAS autoexec file. This eliminates the time and keystrokes necessary to
enter them during a SAS session.
 
在SAS的自动运行文件AUTOEXEC.SAS里加入一些个性化的语句。不熟就不要尝试了。

白话统计(3):决策与风险

 统计备忘录  白话统计(3):决策与风险已关闭评论
11月 301999
 

/*本文发布在cos.name(统计之都)。*/

*************本书给你数理统计的直观****************************

资料来自美国G.H.维恩堡等著的《数理统计初级教程》(常学将等译,太原:山西人民出版社,1986)

《白话统计(1):平均数、中位数、众数》

《白话统计(2):中心极限定理》

*************************************************************************

/*读书笔记,白话统计系列,力图用普通话讲述统计学的基本概念。这里的题目是“决策与风险”,讲的就是两类错误(type I and type II errors)。以下改编至维恩堡《数理统计初级教程》(常学将等译,太原:山西人民出版社,1986),英文名叫Statistics: An Intuitive Approach By George H. Weinberg and John Abraham Schumaker。这书几近绝迹,当回文抄公,以期重见天日。*/

1、假设与决策:场景

原假设:硬币是均匀的。   备择假设:硬币是有偏的。

/*当我们难以拒绝原假设时,只能得到结论:原假设也许是真的,现在不能拒绝它。而当我们能够拒绝它时,结论是:它肯定不真。以下的口语表述不如这里明确(和拗口)的,以这里的表述为准。*/

试验:在平坦的地方,独立地投掷硬币100次,每次投掷的结果都做记录。最后,正反面出现的次数分别是:

正面:55  反面:45

提问:根据你所看到的结果,判断一下,你接受还是拒绝”硬币是均匀的“这一假设?

-R博士回答:“拒绝这个假设,因为所得到的正面数超过了反面数的允许界限,这表明硬币是有偏的。”
-A博士回答:“接受硬币是均匀的这一假设。我们不能非难硬币掷出55个正面,45个反面,一个均匀的硬币也能掷出这个比率。”
-R博士:“那什么样的结果才能使你拒绝那假设呢?我的意思是,正面数和反面数应该有多大的差异,才能使你认为硬币是有偏的?“
-A博士:“至少90个正面对10个反面,或者90个反面对10个正面。如果我们的决策是拒绝一个掷出55对45这个比率,或者更高一些比率的硬币,那么这个决策将使我们把许多由于偶然掷出上述比率的均匀硬币都宣判为有偏的。你的看法使得非难一个均匀的硬币太容易了。”
-R博士:“太过分了!至少要掷出90对10的比率你才说硬币是有偏的。你过度的轻信,将几乎不可能拒绝关于硬币是均匀的假设。诚然,你很少拒绝一个均匀的硬币,但对一个有偏的硬币,你也很难拒绝。”

上面的对话应该让大伙体会到了一些假设检验的意思。可以总结一下,对照下面的表格,思路会清晰一些:

判定 \         假设
拒绝 第I类错误α  没有错误1-β
接受 没有错误 第II类错误β

A博士(Accept,接受)的法则是,除非试验得到的比率超过90比10,否则就接受硬币是均匀的这一假设。A博士厌恶犯否定均匀硬币的错误(”弃真“,第I类错误),他的法则使得犯这种错误的概率最小。由于均匀的硬币几乎不会出现超过90比10的比率,他很少冒把一个均匀的硬币说成有偏的风险。然而,他付出的代价是,大大降低了试验的检测能力(power,见下),他的法则使得拒绝假设是极端困难的。大量有偏的硬币也不会出现如90对10这样大的差异,因此它们也会被当成均匀的硬币而没有被检测出来。可以说,A博士对接受假设有偏爱,当假设为真时,他很少犯拒绝它的错误;但当假设不真时,他会常犯接受它的错误。

R博士(Reject,拒绝)的法则是,除非比率低于55对45,否则就不能接受硬币是均匀的这一假设,也即,仅当硬币的正反面数差异在一个狭窄的界限之内,她才接受假设。她把试验看成类似9.11时美国进行的安全检查(”宁可错杀三千,不可错过一个“),重要的是检测出有偏的硬币。R博士的法则在接受错误的假设方面所冒的风险极小(”取伪“,第II类错误),代价是增加了把一个均匀硬币判成有偏的风险。可以说,R博士对拒绝假设有偏爱,当假设碰巧不真时,她很少犯接受它的错误;但当假设碰巧为真时,她常犯拒绝它的错误。

2-1、决策与风险(用均匀的硬币做试验,第I类错误)

一次试验,不足以判断两位博士谁的法则是正确的。现在,用一个均匀的硬币(我们知道,两位博士不知道,这里的原假设是硬币是均匀的),把上面提到的投硬币试验,重复100次(每个试验由100次投掷构成),那么,记录下的正面数X,将构成一个二项分布,X~B(n,p),其中,n=100,p=0.5。根据某个中心极限定理,正态分布是二项分布的极限分布,上面的二项分布可以由均值为np=50,方差为np(1-p)=25的正态分布来近似。又因为二项分布只取整数值,在近似它的正态曲线下会出现很多空隙,为了校正这种情况,可以把整数的两头各扩大0.5个单位,以这个区间表示正态曲线下的那个数。

对R博士来说,仅当掷出的正面数多于45,少于55时,她才接受假设。在正态曲线下,这两个端点可以写成45.5和54.5。

——|-/////-|———
      45.5    54.5

标准化,(45.5-50)/5=-0.9,(54.5-50)/5=0.9,根据标准正态表,可知45.5-54.5这个接受区域包括了总面积的63%。也即,投掷均匀硬币所产生的样本中,有63%的样本,其正面数落在接受区域,相应地,其正面数落在R博士提出的否定域的概率为37%。也就是说,当硬币是均匀的时,R博士犯第I类错误的概率为37%。对A博士来说,他的接受区域在10-90之间,他几乎不会犯第I类错误。

2-2、决策与风险(用有偏的硬币做试验,第II类错误,功效)

现在取一个有偏的硬币(我们知道,两位博士不知道,这里的原假设还是硬币是均匀的),即投出正面的概率不等于二分之一(注意,说硬币是有偏的,并不必对p的值作出指定,因为硬币有偏可以有无限多种方式)。为了评价两位博士的法则在拒绝假设方面有多大的成功,我们需要对硬币指定一个偏度,比如是掷出正面的概率是0.6,做上面同样的100次试验(每次试验有100次投掷),近似成一个正态分布,均值np=60,方差是np(1-p)=24。

对A博士来说,他的判定法则是,只要得到的正面数在10到90之间就接受假设。显然,即使一个有偏的硬币所得到的正面数,也位于A博士的接受区域里。即,当硬币出现正面的概率为0.6时,A博士还是经常

在UltraEdit中配置Java编译器

 Computers and Internet  在UltraEdit中配置Java编译器已关闭评论
11月 301999
 

昨天上网找如何在UltraEdit中配置Java编程环境,死活不成功,网上的说法多主张在命令栏输入完整路径名,如        

  1. Dr. Schoenly’s courses:Use of UltraEdit (commercial software) for Java programming
  2. Dr. Olek’s Computer Lab Handouts:How to set up UltraEdit to work with Java compilerr
  3. 一个新浪技术部博客:使用EditPlus配置Java编译环境
  4. 技术员资料:用EditPlus。还是用UltraEdit比较好

我把这些贴出来,可能会对你有用,但我不知道他们是如何成功的。我用的是UltraEdit-32 Version13.00,在网上有试用版下载。我的UltraEdit能够自动识别Java的安装路径,具体设置如下:

  1. 打开UltraEdit——高级(Advance)——工具栏配置(Tool Configuration);
  2. 在命令栏(Command Line)依样输入javac "%f"
  3. 在工作目录(Working Directory)依样输入%p
  4. 在菜单项目名称(Menu Item Name)输入javac,表示这是Java编译器,这个名字随意,主要是前面两项要依样画瓢,不要输入完整的路径名; 接着在选项(Option)选中"Doc Program"和"Save all files first",在结果(Output)一栏选中"Output to List Box"和"Capture Output",好像是默认的,这样完了以后,就点插入(Insert);
  5. 然后是配置Java执行器了,类似地,跟Javac一样的栏目里,在命令栏和工作目录栏分别填入java "%n"和%p,然后在菜单项目名称里面给它命名为java;接下来在选项和输出的栏目里,钩上与javac设置一样的项目,点插入结束。

 

这样配置好以后,点“高级”菜单就会出现“javac”和“java”这两个子项,以后在UltraEdit编写Java程序,就可直接点“javac”来编译,点“java”执行,再也不用打开cmd了。这两个子项还有相应的快捷键。

白话统计(4):P-value:一个注脚

 统计备忘录  白话统计(4):P-value:一个注脚已关闭评论
11月 301999
 

/*本文发布在cos.name(统计之都)。*/

*************本书给你数理统计的直观****************************

资料来自美国G.H.维恩堡等著的《数理统计初级教程》(常学将等译,太原:山西人民出版社,1986)

《白话统计(1):平均数、中位数、众数》

《白话统计(2):中心极限定理》

《白话统计(3):决策与风险》

*************************************************************************

郑冰刚提到P值,说P值的定义(着重号是笔者加的,英文是从WikiPedia摘来的):

P值就是当原假设为真时,所得到的样本观察结果更极端的结果出现的概率。

The P-value is the probability of obtaining a result at least as extreme as the one that was actually observed, given that the null hypothesis is true.

以下延续白话系列,解释一下,“什么是P值,什么是极端”,算是郑文的一个长长的注脚。

回到上次的硬币试验,那是一次二项试验,每次试验投100次,记下出现正面的次数,比如,如果

每次出现的正面数都是50,你就有把握认为这是一枚均匀的硬币;

正面数等于45或者等于55,你就有一点点的怀疑它是均匀的;

正面数等于30或者等于70,比较怀疑;

正面数等于10或者等于90,非常怀疑。

如上,正面数和反面数的差异越大,你就越有把握认为硬币不是均匀的(拒绝原假设)。重复一下P值的定义,“P值就是当原假设为真时,所得到的样本观察结果更极端的结果出现的概率”,把这个定义套入上述硬币试验的场景中,比如你观察到“正面数是10或者90,正反面次数差异是80”:

如果原假设为真(硬币是均匀的),P值就是你投100次,所得的正反面数差异大于80的概率。

如果这个P值很大,表明,每次投100次均匀的硬币,经常有正反面差异大于80的情形出现。如果这个P值很小,表明,每次投100次均匀的硬币,你很难看到正反面的差异会超过80。

以前说过,10-90是A博士的接受区域。如果一枚硬币投出的正反面次数,差异大于80,——这真是一个“极端”的情形,连保守的A博士看了都摇摇头,不能接受原假设,只好认为原假设不对,硬币是有偏的。这里的逻辑是:

在假定原假设为真的情况下,出现所看到的偏差(正反面差异为80),是这么地不可能(P值很小),以至于我们不再继续相信原假设。

参考资料:

1. 维恩堡《数理统计初级教程》(常学将等译,太原:山西人民出版社,1986,Statistics: An Intuitive Approach By George H. Weinberg and John Abraham Schumaker)

2. Statistics I: Course Notes, 2008 SAS Institute Inc. Cary, NC, USA

数据挖掘——我们能从股市数据得出什么,以及一些算法

 机器学习与数据挖掘  数据挖掘——我们能从股市数据得出什么,以及一些算法已关闭评论
11月 301999
 

//一个备忘录了,写给我们金融信息系统项目小组的同学。没有列出参考文献,因为都是大白话。有些删节。

数据挖掘/机器学习大概处理以下几个问题:

  1. 分类 ,这是有很多非常成熟的算法,非常直观,按照一个分类属性,把样本分为不同的类别。
  2. 聚类 ,聚类与分类的差别在于,分类分析有一个分类属性作为输出,比如“好”、“坏”之类,但聚类没有。聚类分析探索各个样本间的内在关系,并按一定标准把它们“聚”在一块。按照有没有相应的输出分类属性,一个术语是,分类是有指导的学习,而聚类是无指导的学习;
  3. 关联分析,就是著名的购物篮分析,例子就是沃尔玛的啤酒和尿布,探索数据中各个属性之间的关系;
  4. 预测,也很直观了,有很多回归技术。

分别论述了。分类的算法有:

  1. 决策树,按照一定的标准(比如说信息论中的“熵”),把各个属性划到不同的树形节点中去。在股市数据中,比如,有好的企业和不好的企业(ST),这个算法提供类似“如果市盈率怎么样,则该企业怎么样怎么样”的结论,当然,实际分析中,结论的层次会很多。决策树的成功算法有C4.5、CHAID(这个就是冯老师说的威力无比的卡方自动搜索技术,昨天梁老师提到的最好的决策树算法就是它)、CART等等。C4.5有现成的代码;
  2. 人工神经网络,仿照人类神经元刺激-反应的学习模式,人工神经网络被一个环境(输入输出的组合)所激励,它的各种参数(那些权值和偏置量)进行调整作为响应。一般认为神经网络经常能发掘出数据中的非线性关系,而且抗干扰性较强。人工神经网络包括三种基本的模型,一是前馈网络,如多层感知机(我们学过相应的反向传播法BP),这里网络的输出直接根据网络的输入计算而来,不涉及到反馈;二是竞争网络,以Hamming网络为代表,它包括一个反馈层,并试图判定哪个标准向量最接近输入向量;三是以Hopfield网络为代表的递归网络,它利用输入向量对网络中的神经元进行初始化,然后不断迭代直至收敛;这里前馈网络的代码很好找到;
  3. 支持向量机(SVM,Support Vector Machine)源自统计学习理论,有着坚实的理论基础,它用训练实例的一个子集(支持向量)作为决策边界,然后建立一个线性判别函数来将各个类别分开。它相对与神经网络的一个优点是能发现目标函数的全局最优点,而采用贪心算法搜索假设空间的神经网络模型一般只能获得局部最有解;
  4. 最大熵法(MEM,Maximun Entropy Method),是基于信息论的一种方法,它用“熵”来表示信息的增益,在自然语言处理领域成就斐然。最大熵方法认为,当我们需要对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设。在这种情况下,概率分布最均匀,预测的风险最小。因为这时概率分布的信息熵最大,所以称之为“最大熵法”。最大熵法在数学形式上很漂亮,但是实现起来比较复杂,但把它运用于金融领域的诱惑也比较大,比如说决定股票涨落的因素可能有几十甚至上百种,而最大熵方法恰恰能找到一个同时满足成千上万种不同条件的模型。这个算法在数学上很漂亮,只是计算实现上比较复杂,但把它运用于金融领域的诱惑也比较大,比如说决定股票涨落的因素可能有几十甚至上百种,而最大熵方法恰恰能找到一个同时满足成千上万种不同条件的模型。

聚类的算法以K-均值为代表,它先是选择K个初始的质心,接着按就近原则将其他观测值向它凝聚,这样指派到每一个质心的点集称为一个簇。然后根据指派到簇的点,更新每个簇的质心,这样重复指派和更新,直到质心不再发生变化(即收敛)。这里“最近”的概念用的是欧几里德距离。在我们的股市数据中,如果我们不再事先指定哪些股票是好是坏(即没有输出变量),通过聚类分析也能把它们分类。

关联分析用来发现隐藏在大型数据集中令人感兴趣的联系,比如尿布和啤酒之间的关联,一种叫Apriori的算法可以实现,它根据变量及其赋值对整个数据集的覆盖程度来建立起两个或几个变量之间的联系。这个算法用在我们的股市数据中,可以帮我们找到几只单股之间的关联,这种关联可能没有道理。

英文博客开张

 未分类  英文博客开张已关闭评论
11月 301999
 
 
开一个英文博客玩玩:
Google Blogger的服务,在我们的泱泱贵国可能偶尔被撞,你可以订阅RSS源:
这个博客的名字叫Incorporate Things of Diverse
Natures
,意思大致是我喜欢的“贪多务得,细大不捐”(韩愈《进学解》)。马克思爷爷说,他喜欢的格言是,“人所具有的我都具有”,何止一个“贪”字了得。我可能要以计算机和金融知识混饭吃,但对不少文科领域还是抱着一股持久的兴趣。现只更新了两篇,一是写早上读到的斯蒂文森(写《金银岛》的那位)的句子:
Happy hearts and happy faces,
Happy play in grassy
places
这句是写一个Good Children,上班的公车上读到,面部表情都轻松许多。另一篇转述SAS员工在defects系统里写的俳句(不错,是俳句,“古池塘,青蛙跳,水声响”那种),显示开发人员幽默的一面。
First prompts are silent.
Subsequent prompts loud
and clear.
Now all prompts are heard.
这句你看了可能觉得索然无味。碰到过弹出窗口不work的人,读了就悠悠心会。
 
决定写英文博客,是有“媚外”的成分在里面,不止是为了练英语。kdnuggets最近有项针对数据挖掘人员为专业沟通的目的上社交网站的调查,使用LinkedIn的最多,其次是AnalyticBridgefacebook,还有几个用Twitter。这些也是我偶尔用的服务。为对外交流的顺畅,整个英文博客就很有必要了。前天在单位,看到一个公司员工玩twitter的list,感触多些。以后这个博客生活味会淡些,用英文写个人生活,这可需要高超的语言功底。先写着,大致跟学术兴趣相关,语言可以生硬些。
 
经常在几个技术社区逛,呆久了,朋友多了,就有集体的概念,四处相逢,就会说,哎呀,这个圈子真小啊。