SAS实战内部培训

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

SAS入门培训资料(内部使用)一、简要说明1.关于SASSAS是专业统计分析工具,由于其编程的功能使很多人望而却步,但是对于感兴趣的人来说,只要坚持学习,都会有收获。2.关于数据处理SAS能处理近千万条数据,对于互联网行业来说,这些都是日常性的工作,一般的数据处理工具象EXCEL只能处理6万多条数据,很难满足分析人员的需要,SPSS由于其响应速度的缓慢,虽然处理数据比EXCEL多4个数量级(约50万),但是仍不是分析人员的首选。3.关于数据分析数据分析员首先要懂得这样一个道理:分析的首要因素不是工具(SAS,SPSS,EXCELL),也不是方法(简单统计方法,高级统计方法,人工智能方法),而是理念(IDEA),更具体说是思路(WAY),这不是人人都能理解的道理,但是在明确分析的思路以后,工具和方法随之就会摆在分析人员面前,所以学会工具乃是进行下一步分析的必要条件。4.关于分析思路以下是我总结的一般数据分析的思路,以流程图展示:上图每个表格中的黑体字表示流程步骤,首先是主题需求,即我们要分析的主题是什么,这个一般是决策者关心的问题,我们需要把决策者关系的问题给它具体化。然后是影响因素,影响因素是针对主题需求而设计的定性变量集合。接着就是数据的获取了,数据的获取是根据影响因素去寻找相应的数据,这些数据源可能存放在不同的地方,需要我们用各种方法去获取这些数据源(如从EXCEL,数据库等)。接着是数据导出和数据导入,这两个步骤是针对SAS工具而言的,在EXCEL里面不需要。数据导入到SAS之后,不能立刻进行分析,而是需要对数据进行清洗,这个过程是很复杂的,也有专业的工具来做这件事情(如CLEMENTINE),这里我们不做详细的分析。接下来就是数据的分析了,分析就需要涉及到方法,有简单的统计方法,也有高级的统计方法,所有的方法都是围绕主题来进行的。最后对于出来的结果用报告的形式发布。二、实例操作过程安装好特别版SAS9.0之后,运行EXE文件,我们会看到如下图:上面打箭头的三个地方是分析的时候必须用到的,其它的在此不再一一说明,请自行操作感受一下。下面我们针对userstatus2表进行实战演习,思路如下:1.主题需求:分析上半年主站北京和讯和鸿联1518两个通道的用户流失情况,因为这两个通道上半年一直在用,其它的通道都是非连续使用,在此不研究。2.影响因素:影响用户流失的可能因素有:产品(性福、影视、动漫);地区(不同地区由于经济发展水平和人的素质等因素不同也会影响用户流失),其它的因素肯定还有,比如用户年龄结构,教育程度等,但是由于我们无法获取这些信息,只能放弃。3.数据获取:用SAS程序获取userstatus2对应字段数据。4.数据导入与导出:有两种方法,在此介绍用EXCEL导入,详见下面的专题介绍。数据整理:对形成的六个数据集(六个月)进行整合,形成一张SAS数据表。逻辑库,存放数据文件程序窗口,编程实现地日志窗口,随时记录程序运行结果5.数据分析:本文用频率分析、列链表分析完成,其它的数据挖掘方法(如WEB图、决策树等)是用CLEMENTINE实现的,在此不做介绍了。6.结果呈现:大家就用WORD好了。这是个通用的软件。专题介绍:1.关于数据获取第一种方法:直接用SAS连接数据库,此法我试验过,对10万条记录的数据响应时间大约是28秒,如果大家猴急猴急的,这个可能有点慢了,要是数据更多,那这个方法你肯定不喜欢了,但是我还是要把对应的程序告诉大家:首先要去控制面板做一个ODBC数据源,如我们现在要想获取218.1.74.238服务器上的数据库VOD_STAT里面的表filmstat的数据(当然啦,你首先要和管理员联系你有没有访问的权限),去控制面板,打开管理工具下面的数据源选项,添加一个数据源,这个流程就不做介绍了,大家可以自己去做。最后我们添加好的数据源的名称是VOD_STAT。回到SAS,在程序窗口输入如下程序:程序详解:第一句:libnametry'f:\';这句话告诉SAS,我们要建立一个SAS数据库了,名字叫feiyun,数据库里面的文件放在F盘根目录下面,当然啦,这里的数据库名字和目录你都可以更改的。比如我想放在F盘的下一级目录sas里面,那么就用这个语句:libnamefeiyun'f:\sas\';简单吧?要注意的是,这里的分号”;”千万不能丢!SAS语句都是以分号结尾的。第二句话:procsql;这句话告诉SAS,我要SQL了,大部分情况下我们在SQL里面使用的SQL语句在SAS里面都能用。第三句话:Connecttoodbc(dsn='VOD_STAT'uid='bbvodzfy'pwd='zfybbvod!@#!');这句话告诉SAS,我要连接到ODBC啦,这个ODBC就是刚才在控制面板里面设置的,它的作用就相当于一个桥梁,把SAS和具体的数据库连接起来,括号里面第一个DSN是数据源,第二个是用户名,第三个是密码。注意,以分号结束此SAS语句。第四句话:createtablefeiyun.chaoasSelect*fromconnectiontoodbc(selecttop10*fromfilmstat);Libnamefeiyun'f:\';procsql;Connecttoodbc(dsn='VOD_STAT'uid='bbvodzfy'pwd='zfybbvod!@#!');Createtablefeiyun.chaoasSelect*fromconnectiontoodbc(selecttop10*fromfilmstat);quit;这句话由三部分组成:createtablefeiyun.chaoas是要创建一个表叫chao,该表位于逻辑库feiyun里面;Select*fromconnectiontoodbc是一个固定语句,不可更改。selecttop10*fromfilmstat就是具体的SQL语句了,这个里面可以完成大部分的查询语句功能。第五句话:quit;这句话不能忘了,因为我们在查完并获取数据后,要把门给关上,否则SAS会死机的,SAS很生气,后果很严重!好了,此时你点击SAS上面的小人(RUN),不到5秒钟,就可以看见VOD_STAT里面的filmstat数据到了你的SAS库feiyun里面的chao数据表了。第二种数据获取的方法:第一步:先去具体的数据库查询,查好需要的数据后,拷出到EXCEL表里面,这个过程大家都熟悉,不介绍了。下面介绍如何把EXCEL表的数据导入到SAS里面。打开file—importdata菜单,弹出如图界面:点击NEXT,弹出下图:找到你存放EXCEL的地方,点击OK选择此项选择要导入的工作表选择你要导入的工作表,点击NEXT选择你要存放导入的数据的数据库(library)以及数据表(member),点击完成即可把外部数据导入到SAS系统中。本文采用了第二种方法。2、关于数据整理如果你用SQL语句把1-6月份userstatus2表的数据(取字段source,serviceid,provinceid,status)取出,并保存成六张EXCEL表,而且已经把这六张表按照刚才的数据导入方法导入到SAS系统,其SAS数据集的名字分别叫:jan,feb,mar,apr,may,jun以下语句可以把这六张表联成一张表:程序详解:第一句:datasasuser.jan_jun;创建数据集jan_jun,放在sasuser库下。第二句:setsasuser.jansasuser.febsasuser.marsasuser.aprsasuser.maysasuser.jun;把六个数据集连接起来,合并成jan_jun.运行即可。结果在sasuser库下生成一个jan_jun数据表。datasasuser.jan_jun;setsasuser.jansasuser.febsasuser.marsasuser.aprsasuser.maysasuser.jun;run;procsortdata=sasuser.jan_jun;bystatus;run;该语句对数据集jan_jun进行排序,按照status字段排序。该语句生成SAS数据表jan_juntrcd.上面的语句把数值型数据转换成字符型数据。procsql;createtablesasuser.jan_juntrcdasselect*fromsasuser.jan_junwheresourcein('BJHX','HL1518');run;上面的程序实现把数值型的输出转化成字符型输出。下面进入数据分析过程:分析的方法有很多,在此只简单介绍频率分析。有两种方式可以实现:第一种:程序实现程序详解第一句:Procfreqdata=sasuser.jan_junanls;此句是说:我要对数据文件jan_junanls做频率分析了。第二句:Tablesserviceid_str/out=serv;Tablesprovinceid_str/out=pro;Tablesstatus_str/out=sta;Procfreqdata=sasuser.jan_junanls;Tablesserviceid_str/out=serv;Tablesprovinceid_str/out=pro;Tablesstatus_str/out=sta;Run;Procfreqdata=sasuser.jan_junanls;Tablesserviceid_str/out=serper;Bystatus_str;Run;这三句话是说:我要对数据文件jan_junanls中的三个字段serviceid_str,provinceid_str,status_str做频率分析。并分别输出结果集serv,pro,sta到临时数据库work中,此处省略work,就说明三个文件集存放在work中,当然,如果你想放在sasuser数据库中,就要在这三个文件前面加上前缀sasuser.以下类似,要注意下面的SAS语句是要实现serviceid_str按照status_str分组计算频率(即bystatus_str).第二种方式:菜单操作1.点击solution—analysis—analyst2.弹出如图对话框3.点击file—openbysasname.弹出如图对话框:在数据库sasuser中找到jan_junanls数据集,点击OK.此时jan_junanls就会出现在需要分析的框中。4.点击statistics—descriptive—frequencycounts,出现如下对话框:5.假如我们要分析各省的流失情况,点击serviceid_str到frequencies框中,如果你还想知道流失和续费中各省占比,点击variables按钮,如图:因为流失和续费对应的字段是status_str,所以点击status_str到bygroup框中去即可。点击OK,回到上一级对话框。点击OK,就OK了。6.结果展示注意上面的左边比以前多了frequencycounts选项,双击其中的1-way….,就可以知道结果了。当然,如果你想知道这个菜单操作的程序是怎么样的,可以点击code,可以发现它和上面第一种方法的程序几乎是一样的。7.结果解释这个就不需要解释了吧,都是业务精通人士。三、几个注意点1.关于分析主题由于分析主题一般是决策者提出的,但是作为分析人员还需要把决策者的需求进一步细化,需求的理解是整个分析过程的关键。2.关于分析工具如果你喜欢SAS(我推荐此工具),那就好好好学一学统计知识,一般情况下,的确需要编程,但是,如果你学会使用analyst模块,也可以不需要编程,前提是数据集是现成的,拿来就用。因为SAS对数据的前期处理都是需要编程的。如果数据不大(50万以下),可以用SPSS或者EXCEL分析。超过50万的数据那就只好用SAS了。3.关于分析结果有时候分析的结果往往不是我们想象的,比如我以前发给大家的用数据挖掘工具CLEMENTINE做的决策树分

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功