




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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
提交評論