不小心选择了数据分析职业路线后,转眼间在我公司的风控战略管理部门工作了近一年。从这份工作开始,接触和学习使用SAS,到目前为止,基本能够应对部门负责人的各种临时需求,在整个过程中经历了很多试错,经历了极其新手的漫长Gug阶段,逐步培养了数据分析师对数据的基本敬畏和数据不一致时解决问题的方法。(这样的结果应该是一样的。差距小,不能放手。),给自己一个阶段的总结,给路过的朋友一点借鉴,不是经验,只是经验,见仁见智,供大家参考。
SAS乘船金融入侵
我们部门的老大是法国留学的统计学专业背景,有金融行业大银行工作经验,非常熟悉SAS的使用,部门留下的历史剧本几乎都使用SAS,所以要继承我们部门的历史经验,掌握SAS,至少了解SAS是必须面对的问题,否则解决不了。(大卫亚设,Northern Exposure(美国电视剧),Northern Exposure Boss是一个非常细心(更细心、更上一层楼)、非常重视效率和产出的人,但尽管如此,他还是耐心地给了我学习各工具、看书和学习的时间。做了少量的安排工作。(莎士比亚)模板。
首先先读了老大被前同事甩的书《the little sas book 中文版》,不长,100多页,还包含宏内容,我一周就看完了,又重复了一遍,整理了笔记本。但是说实话,我对这本书没感觉。第一,这本书是翻译的版本。语言生硬,不友好的地方很多,给人留下了总体不满意的印象。第二,这本书的内容太短。内容很完整,但说明很简略,不是“怎么办”,而是“为什么要提出这个话题”,“这样写下各部分的详细说明”。第三,布局粗糙,代码有些模糊,全部大写。刚开始接触代码的我心里距离感太强,不太接受。(大卫亚设,Northern Exposure(美国电视),Market)虽然说了这么多缺点,但看到后也勉强接受了SAS的界面,能够阅读最常用的基本短语。(威廉莎士比亚、斯图尔特、SARTER)但是到目前为止还没有做具体的工作,对SAS语法没有迫切的感觉,只浮在纸上,停留在眼神交流阶段。这个阶段大约有一个多月了。现在想想,这一步已经进入了深渊。这是一本太简略、不合口味、学习效率低下的书,不能花太多时间。不能强迫自己。不仅效率很低,而且容易产生自己的心理厌烦或恐惧。
然后我开始陆续在阅读和工作中使用SAS,这时才发现非常狼狈,语法也不熟悉,连细节都记不住,大脑空白,F3运行后有各种bug。我尴尬地咨询同事,他们向我推荐了词典搜索《SAS编程技术教程(朱世武)》。这本书温柔友好。至少是中国人写的。语言平坦,容易接受,内容充实有序,可以解决我以前读书的很多疑惑。努力读了几天后,得到了至宝,就后悔这段时间读了这么久的书,在感慨之前浪费了时间。(威廉莎士比亚,《哈姆雷特》)但是这本书有561页。工作日下班后累了,要继续读1h书。周末也总是想着这个学习任务,没有放松。晚上学习效率低下,战线变长,结果是向后看,忘记了前面。更可怕的是,我看书的习惯看了很多遍,不看完两遍真的完不成一段。(威廉莎士比亚,《哈姆雷特》)这一阶段花了几个月的时间。但不得不说,这一阶段又入了另一个坑。用力过猛,没有细节,不能狼吞虎咽。(莎士比亚)。
差不多半年过去了,SAS的进展还是不大,工作中效率很低,失误率很大,让老板嚎啕大哭。一度我有跳槽的想法。当然,离职的原因不仅仅是接二连三的老大发火,我们公司是初创公司,工作量大,人手不足,都推出了上高中的状态,再加上我们老板要求很严格,脾气很差,几乎每天都被骂,工作不对,没有失误,也骂我太慢。老板忙于自己的工作。我遇到困难或问题时,谁都不能问,只能钉在原地着急、慌张和无助。(莎士比亚)。
还有新进来的同事,SAS建模老手,年龄不大,但是专业出身经历丰富,是个女孩子,所以很抱歉主动请教。大卫亚设,Northern Exposure(美国电视新闻),她向我推荐了《SAS v8基础教程》本纸质书。这次我在淘宝上买了纸质书,决心对学生的学习采取认真的态度。一个月就看完了。这本书也是有经验的中国人写的,语言浅显、易懂、详细,内容也比较完整,也不长。(也是500多页,但每页都比较稀少,是一天能看几十页的那种,很多内容是同一操作的多种实现方式,可以选择性地看,阅读没有压力。)非常实用,容易理解。此时,我使用的SAS的学习资料不再添加。这本书我觉得很有用,纸质书的学习方式也很推荐。供各位知友参考和选择性参考。
SAS与面向对象的语言不同,SAS是一种面向过程的语言,在数据阶段和过程阶段内,必须注意语句的编写优先级。这里不谈具体细节的语法,而是谈谈我使用后的宏观感受。我认为在使用SAS的过程中主要存在以下问题。
了解PDV原理和程序执行顺序。Set有很多语法,包括多个数据集、双set语句、@和@ @之间的差异以及使用set和infile input。但是在自己心里,复杂的问题需要简化。搞清楚SAS系统的工作原理,就能知道如何对待不同的原始文件,如何一件一件地导入,进行每次观测后输出。知道了就不需要记忆了。通过理解原理,可以减轻记忆负担。
通过读取日志文件修改错误的能力。我第一次使用SAS,不重视日志窗口。运行完成后,将不管理日志内容。如果报告错误,
运行的结果文件为空文本,才会去翻log,而且也只看log中标红的ERROR内容。现在看来这是极其不对的。现在,执行完一段程序后,哪怕能执行到最后一步,我也打开日志,先ctrol+F,搜索全文是否含error;然后,从头看一遍日志,不能出现:字段未初始化,merge中by值有多个重复值等等内容,也就是说,warning也不要有,应该只是干干净净的,比如不同数据集多少观测。沙里淘金找BUG
一旦真的出现运行结果非自己预期、数据不一致的情况,就要找BUG了。找问题,包括显性问题和隐性问题,显性的就是log日志里面找语法报错或警告的内容;隐性的问题,就是指能正常运行但是结果不对的情况。这时,指导思想就是:语句一块一块的跑,跑完后导出明细后找原因,跑出来的结果,可以导出excel后用match函数匹配两列,也可以不导出,直接对两个数据集,用merge语句+in选项,匹配一下,in数据集A and not in 数据集B,就可以了。
再说一句,刚开始处理bug,遇到就紧张,长时间找不到原因就心烦,核对良久后,甚至觉得我没有毛病,是SAS系统不稳定导致,或者认为这个问题我排除不了,产生畏难和退缩的倾向。现在我认为,SAS系统是很稳定的,它的年龄比我的年龄都大,一定不是系统出错,而是有原因的,而原因一定是可以找到和解决的。现在多了些信心和决心。
③ 学会使用统计性函数proc means,proc freq等等。刚开始,我只是纯纯使用data步:导入文件、处理文件,proc export导出PC文件,全是明细数据。导致的结果是:导出的底表文件很大,动则几千万条甚至1G以上,会产生预料之外的问题:SAS导出时删除失败,excel作透视的时候会很卡甚至频频崩溃;而且,若导出前没加工过,都依赖excel作进一步操作,有点像半自动洗衣机。后来,经提点,我导出前都用宏+proc means语句进行汇总,将变量分类为class 和 var,定义为宏变量(主要是方便后期修改调整,更灵活),然后用宏进行汇总输出。明显可以减少导出条数。
④ 性能优化+减少出错可能性。使用一段时间、熟悉了基本的语句规则后,就要留意学习一些细节,来提高工作效率了,包括减少等待运行时间和便于后期维护。比如,做筛选的时候,能用where语句就不用if语句;常用的定义逻辑库及一些指令设置,可以写入文件“au”,让SAS启动时先自动运行;多用keep或drop语句,去掉不需要的字段,减少数据集的无用字段;字段定义都用format语句,尽可能少用默认操作,增加对SAS的控制;尝试多使用宏;尝试培养字母大写的书写习惯,等等。
要减少出差,有一点就是:能在导出前用code解决的,都写代码解决,而不是导出后手动操作筛选或者点击。所以,对想要的量都先处理好,要做的筛选都先定义新变量flag,尽可能较少手动。
啰嗦了半天,也都是些大而泛的内容;可能因为SAS是我第一个深入接触的语言,现在看着SAS系统界面的code,越看越觉得清秀美观,非常喜欢这个语言,即使它和新生代大热语言例如Python相比,有些弱点。使用了数据分析工具后,不得不说,SAS比单纯SQL处理数据方便很多:语句更直接,逻辑更简明,操作更方便,如果是MySQL,就需要反复的嵌套子查询、像苏州园林那么层次复杂;而且SAS处理数据速度更快。不得不说,工具的优化还是很有必要的。
从来没有准点下班
洋洋洒洒这么些字,算是互联网金融行业工作1年的一点总结。也算是积累了这么久的汽车行业融资租赁知识,之前头大的vintage分析、截面DPD30+,迁徙率,授信额度、不良、坏账、观察期、表现期,在贷本金/在贷余额,应还本金、已还本金、逾期本金等等的计算方法,也终于理清楚了。工作时间久了,对金融行业也有了一定的感情,今后如果不从事这一方面了,会不会浪费了这一年的焦虑、挨骂和加班呢,哈哈。
1.《【sas怎么引入excel】互联网金融、SAS工具使用经验》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《【sas怎么引入excel】互联网金融、SAS工具使用经验》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/2507706.html