《SAS編程技術SAS處理流程與指針控制》由會員分享,可在線閱讀,更多相關《SAS編程技術SAS處理流程與指針控制(49頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、Title text should go hereEven if on two lines(but not three),First level,Second level,Third level,第,24,章,SAS,處理流程與指針控制,清華大學經(jīng)管學院 朱世武,Resdat,樣本數(shù)據(jù):,SAS,論壇:,SAS,處理流程,SAS處理流程數(shù)據(jù)集,SAS數(shù)據(jù)文件,SAS數(shù)據(jù)視圖,PROC SQL視圖,SAS/ACCESS視圖,原始數(shù)據(jù),外部文件數(shù)據(jù),程序行數(shù)據(jù),遠程數(shù)據(jù),FTP TCP/IP socket,URL,DATA步,SAS數(shù)據(jù)集,PORC步,SAS報告,SAS數(shù)據(jù)集,SAS日志,SAS報
2、告,SAS日志,其它外部數(shù)據(jù)文件,數(shù)據(jù)步定義,通過數(shù)據(jù)步可以實現(xiàn)的功能如下。,創(chuàng)立SAS數(shù)據(jù)集SAS數(shù)據(jù)文件或SAS數(shù)據(jù)視窗;,讀取外部數(shù)據(jù)文件創(chuàng)立SAS數(shù)據(jù)集;,通過對現(xiàn)有SAS數(shù)據(jù)集取子集、合并、修改和更新創(chuàng)立新的SAS數(shù)據(jù)集;,分析、操作或展示數(shù)據(jù);,創(chuàng)立新變量;,產(chǎn)生報告、或將文件存儲到硬盤或磁帶上;,提取信息;,文件管理。,編譯SAS語句,包括語法檢查,編譯階段,建立,輸入緩沖區(qū),程序數(shù)據(jù)向量PDV,描述信息,開始,data數(shù)據(jù)步語句,反復計數(shù),運行階段,設定,PDV中的變量值為缺失,數(shù)據(jù)讀入語句,判斷,是否還有記錄可以讀入,關閉數(shù)據(jù)集,執(zhí)行下一個數(shù)據(jù)步或者過程步,沒有,有,讀入,一
3、個數(shù)據(jù)記錄,執(zhí)行,其它的可執(zhí)行語句,寫入,一個觀測到數(shù)據(jù)集中,數(shù)據(jù)步處理流程,指針控制,當,SAS,從輸入數(shù)據(jù)中讀取數(shù)據(jù),并將其讀入到輸入緩沖區(qū)時,用一個指針標記所讀數(shù)據(jù)的位置。,INPUT,語句提供了三種方式來控制指針運動。,列指針控制,設置指針的列位置,行指針控制,設置指針的行位置,行固定說明符,在輸入緩沖區(qū)內保持指針在同一個記錄行上,從而使得其它的,INPUT,語句可以讀入同一條記錄行。,SAS,默認的情況下,,INPUT,語句在讀入一條記錄之后就自動釋放該條記錄而進入下一條,列行指針控制,列指針控制指定變量從哪一列開始讀入數(shù)據(jù)。,行指針控制可以實現(xiàn)如下控制:,將指針移動至下一次記錄行;
4、,在,INPUT,語句中定義每個觀測所要讀入的記錄行數(shù)量,或在,INFILE,語句中使用,N=,選項,設定每個觀測所需讀入的記錄數(shù)量。,例24.2 列行指針控制。,data one;,input 2 Name$+1 age;,cards;,sara 15,kitty 23,paul 24,;,run;,例中:2表示第一個變量Name從每個觀測記錄的第二列開始讀取數(shù)據(jù),在讀完Name之后,+1表示此時指針向右相對移動一列讀取age的數(shù)值。通過列表輸入方式的INPUT語句,每讀入一個數(shù)值之后,指針自動停留在數(shù)據(jù)后的第二列上如本例第一個數(shù)據(jù)行,讀完sara后,指針已經(jīng)指到sara后第二列上,所以此時
5、指針只需相對向右一位,就能繼續(xù)讀入下一個變量。,使用行固定說明符,以下情況發(fā)生時使用行固定說明符使得指針停留在當前的輸入記錄行上。,一個數(shù)據(jù)記錄行被多個INPUT語句讀入單尾綴。,一個數(shù)據(jù)記錄行包含多個觀測所需要的值雙尾綴。,一個數(shù)據(jù)記錄行需要在下一個DATA步的重復過程中再次讀入(雙尾綴)。,單尾綴,一般來說,數(shù)據(jù)步中的每個INPUT語句都會將一條新的數(shù)據(jù)記錄行讀入輸入緩沖區(qū)中,假設用單尾綴控制,那么在同一個重復過程中:,指針位置沒有改變。,沒有新的記錄行被讀入到輸入緩沖區(qū)當中。,下一個INPUT語句會繼續(xù)讀入同一條記錄行。,SAS在使用單尾綴時,會在碰到以下情況時釋放一條記錄行:,一個空的
6、INPUT語句:input;,一個不帶單尾綴的input語句;,下一次重復過程開始。,例,24.3,單尾綴,的作用。,data,one;,input a b;/*input,語句,1*/,input;/*input,語句,2*/,input c d ;/*input,語句,3*/,cards;,1 2 3 4,1 2 3 4,;,run,;,上述例子是一個標準組合順序,123,,得到的結果是,Obs,a,b,c,d,1,1,2,1,2,如果是,13,組合,得到的結果,Obs,a,b,c,d,1,1,2,3,4,2,1,2,3,4,雙尾綴,一般來說,假設使用雙尾綴,那么數(shù)據(jù)步在進行下一次重復過程
7、時,INPUT語句讀入同一條記錄行。,在碰到以下情況時,SAS才會將一個記錄行釋放:,指針移動超過了輸入記錄的尾端;,空INPUT語句;,在DATA步下一次重復開始時,有一個單尾綴的INPUT語句input;,例,24.4,雙尾綴,的作用。,data,one;,input a b ;,cards;,1 2 1 2,1 2 1 2,;,run;,例中,每個數(shù)據(jù)記錄行可以完成兩次重復過程,當指針移動超過了輸入記錄的尾端,指針才開始換行。,讀完數(shù)據(jù)后的指針位置,分別用列表方式、列方式、格式化方式讀入下一段數(shù)據(jù),-+-1-+-2-+-3,REGION1 49670,REGION2 97540,REGI
8、ON3 86342,列表方式:,input region$jansales;,在讀完,REGION1,之后,指針停留在第,9,列上。,-+-1-+-2-+-3,REGION1 49670,格式化方式和列方式,列方式,input region$1-7 jansales 12-16;,格式化方式,input region$7.+4 jansales 5.;,input region$7.12 jansales 5.;,I,NPUT,語句控制指針從前,7,列中讀取數(shù)據(jù)賦給變量,REGION,,而后指針停留在第,8,列上。,-+-1-+-2-+-3,REGION1 49670,多個數(shù)據(jù)行構成一個觀測,
9、看下面的例子,:,data,list2;,infile datalines;,input#4 name$1-10#2 age 13-14#3 team 16;,datalines;,li 12 1,wang 45 2,zhou 12 3,qian 3 4,zhang 23 5,ren 11 6,wu 1 7,qiu 98 8,;,proc print,data=list2;,quit;,Obs name age team,1 qian 45 3,2 qiu 11 7,input#4 name$1-10#2 age 13-14 team 16;,對應輸出窗口結果,Obs name age tea
10、m,1 qian 45 2,2 qiu 11 6,指針超過行的結尾,在使用或+控制指針時,如果指針移動超過數(shù)據(jù)行的結尾,那么自動轉到下一次數(shù)據(jù)記錄行的第一列,并將此信息輸入到SAS日志中。,如下例:,data one;,input x +6 y;,cards;,1 2,3 4,;,run;/*x=1 y=3*/,23 data one;,24 input x +6 y;,25 cards;,NOTE:INPUT,語句到達一行的末尾,,SAS,已轉到新的一行。,NOTE:,數(shù)據(jù)集,WORK.ONE,有,1,個觀測和,2,個變量。,NOTE:“DATA,語句”所用時間(總處理時間),:,實際時間,
11、0.05,秒,CPU,時間,0.06,秒,30 ;,31 run;,指針移到第一列之前,當列指針試圖移到第一列之前的位置時,會被限制到第一列。,例,24.5,列指針移到第一列。,data,one;,input x (A-7)y;,cards;,1,;,run,;/*x=1 y=1*/,SAS,在讀完,X,的值之后,指針回到第一列。,x,和,y,有同樣的值。,恩格爾和克拉格Kraft,D.,1983在分析宏觀數(shù)據(jù)時,發(fā)現(xiàn)這樣一些現(xiàn)象:時間序列模型中的擾動方差穩(wěn)定性比通常假設的要差。恩格爾的結論說明在分析通貨膨脹模型時,大的及小的預測誤差會大量出現(xiàn),說明存在一種異方差,其中預測誤差的方差取決于后續(xù)
12、擾動項的大小。,從事于股票價格、通貨膨脹率、外匯匯率等金融時間序列預測的研究工作者,曾發(fā)現(xiàn)他們對這些變量的預測能力隨時期的不同而有相當大的變化。預測的誤差在某一時期里相對地小,而在某一時期里那么相對地大,然后,在另一時期又是較小的。這種變異很可能由于金融市場的波動性易受謠言、政局變動、政府貨幣與財政政策變化等等的影響。從而說明預測誤差的方差中有某種相關性。,為了刻畫這種相關性,恩格爾提出自回歸條件異方差(ARCH)模型。ARCH的主要思想是時刻 t 的ut 的方差(=t2)依賴于時刻(t 1)的擾動項平方的大小,即依賴于 t2-1。,6.1.1 ARCH模型,為了說得更具體,讓我們回到k-變量
13、回歸模型:,(6.1.1),如果 ut 的均值為零,對 yt 取基于(t-1)時刻的信息的期望,即Et-1(yt),有如下的關系:,(6.1.2),由于 yt 的均值近似等于式的估計值,所以式也稱為均值方程。,假設在時刻(t 1)所有信息的條件下,擾動項 ut 的條件分布是:,(6.1.7),也就是,ut 遵循以0為均值,(0+1u2t-1)為方差的正態(tài)分布。,由于,(6.1.7),中,u,t,的方差依賴于前期的平方擾動項,我們稱它為,ARCH(1),過程:,通常用極大似然估計得到參數(shù),0,1,2,k,0,1,的有效估計。,容易加以推廣,,ARCH,(,p,),過程可以寫為:,(6.1.8),
14、這時方差方程中的,(,p,+1),個參數(shù),0,1,2,p,也要和回歸模型中的參數(shù),0,1,2,k,一樣,利用極大似然估計法進行估計。,如果擾動項方差中沒有自相關,就會有,H0:,這時,從而得到擾動項方差的同方差性情形。,恩格爾曾說明,容易通過以下的回歸去檢驗上述虛擬假設:,其中,t 表示從原始回歸模型估計得到的OLS殘差。,在 ARCH(p)過程中,由于 ut 是隨機的,ut2 不可能為負,所以對于 ut 的所有實現(xiàn)值,只有是正的,才是合理的。為使 ut2 協(xié)方差平穩(wěn),所以進一步要求相應的特征方程,的根全部位于單位圓外。如果 ii=1,2,p都非負,式等價于 1+2+p 1。,6.1.2 AR
15、CH,的檢驗,下面介紹檢驗一個模型的殘差是否含有ARCH效應的兩種方法:ARCH LM檢驗和殘差平方相關圖檢驗。,1.ARCH LM檢驗,Engle在1982年提出檢驗殘差序列中是否存在ARCH效應的拉格朗日乘數(shù)檢驗Lagrange multiplier test,即ARCH LM檢驗。自回歸條件異方差性的這個特殊的設定,是由于人們發(fā)現(xiàn)在許多金融時間序列中,殘差的大小與最近的殘差值有關。ARCH本身不能使標準的OLS估計無效,但是,忽略ARCH影響可能導致有效性降低。,ARCH LM檢驗統(tǒng)計量由一個輔助檢驗回歸計算。為檢驗原假設:殘差中直到q階都沒有ARCH,運行如下回歸:,式中 t 是殘差。
16、這是一個對常數(shù)和直到 q 階的滯后平方殘差所作的回歸。這個檢驗回歸有兩個統(tǒng)計量:,1F 統(tǒng)計量是對所有殘差平方的滯后的聯(lián)合顯著性所作的一個省略變量檢驗;,2TR2 統(tǒng)計量是Engles LM檢驗統(tǒng)計量,它是觀測值個數(shù) T 乘以回歸檢驗的 R2;,普通回歸方程的,ARCH,檢驗都是在殘差檢驗下拉列表中進行的,需要注意的是,只有使用最小二乘法、二階段最小二乘法和非線性最小二乘法估計的方程才有此項檢驗。,Breusch-Pagan-Godfrey,Harvey,Glejser,ARCH,White,Custom Test Wizard,圖,6.4,普通方程的,ARCH,檢驗列表,2.殘差平方相關圖,顯示直到所定義的滯后階數(shù)的殘差平方t2的自相關性和偏自相關性,計算出相應滯后階數(shù)的Ljung-Box統(tǒng)計量。殘差平方相關圖可以用來檢查殘差自回歸條件異方差性ARCH。如果殘差中不存在ARCH,在各階滯后自相關和偏自相關應為0,且Q統(tǒng)計量應不顯著??蛇m用于使用LS,TSLS,非線性LS估計方程。在圖6.4中選擇Residuals Tests/Correlogram Squared Residuals