SAS时序分析介绍_第1页
SAS时序分析介绍_第2页
SAS时序分析介绍_第3页
SAS时序分析介绍_第4页
SAS时序分析介绍_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SAS时序分析应用一、SAS简介SAS系统(StatisticalAnalysisSystem)由美国北卡罗来纳州立大学(NorthCarolinaStateUniversity)1966年开发(1972年第1版,最新版本9.x),该软件经过不断地完善和发展,已在各个领域得到了广泛的应用(如:金融、医药、生产、运输、通信等领域),现在已成为国际上标准的统计软件之一。SAS系统是一个集大型数据管库理、统计分析、报表图形、信息系统开发等多种强大功能为一体的大型软件系统。其中,专门针对计量经济和时间序列分析的模块是SAS/ETS(Econometrics&TimeSeries),SAS/ETS模块提供了时间序列分析、时间序列预报等功能。

SAS(系统数据驱动的系统——数据获取、数据管理、数据分析、

数据展示)BaseSAS–系统核心–数据管理任务–用户使用环境SAS/STAT–统计分析模块SAS/ETS–时间序列分析模块SAS/IML–交互式矩阵程序设计模块SAS/Graph–绘图模块菜单栏工具栏程序窗口资源管理窗菜单栏File——文件选项。用于处理文件的打开、关闭、保存、输入及输出等。Edit——编辑选项。用于文件的复制、剪切、清除、选择、查找及替代等。View——视图选项。用于切换不同的视窗。Tools——工具选项。主要是提供各种编辑工具,并可以进行系统信息的更改与管理。Run——程序运行选项。该选项只有在当前窗口为编辑窗口时出现。Solutions——分析方案选项。它提供各种分析方法。Window——窗口选项。提供窗口控制的大小、排列方式及窗口间的切换。Help——帮助选项。工具栏(从左至右)命令输入及提交窗口、创建新文件、打开旧文件、保存、打印、预览、剪切、复制、粘贴、复原、目录库、资源管理器、提交程序给SAS执行、删除、中断运行及帮助等。窗口(从左至右)结果输出窗口、运行记录窗口及程序编辑窗口程序执行选中需要执行的语句单击工具条按钮SASLog窗口:有关程序执行的信息,包括警告、错误消息SASOutput窗口:结果输出

SAS程序的组成SAS程序的组成

SAS数据集:SAS存取数据的基本单位,逻辑上是一个二维数据表数据步(Datastep)–创建、修改、加工整理SAS数据集过程步(Procstep)–加工整理、分析、显示

程序语句的界定

数据步–起始:DATA–中止:Run;下一个data、proc过程步–起始:Proc语句–中止:Run;Quit;下一个data、proc程序语法

开始于一个SAS关键词;结束于一个“;”自由格式–一个或几个空格作为分隔–一句语句可以分为几行–几个语句可以放在一行–注意:不要把过多语句放到一行,不利于调试(不利于应用log窗口中行数的指引)注释–/*……;–/*………………..*/二、时间序列数据集的创建1、使用DATA步创建SAS数据集(临时数据集)datajr09;inputtimemonyy7.price;formattimemonyy5.;cards;Jan2005101Feb200582Mar200566Apr200535May200531Jun20057;Run;proc

printdata=jr09;Run;①SAS系统命令语句不分大小写,单词之间至少空一格,每条命令以“;”结束。②“dataexample1_1”命令SAS建立一个临时数据集。③“inputtimemonyy7.price;”

第一个变量名为“time”,“monyy7.”说明变量是时间变量,且指定了数据的输入格式为字符长度为7的月份年度数据。

第二个变量名为“price”,对它没有指定变量类型和数据输入格式,系统会自动将它视为数字型变量,并自动读取。④“formattimemonyy5.;”该句告诉系统,“time”这个变量的的输出格式是字符长度为5的月份年度数据,输出格式为月份的三位缩写字母+2位年份数据。⑤“cards”告诉SAS系统,下面开始录入数据行。第一列数据会自动赋给“time”,第一列数据会自动赋给“price”。如果命令为:“inputtimemonyy7.price@@;”,数据将以如下方式读取:第一个数据赋值给变量“time”,第二个数据赋值给变量“price”,第三个数据赋值给变量“time”,第四个数据赋值给变量“price”,……数据输入完后,另起一行输入命令结束符号“;”注意:Cards=datalines⑥“Run;”表示程序写好可以运行。

查看数据“proc

printdata=jr09;”创建永久数据集所谓永久数据集就是指在sas中建立的数据集不会因为退出sas而丢失,它会永久地保存在该数据中,以后进入sas系统还可以从库中调用该数据集。①用“datasasuser.jr09;”生成一个名字为sasuser.jr09的永久数据集。datasasuser.tj10;inputtimemonyy7.price;formattimemonyy5.;cards;Jan2005101Feb200582Mar200566Apr200535May200531Jun20057;proc

printdata=sasuser.tj10;run;②用libname命令建立永久数据集Libnametansas'D:\教学\时间序列';Datatansas.tan;即:创立一个名为tan的永久该数据集,并将其保存在目录“D:\教学\时间序列”下。Libnametansas'D:\教学\时间序列';Datatansas.tan;inputtimemonyy7.price;formattimemonyy5.;cards;Jan2005101Feb200582Mar200566Apr200535May200531Jun20057;run;运行以上程序后,单击逻辑库tansas会发现里面有tan;同时在在目录“D:\教学\时间序列”下也会发现这个文件——tan.sas7bdat(SAS数据集在Windows系统中的扩展名是sas7bdat)显示数据集中的某一段数据①datasj;settansas.tan(firstobs=2obs=5);run;②dataairline1;setairline;if('31dec1950'd<=tandt<='31dec1960'd);run;procprintdata=airline1;run;③dataairline1;setairline;Ift>='31dec1950'd;run;procprintdata=airline1;run;比一比dataairline1;setairline;where>='31dec1950'd;run;procprintdata=airline1;run;2、直接导入外部数据①导入EXCEL数据file-----import-----microsoftexcel97or2000(*.xls)-----browse(指明要输入文件的路径)-----next-----finishproc

importout=work.jr09datafile="d:\jr.xls"dbms=excelreplace;sheet="sheet";getnames=yes;run;②导入csv格式数据直接读取以逗号分隔的文件(.csv)Data数据集名;infile‘文件路径'delimiter=','MISSOVERDSDfirstobs=2;informat变量名格式;input变量名;run;delimiter=‘,‘指定分隔号firstobs=2,从第二行开始读取Informat,指定输入变量的格式Missover假设输入变量为v1,v2,v3,v4,v5文件有一行数据12,12,34,23,如果没有这个参数,系统将跳到下一行用第一个数来填入变量v5如果有这个参数,v5在这一行的数值为空dsd假设输入变量为v1,v2,v3,v4,v5文件有一行数据12,,34,23,3如果没有这个参数,系统忽略两个连续分隔号如果有这个参数,系统将两个连续分隔符号视为空值;libnametansas"D:\教学\时间序列";proc

importout=tansas.tan1 datafile="D:\教学\时间序列\rate.csv" dbms=csvreplace; getnames=yes; datarow=2;run;proc

printdata=tansas.tan1;run;导入txt格式数据dataab_b;Infile'E:\ab_b.txt'delimiter=','MISSOVERDSDfirstobs=2;Informattime$6.;Informatgdp8.;Inputtimegdp;run;dataenter;Infile'D:\教学\时间序列\tan1.sas7bdat'firstobs=2obs=708;Inputtimerate;run;proc

printdata=enter;run;对数据进行描述procunivariatedata=tansas.tan1noprint;varrate;outputout=a1nmiss=nmissmean=meanstd=stdmin=minq1=q1median=medianq3=q3max=max;run;dataa1;retainnmissmeanstdminq1medianq3max;seta1;labelnmiss="缺失观测"mean="均值"std="标准偏差"min="最小值"q1="下分位数"median="中位数"q3="上分位数"max="最大值";run;proc

univariatedata=tansas.tan1noprint;varrate;histogramrate/cbarline=bluecfill=lired;insetnnmissmeanstdminq1medianq3max/header='DescriptiveStatistics'position=nenoframe;run;proc

contentsdata=tansas.tan1out=a0noprint;run;二、时间序列数据集的处理1、间隔数据的处理对于等时间间隔数据,SAS提供一种时间间隔函数INTNX,它可以根据需要自动产生等时间间隔的时间数据。datajr091_1;inputprice;time=intnx('month','01jan2005'd,_n_-1);formattimemonyy.;cards;3.413.453.423.533.45;proc

printdata=jr091_1;run;“time=intnx('month','01jan2005'd,_n_-1);”该命令是指定用intnx函数给时间time赋值。intnx函数包括三个参数:第一个参数指定等时间间隔,该参数可以为—day,week,quarter,year等,第二个参数指定参照时间,第三个参数(_n_k)是调整开始观测的指针。K为整数,k取正值,指针由参照时间向未来(不包含参照时间)拨k期,k取负值,指针由参照时间向过去(包含参照时间)拨k期。2、序列变换datajr091_2;inputprice;lotprice=log(price);time=intnx('month','01jan2005'd,_n_-1);formattimemonyy.;cards;3.413.453.423.533.45;proc

printdata=jr091_2;run;反对数运算datajr091_3;setjr091_2;y=exp(lotprice);run;3、子集data

jr091_4;setjr091_3;keeptimelogprice;wheretime>='01mar2005'd;proc

printdata=jr091_4;run;①建立“datajr091_4;”的临时数据集,②“setjr091_3;”该句表明“jr091_4”是“09jr1_3”的子集,③“keeptimelogprice;”该命令说明要保留的变量,④“wheretime>=‘01mar2005’d;”指“jr091_4”要从“jr091_3”获取数据集的范围。4、缺失值的插补datajr091_5;inputprice;time=intnx('month','01jan2005'd,_n_-1);formattimedate.;cards;3.413.45.3.533.45;proc

expanddata=jr091_5out=jr091_6;idtime;proc

printdata=jr091_5;proc

printdata=jr091_6;run;

5、连接数据集Datanewhires;•Setna1na2;•Run;Datanewfa;Setfa1fa2;Run;Datafa3;Setfa2;Renamejcode=jobcode;Run;Datanewfa;Setfa1fa3;Run;6、合并数据集将两个数据集按照关键变量合并Merge/By语句–Merge/by要求数据集已经排序Datadata=dataset3;Mergedataset1dataset2Byvariables;run;按照一个或多个变量排序缺省:升序procsortdata=dataset1<out=dataset2>;by<descending>variables;run;排序Procsortdata=allgoals;Bymonth;run;Procsortdata=allsales;Bymonth;run;合并Dataallcompare;mergeia.allsalesia.allgoals;bymonth;run;Dataallcomparein;mergeia.allsales(in=a)ia.allgoals(in=b);bymonth;ifa=1andb=1;run;•提示:在merge之前必须将数据集按照关键变量排序;IN=variable–namesthenewvariablewhosevalueindicateswhetherthatinputdatasetcontributeddatatothecurrentobservation.WithintheDATAstep,thevalueofthevariableis1ifthedatasetcontributedtothecurrentobservation,and0otherwise.7、绘制时序图在SAS系统中可以使用plot过程、gplot过程及timeplot过程绘制时序图。procgplotdata=xf1;plotcon*t=1/haxis='01jan1952'dto'1jan94'dbyyear;symbol1c=blackv=stari=joinw=3;run;说明:procgplotdata=xf1表示对数据集xf1绘图;plotcon*t=1表示横轴为t,纵轴为con,haxis(orvaxis)=‘01jan1952’dto‘1jan94’dbyyear表示两个相邻时间点间隔为year,01jan1952为坐标起始值、1jan94为坐标终值。几个图形画在同一个坐标图中可在“/”加入overlay语句。Symbol1中的1应和con

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论