經(jīng)濟(jì)統(tǒng)計(jì)分析SAS.ppt_第1頁
經(jīng)濟(jì)統(tǒng)計(jì)分析SAS.ppt_第2頁
經(jīng)濟(jì)統(tǒng)計(jì)分析SAS.ppt_第3頁
經(jīng)濟(jì)統(tǒng)計(jì)分析SAS.ppt_第4頁
經(jīng)濟(jì)統(tǒng)計(jì)分析SAS.ppt_第5頁
已閱讀5頁,還剩325頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、經(jīng)濟(jì)統(tǒng)計(jì)學(xué),第一章 sas概述 第一節(jié) sas簡介 一、sas的功能介紹 1、數(shù)據(jù)獲取 2、數(shù)據(jù)管理 3、數(shù)據(jù)分析 4、數(shù)據(jù)表示 5、應(yīng)用軟件開發(fā),二、基本的數(shù)據(jù)指標(biāo) 1、加權(quán)和 2、均值 3、總和 4、標(biāo)準(zhǔn)差 5、方差 6、偏度 7、峰度 8、加權(quán)平方和 9、加權(quán)離差平方和,10、變異系數(shù) 11、均值的標(biāo)準(zhǔn)誤差 三、數(shù)據(jù)分析的基本方法 折線圖的介紹 例如:data abc; input name $ sex $ math chinese english; cards; li m 65 62 78 zhao f 86 72 83 wang m 76 81 81 zhang f 74 84 69

2、,yu m 65 72 85 xiao f 86 72 87 qian m 76 81 91 ; proc univariate data=abc ; var math; run; 結(jié)果如下:,the sas system 18:51 sunday, april 28, 1996 1 the univariate procedure variable: math moments n 7 sum weights 7 mean 75.4285714 sum observations 528 std deviation 8.59955702 variance 73.952381 skewness 0

3、.03373989 kurtosis -1.2497017 uncorrected ss 40270 corrected ss 443.714286 coeff variation 11.4009279 std error mean 3.25032704,basic statistical measures location variability mean 75.42857 std deviation 8.59956 median 76.00000 variance 73.95238 mode 65.00000 range 21.00000 interquartile range 21.00

4、000 note: the mode displayed is the smallest of 3 modes with a count of 2. tests for location: mu0=0 test -statistic- -p value- students t t 23.20646 pr |t| = |m| 0.0156 signed rank s 14 pr = |s| 0.0156,quantiles (definition 5) quantile estimate 100% max 86 99% 86 95% 86 90% 86,the sas system 18:51

5、sunday, april 28, 1996 2 the univariate procedure variable: math quantiles (definition 5) quantile estimate 75% q3 86 50% median 76 25% q1 65 10% 65 5% 65 1% 65 0% min 65,extreme observations -lowest- -highest- value obs value obs 65 5 74 4 65 1 76 3 74 4 76 7 76 7 86 2 76 3 86 6,第二節(jié) sas系統(tǒng)的安裝 一、 sas

6、系統(tǒng)安裝的注意事項(xiàng) 1、時(shí)間應(yīng)調(diào)整到96年5月以前。 2、安裝的中間有些文件不存在,可忽略。 二、 sas系統(tǒng)安裝的步驟 1、啟動(dòng)sas系統(tǒng)安裝的程序setup。 2、將硬盤保護(hù)卡解除。輸入密碼后,硬盤保護(hù)卡將解除。,第三節(jié) sas系統(tǒng)的概貌 一、sas系統(tǒng)的啟動(dòng) 1、雙擊桌面上的sas快捷方式 2、從開始菜單進(jìn)行啟動(dòng) 二、sas窗口介紹 1、資源管理器窗口 2、編輯窗口 3、日志窗口 4、輸出窗口 5、結(jié)果窗口 三、sas主要菜單介紹,第四節(jié) sas命令行和工具欄 一、sas命令行的主要功能 二、sas工具欄的主要操作,第二章 sas基本概念 第一節(jié) sas數(shù)據(jù)集 一、sas數(shù)據(jù)集的概念 1

7、、sas數(shù)據(jù)集的概念 sas數(shù)據(jù)集是由若干行和若干列組成的表格,類似于一個(gè)矩陣。sas數(shù)據(jù)集是由sas系統(tǒng)建立的特有的數(shù)據(jù)存儲(chǔ)格式。可以將其看作一個(gè)文件。 2、sas數(shù)據(jù)集的構(gòu)成 數(shù)據(jù)集名+擴(kuò)展名組成 數(shù)據(jù)集的第一個(gè)字母必須是字母或下劃線 觀測、變量的基本涵義,二、sas數(shù)據(jù)集的分類 1、臨時(shí)數(shù)據(jù)集 存儲(chǔ)在work目錄下的數(shù)據(jù)集為臨時(shí)數(shù)據(jù)集 2、永久數(shù)據(jù)集 存儲(chǔ)在sasuser目錄下的數(shù)據(jù)集為永久數(shù)據(jù)集,第二節(jié) sas數(shù)據(jù)庫 一、sas數(shù)據(jù)庫的涵義 在sas系統(tǒng)中數(shù)據(jù)庫為在sas系統(tǒng)下的一個(gè)目錄下,與其它系統(tǒng)中的數(shù)據(jù)庫是有所不同的。 二、sas數(shù)據(jù)庫的構(gòu)成及區(qū)別 在sas系統(tǒng)中數(shù)據(jù)庫為:wor

8、k、sasuser、sashelp 單水平名、兩水平名;臨時(shí)數(shù)據(jù)集使用單水平名,永久數(shù)據(jù)集使用兩水平名。,第三節(jié) sas程序 一、sas程序的構(gòu)成 1、 data步(數(shù)據(jù)集部分) data 數(shù)據(jù)集; input 變量; cards; 2、proc步(處理程序部分) 二、sas程序的特點(diǎn) 數(shù)據(jù)的輸入、數(shù)據(jù)、數(shù)據(jù)的處理程序,第三章 建立sas數(shù)據(jù)集 第一節(jié) 編輯程序?qū)霐?shù)據(jù) 一、新建數(shù)據(jù)集 通過程序編輯窗口進(jìn)行數(shù)據(jù)集的建立 應(yīng)注意的事項(xiàng): 1、數(shù)據(jù)排列格式必須一致,各數(shù)據(jù)間必須用空格或制表符分隔開。 2、缺失的數(shù)據(jù)用點(diǎn)號表示。 3、字符型數(shù)據(jù)的長度不能超過8個(gè)字符。 4、變量名與數(shù)據(jù)值要對應(yīng)。 二

9、、由已有的數(shù)據(jù)集建立新的數(shù)據(jù)集 set 命令 set 數(shù)據(jù)集名;數(shù)據(jù)集名為已存在的,例如: data abc; input name $ sex $ math chinese english; cards; li m 65 62 78 zhao f 86 72 83 wang m 76 81 81 zhang f 74 84 69 yu m 65 72 85 xiao f 86 72 87 qian m 76 81 91 ;,proc univariate data=abc ; var math; run; data fff; set abc; run proc sort data=fff ;

10、 by english; run; proc print; run;,第二節(jié) 利用viewtable新建數(shù)據(jù)集 在工具欄中點(diǎn)擊tools后,再點(diǎn)擊table edit進(jìn)行表格的編輯和創(chuàng)建。 第三節(jié) 將其他格式的數(shù)據(jù)文件導(dǎo)入數(shù)據(jù)集 一、標(biāo)準(zhǔn)格式的數(shù)據(jù)文件的轉(zhuǎn)換 二、自定義格式的數(shù)據(jù)轉(zhuǎn)換 第四節(jié) 利用sas assist創(chuàng)建數(shù)據(jù)集 一、菜單執(zhí)行方式 1、單擊solutions菜單下的assist選項(xiàng),啟動(dòng)sas assist 2、在命令行中輸入assist后,單擊執(zhí)行符,啟動(dòng)sas assist,二、利用sas assist創(chuàng)建數(shù)據(jù)集的過程 1、初始化界面 2、啟動(dòng)data management(

11、執(zhí)行數(shù)據(jù)管理菜單) 3、啟動(dòng)create data(創(chuàng)建數(shù)據(jù)集),選擇interactively(交互方式) 三、交互方式數(shù)據(jù)集的創(chuàng)建 單擊1、enter data one record at a time 2、 enter data in tabular form 四、利用sas assist創(chuàng)建兩變量的數(shù)據(jù)集 (for x-y plots) 利用sas assist創(chuàng)建兩變量的數(shù)據(jù)集,進(jìn)行數(shù)據(jù)分析。返回到assist菜單,選擇graphics進(jìn)行分析。,第四章 數(shù)據(jù)集的瀏覽與修改 第一節(jié) 利用viewtabale方式 選中數(shù)據(jù)集,雙擊打開數(shù)據(jù)文件,進(jìn)行瀏覽。 第二節(jié) sas insight

12、 一、利用insight 進(jìn)行數(shù)據(jù)集的瀏覽 sas insight是sas系統(tǒng)中一個(gè)重要的模塊,具有管理數(shù)據(jù)和分析數(shù)據(jù)的能力。進(jìn)入sas insight模塊的方法是選擇solutions菜單下的analysis命令,然后在analysis中選擇interactive data analysis。,二、等差數(shù)列的形成 選中菜單中的fill values命令,再確定起始變量和結(jié)束變量,形成等差數(shù)列。 第三節(jié) sas assist 先啟動(dòng)assist菜單,選擇其中的edit/browse功能。 第四節(jié) sas assist 一、表編輯方式 1、先啟動(dòng)assist菜單,選擇其中的edit/browse

13、功能。,2、選擇編輯方式(表編輯方式、單個(gè)觀測編輯方式) 3、選擇編輯文件(如果不知文件的具體位置,單擊table/column來查找)。 二、行編輯方式 1、選擇編輯文件 2、選擇瀏覽方式,第五章 sas語言初步 第一節(jié) sas語言的組成 一、sas語句 在過程步中體現(xiàn) 二、sas表達(dá)式 二、輸出語句 應(yīng)用put語句可以進(jìn)行數(shù)據(jù)的輸出 data ; a=23; d=a*3; put “d=“ d ; run;,三、分支語句 1、if分支語句 if 條件 then 執(zhí)行語句; else 執(zhí)行語句; 在有些時(shí)候,滿足條件后需要執(zhí)行的操作有很多條,不可能都寫在一條命令里面。這時(shí) 可以使用do語句。

14、在要執(zhí)行的第一條語句前寫”do”;,在最后一條要執(zhí)行的語句后寫”end”。,例: data ; a=53; b=a*3; if b100 then do; c=b-100; put”new value of b is” c; end; run;,帶有else語句的例子: 例如: data ; a=53; b=a*3; if b100 then do; c=b-100; put”new value of b is” c; end; else put”value of b is “ b; run;,例如:data ; a=53; b=a*3; if b100 then do; c=b-100; p

15、ut”c= “ c; end; run;,2、select語句 形式一: select(表達(dá)式) when(表達(dá)式的值) 執(zhí)行語句1; when(表達(dá)式的值) 執(zhí)行語句2; when(表達(dá)式的值) 執(zhí)行語句3; otherwise執(zhí)行語句4; end;,例如:data ; a=11 ; select(a) ; when(1,2,3) put 第一季度 ; when (4,5,6) put第二季度 ; when (7,8,9) put第三季度 ; otherwise put第四季度 ; end ; run ;,例如: data ; a=5 ; select ; when(a4) put第一季度

16、; when(a7) put第二季度 ; when(a10) put第三季度 ; otherwise put第四季度 ; end ; run ;,形式二: select when(表達(dá)式的值) 執(zhí)行語句1; when(表達(dá)式的值) 執(zhí)行語句2; when(表達(dá)式的值) 執(zhí)行語句3; otherwise執(zhí)行語句4; end;,例:data ; a=11; select; when(a in(1,2,3) put第一季度 ; when (a in (4,5,6) put第二季度 ; when (a in (7,8,9) put第三季度 ; otherwise put第四季度 ; end; run;

17、,例:data ; a=9; select; when(a4) put第一季度 ; when(a7) put第二季度 ; when(a10) put第三季度 ; otherwise put第四季度 ; end; run;,四、循環(huán)語句 1、形式一: do 變量=起始值 to 結(jié)束值 by 步長; 循環(huán)體; end;,例1:循環(huán)計(jì)算1+2+3+100的結(jié)果 data ; s=0; i=0; do i=1 to 100 by 1; s=s+i; end; put the sum of 1 to 100 is s; run;,2、形式二: do while(循環(huán)滿足的條件); 循環(huán)體; end; 例

18、如:data ; s=0; i=0; do while(i=100); s=s+i; i=i+1; end; put the sum of 1 to 100 is s ; run;,3、形式三: do until(循環(huán)終止的條件); 循環(huán)體; end; 例如: data ; s=0; i=0; do until(i100); s=s+i; i=i+1; end; put the sum of 1 to 100 is s; run;,第六章 sas語言中的常用函數(shù) 第一節(jié) 算術(shù)函數(shù) 算術(shù)函數(shù)是sas系統(tǒng)中最常用的函數(shù),主要包括以下函數(shù)。 abs(x):求x的絕對值。 dimn(x):求數(shù)組中的元

19、素個(gè)數(shù),x為數(shù)組名。 dim(x,y):求多維數(shù)組的某一數(shù)組中的元素個(gè)數(shù),x為數(shù)組名,y為維數(shù)。 hboundn(x):求數(shù)組的上界。 hbound(x,y):求多維數(shù)組中的某一維的上界,x為數(shù)組名,y為維數(shù)。, lboundn(x):求數(shù)組的下界。 lbound(x,y):求多維數(shù)組中的某一維的下界,x為數(shù)組名,y為維數(shù)。 max(x,y,z):求一串?dāng)?shù)中最大的一個(gè)。 例如:max(1,2,3)=3 min(x,y,z):求一串?dāng)?shù)中最小的一個(gè)。 例如:min(1,2,3)=1 mod(x,y):求x除以y 的余數(shù)。 例如:mod(7,4)=3, sign(x):求x的字符號,如果為負(fù)數(shù)則返回

20、-1,如果為正數(shù)則返回1。 例如:sign(-100)=-1,sign(23)=1 sqrt(x):求x的平方根,x只能為非負(fù)數(shù)。 例如:sqrt(100)=10 第二節(jié) 邏輯函數(shù) band(x,y):取兩個(gè)邏輯值0和1的與運(yùn)算。 例如:band(0,1)=0; band(1,0)=0 band(1,1)=1; band(0,0)=0, bor(x,y):取兩個(gè)邏輯值0和1的或運(yùn)算。 例如:bor(0,0)=0 bor(1,0)=1 bor(0,1)=1 bor(1,1)=1 第三節(jié) 字符函數(shù) byte(n):第n個(gè)ascll碼值對應(yīng)的字符。 collate(x,y):起始位置為x,終止位置為

21、y之間所有的ascll碼。 compbl(x):將字符串x中多余的空格去掉。 例如:compbl(a b c)=a b c, compress(x,y):把字符串x中包含的字符串y去掉。 例如:compresss(abcd,a)=bcd dequote(x):去掉字符串x的引號。index(x,y):返回y在x中的位置,如果x不包含y則返回0。 例如:index(abcd,d)=4 index(abcd,f)=0 indexc(x,y1,y2)。 indexw(x,y):x中是否包含y這個(gè)單詞。 例如:indexw(abcd efg,abcd)=1 indexw(abcdefg,abcd)=0

22、, left(x):將字符串x左對齊。 length(x):返回字符串x的長度。 例如:length(abcd)=4 length(abcd efg)=8 lowcase(x):將x中的字母變?yōu)樾憽?例如:lowcase(abcd)=abcd quote(x):給x加上一個(gè)引號。 rank(x):給出字符x的ascll碼對應(yīng)的位置數(shù)。 例如:rank(a)=97 rank(b)=98 repeat(x,n):將字符串x重復(fù)n次。 例如:repeat(ab,2)=ababab, reverse(x):將字符串x顛倒過來。 例如:reverse(abcd)=dcba right(x):將字符串x

23、右對齊。 scan(x,n):返回字符串x中的第n個(gè)單詞。 例如:scan(“abcd a”,2)=a scan(“abcd a”,1)=abcd soundex(x):將字符串x編碼以便于查找。 substr(x,n):從字符串中抽取子集,將第n個(gè)字符以前的字符都刪掉。 例如:substr(“abcd”,2)=bcd substr(“abcd”,3)=cd, translate(string,x,y):將字符串string中的y字符替換為x字符。 例如:translate(abcd a、a、c)=abad a tranwrd(string,x,y):將字符中的單詞x替換為單詞y。 例如:tr

24、anwrd(abcd a、a、cd)=abcd cd trim(x):去掉字符串x的末尾的空格。 例如:trim(abcd )=abcd upcase(x):將字符串x中的字母變?yōu)榇髮憽?例如:upcase(abcd)=abcd, verify(string,x):返回string 中第一個(gè)不為x的字符的位置。 例如:verify(abcd,a)=2 verify(abcd,b)=1 第四節(jié) 字符串匹配函數(shù) rxmatch(rx,string):返回匹配條件的子串的開始位置。 rxparse(pattern-expression):分析模式并返回?cái)?shù)據(jù)。 第五節(jié) 貨幣轉(zhuǎn)換函數(shù) eurocurr(

25、from-currency-amount,from-currency-code,to-currency-code):其中from-currency-amount為需要轉(zhuǎn)換的貨幣的數(shù)量,from-currency-code為需要轉(zhuǎn)換的貨幣種類,to-currency-code為希望轉(zhuǎn)換的貨幣種類。,第五節(jié) 貨幣轉(zhuǎn)換函數(shù) eurocurr(from-currency-amount,from-currency-code,to-currency-code):其中from-currency-amount為需要轉(zhuǎn)換的貨幣的數(shù)量,from-currency-code為需要轉(zhuǎn)換的貨幣種類,to-currenc

26、y-code為希望轉(zhuǎn)換的貨幣種類。 第六節(jié) 金融函數(shù) compound(amount,future,number):返回福利系數(shù)。 convx(y,f,c(1),,c(k)):返回列舉出的現(xiàn)金流的曲率。 convxp(a,c,n,k,k0,y):返回固定周期的現(xiàn)金流的曲率。, daccdb(period,value,years,rate):返回折舊值。 daccdbsl(period,value,years,rate):使用直線折舊法返回的殘值。 deptab(period,value,t1,tn):從特定的表中的數(shù)據(jù)返回折舊值。 depsl(period,value,years):返回直線折

27、舊。 intrr(frequency,c0,c1,cn):返回內(nèi)部 收益率。 irr(frequency,c0,c1,cn):返回百分比收益率。, mort(amount,payment,rate,number):返回?cái)傔€系數(shù)。 netpv(rate,frequency,c0,c1,cn):返回現(xiàn)金流的凈現(xiàn)值,其中利率以分?jǐn)?shù)形式給出。 npv(rate,frequency,c0,c1,cn):返回現(xiàn)金流的凈現(xiàn)值,其中利率以百分比形式給出。 pvp(a,c,n,k,k0,y):返回固定周期的現(xiàn)金流的凈現(xiàn)值。 saving(future,payment,rate,number):返回周期性存款的未

28、來價(jià)值。 yieldp(a,c,n,k,k0,p):返回固定周期的現(xiàn)金流的到期收益律。, 例1:使用compound求出本金1000元,年利率為0.1,3年后的本息合計(jì)。 data; a=compound(1000,.,0.1,3); put a; run;結(jié)果是1331 例2:初始資產(chǎn)是100萬,每年折舊10%,那么三年一共折舊了多少資產(chǎn)? data; a=daccdb(3,100,1,0.1); put a; run; 結(jié)果是27.1萬 計(jì)算公式為100-100(1-10%)=27.1,第七節(jié) 目錄函數(shù) cexis(entry,u):驗(yàn)證目錄是否存在,并返回一個(gè)值。 libname(lib

29、ref,sas-data-libref,engine,options):為數(shù)據(jù)庫分配一個(gè)名稱 libref(libref ):驗(yàn)證一個(gè)名稱是否已經(jīng)被分配給數(shù)據(jù)庫 第八節(jié) 數(shù)學(xué)函數(shù) airy(x):返回airy 函數(shù)的值。 dairy(x):返回airy函數(shù)的衍生值。 digamma(argument):返回digamma函數(shù)的值。, erf(argument):返回偏差函數(shù)的值。 exp(argument):指數(shù)函數(shù)。 gamma(argument):返回伽馬函數(shù)的值。 ibessel(nu,x,kode):返回修正的bessel函數(shù)值。 jbesse(nu,x):返回bessel函數(shù)值。 l

30、gamma(argument):返回伽馬函數(shù)值的對數(shù)。 log(argument):自然對數(shù)函數(shù)。 log2(argument):以2為底的對數(shù)函數(shù)。 log10(argument):以10為底的對數(shù)函數(shù)。, trigamma(argument):返回三元的伽馬函數(shù)值。 第九節(jié) 概率與密度函數(shù) cdf(dist,quantile,parm-1,parm-k):計(jì)算累計(jì)分布函數(shù)。 logpdf(dist,quantile,parm-1,parm-k):計(jì)算概率密度函數(shù)的對數(shù)值。 logsdf(dist,quantile,parm-1,parm-k):計(jì)算生存函數(shù)的對數(shù)值。 odf|pmf(dis

31、t,quantile,parm-1,parm-k):計(jì)算概率密度函數(shù)。 poisson(m,n):返回poisson分布的概率值。, probbeta(x,a,b):返回beta分布的概率值。 probbnml(p,n,m):返回二項(xiàng)式分布的概率值。 probchi(x,df,nc):返回卡方分布的概率值。 probf(x,ndf,ddf,nc):返回f分布的概率值。 probgam(x,a):返回伽馬分布的概率值。 probhypr(n,k,n,x,r):返回超幾何分布的概率值。 probnegb(p,n,m):返回負(fù)二項(xiàng)式分布的概率值。, probbnrm(x,y,r):標(biāo)準(zhǔn)的二元正態(tài)函數(shù)

32、。 probnor(x):標(biāo)準(zhǔn)的正態(tài)分布函數(shù)。 probt(x,df,nc):返回t分布的概率值。 sdf(dist,quantile,parm-1,parm-k):計(jì)算生存函數(shù)。 例如3求出標(biāo)準(zhǔn)正態(tài)函數(shù)在0處分布函數(shù)值,編制程序?qū)⒑瘮?shù)值輸出。 data; a=probnorm(0); put a ;run; 輸出的結(jié)果是0.5,這說明服從正態(tài)分布的變量取值小于0的可能性為0.5。,第十節(jié) 分位數(shù)函數(shù)。 betainv(p,a,b):返回分布的分位數(shù)。 cinv(p,df,nc):返回t分布的分位數(shù)。 finv(p,ndf,ddf,nc):返回f分布的分位數(shù)。 gaminv(p,a):返回伽馬

33、分布的分位數(shù)。 probit(p):返回標(biāo)準(zhǔn)正正態(tài)分布的分位數(shù)。 tinv(p,df,nc):返回t分布的分位數(shù)。 例如4求出標(biāo)準(zhǔn)正態(tài)函數(shù)取值0.5時(shí)對應(yīng)的分位數(shù)(由正態(tài)分布的性質(zhì)可只知結(jié)果應(yīng)該為0)。 data; a=probit(0.5);, put a ; run; 結(jié)果為-4.06379e-17,這已經(jīng)是一個(gè)非常接近于0的數(shù)了。 第十一節(jié) 隨機(jī)數(shù)函數(shù) normal(seed):返回服從正態(tài)分布的隨機(jī)數(shù)。 ranbin(seed,n,p):返回服從二項(xiàng)式分布的隨機(jī)數(shù)。 rancau(seed):返回服從柯西分布的隨機(jī)數(shù)。 rand(dist,parm-1):根據(jù)特定的分布 產(chǎn)生隨機(jī)數(shù),該

34、函數(shù)還處于實(shí)驗(yàn)階段。, ranexp(seed):產(chǎn)生服從指數(shù)分布的隨機(jī)數(shù)。 rangam (seed,a):產(chǎn)生服從伽馬分布的隨機(jī)數(shù)。 rannor(seed):產(chǎn)生服從正態(tài)分布的隨機(jī)數(shù)。 ranpoi(seed,m):產(chǎn)生服從poisson分布的隨機(jī)數(shù)。 rantbl(seed,p1,pi,pn):由列表的概率分布產(chǎn)生隨機(jī)數(shù)。 rantbi(seed,h):產(chǎn)生服從三角分布的隨機(jī)數(shù)。, ranuni(seed):產(chǎn)生服從均勻分布的隨機(jī)數(shù)。 uniform(seed):產(chǎn)生服從均勻分布的隨機(jī)數(shù)。 第十二節(jié) 樣本統(tǒng)計(jì)函數(shù) 使用這些函數(shù)可以計(jì)算各種樣本統(tǒng)計(jì)量,函數(shù)的具體表達(dá)式已經(jīng)在前面給出。 c

35、ss(argument,argument,):返回離差平方和。 cv(argument,argument,):返回變異系數(shù)。 kurtosis(argument,argument,):返回峰度,或者成為四階矩。, max(argument,argument,):返回最大值 min(argument,argument,):返回最小值 mean(argument,argument,):返回算術(shù)平均值 missing(numeric-expression|character-expression):檢驗(yàn)數(shù)據(jù)是否含有缺失值。 n(argument,argument,);返回樣本個(gè)數(shù),不包括缺失值。 n

36、miss(argument,argument,):返回樣本缺失值個(gè)數(shù)。, range(argument,argument,):返回最大值與最小值的差。 skewness(argument,argument,argument,):返回偏度。 std(argument,argument,):返回標(biāo)準(zhǔn)差。 stderr(argument,argument,):均值估計(jì)的標(biāo)準(zhǔn)差。 sum(argument,argument,):樣本的和。 uss(argument,argument,):平方和。 var(argument,argument,):方差。, 例如5 使用css函數(shù)計(jì)算一組數(shù)據(jù):1,3,5,

37、7,9的離差平方和。編輯如下程序可以完成計(jì)算并輸入離差平方和。 data; a=css(1,3,5,7,9); put a ; run; 計(jì)算出的離差平方和是40,它反映了數(shù)據(jù)的分散程度。 例如6 民生銀行(600016)的股票在連續(xù)5個(gè)交易日內(nèi)的上;收盤價(jià)分別為:,7月10日 7月11日 7月12日 7月13日 7月14日 12.04 12.10 12.18 12.07 12.15 計(jì)算價(jià)格的均值、標(biāo)準(zhǔn)差、偏度的程序如下。 data; a=mean(12.04、12.10、12.18、12.07、12.15); b=std(12.04、12.10、12.18、12.07、12.15); c=

38、skewness(12.04、12.10、12.18、12.07、2.15); put a b c;run; 計(jì)算結(jié)果中均值為12.108,標(biāo)準(zhǔn)差為0.05718,偏度為0.1727。均值說明了5天之內(nèi)價(jià)格波動(dòng)的中間位置,標(biāo)準(zhǔn)差說明了波動(dòng)范圍的大小,而偏度則體現(xiàn)了數(shù)據(jù)是否均勻分布。,第十三節(jié) 地區(qū)以及郵政編碼函數(shù) fipname(expression):將fips代碼轉(zhuǎn)換為大寫的州的名稱。 fipname(expression):將fips代碼轉(zhuǎn)換為大小寫混合的州的名稱。; fipstate(expression):將fips代碼轉(zhuǎn)換為兩個(gè)字的州的名稱。 stfips(postal-code)

39、:將州的郵政編碼轉(zhuǎn)換為州的fips代碼 stname(postal-code):將州的郵政編碼轉(zhuǎn)換大寫的州的名稱。 stname(postal-code):將州的郵政編碼轉(zhuǎn)換為大小寫混合的州的名稱。;, zipfips(zip-code):將郵政編碼轉(zhuǎn)換為fips州代碼 zipname(zip-code):將郵政編碼轉(zhuǎn)換為大寫的州的名稱。 zipnamel(zip-code):將郵政編碼轉(zhuǎn)換為大小寫混合的州的名稱 zipstate(zip-code):將郵政編碼轉(zhuǎn)換為州的郵政區(qū)號 例如7 找出代碼49對應(yīng)的州的名稱。 data; a=fipnamel(49); put a ;, put a ;

40、 run; 輸出結(jié)果為utsh,即:猶他州。 第十四節(jié) 三角函數(shù) arcos(argument):反余弦函數(shù)。 例如;arcos(0.5)=1.57 arcos(1)=0 arsin(argument):反正弦函數(shù)。 atan(argument):反正切函數(shù)。 cos(argument):余弦函數(shù)。 cosh(argument):雙曲余弦函數(shù) sin(argument):正弦函數(shù) sinh(argument):雙曲正弦函數(shù), tan(argument):正切函數(shù) tanh(argument):雙曲正弦函數(shù) 第十五節(jié) 截?cái)嗪瘮?shù) 截?cái)嗪瘮?shù)可以對數(shù)值進(jìn)行一些處理,包括取最接近的整數(shù)、四舍五入取近似值

41、、截剪數(shù)值等操作。 ceil(argument):返回大于或等于自變量的最小的整數(shù)。 例如:ceil(0.5)=0 ceil(2)=2 ceil(-0.5)=0 floor(argument):返回小于或等于自變量的最大的整數(shù)。 例如:floor(0.5)=0 floor(2)=2 floor(-0.5)=-1, fuzz(argument):當(dāng)自變量在1e-12內(nèi)時(shí)返回離它最近的整數(shù)。 int(argument):返回自變量的整數(shù)部分。 例如:int(0.5)=0 int(-2.61)=-2 round(argument):返回近似值,當(dāng)前的變量為真數(shù),后面的為近似單位。 例如:round(

42、1.234,1)=1 round(1.234,0.1)=1.2 round(1.234,0.01)=1.23 round(1.234,0.001)=1.234 trunc(argument):將數(shù)據(jù)截為特定的長度。,第十六節(jié) 變量信息函數(shù) getvarc(data-set-id,var-num):返回?cái)?shù)據(jù)集中的字符型變量的值。 getvarn(data-set-id,var-num):返回?cái)?shù)據(jù)集中的數(shù)值型變量的值。 varfmt(data-set-id,var-num):返回?cái)?shù)據(jù)集中的變量的值。 varinfmt(data-set-id,var-num):返回?cái)?shù)據(jù)集中的變量的輸入方式。 var

43、label(data-set-id,var-num):返回?cái)?shù)據(jù)集中的變量的標(biāo)簽。 varlen(data-set-id,var-num):返回?cái)?shù)據(jù)集中的變量的長度。, varname(data-set-id,var-num ):返回?cái)?shù)據(jù)集中的變量的名稱。 varnum(data-set-id,var-num ):返回變量在數(shù)據(jù)集所有變量中的位置。 varray(name):檢驗(yàn)一個(gè)變量是否為數(shù)組,并返回一個(gè)值。 varrayx(expression ):檢驗(yàn)一個(gè)表達(dá)式的值是否為數(shù)組并返回一個(gè)值。 vartype(data-set-id,var-num ):返回?cái)?shù)據(jù)集的變量的數(shù)據(jù)類型。 vfor

44、mat(var ):返回與變量相關(guān)的數(shù)據(jù)格式。, vformatd( var ) :返回與變量相關(guān)的十進(jìn)制的數(shù)據(jù)格式。 vformatn(var ):返回變量的格式名稱。 vformatnx(expression var ):返回表達(dá)式的結(jié)果的格式的名稱。 vformatw(var):返回給定變量的格式的寬度。 vformatwx(expression ):返回表達(dá)式的結(jié)果的格式寬度。 vformatx(expression):返回與表達(dá)式結(jié)果相關(guān)的格式。 vinarray(var):檢驗(yàn)給定的變量是否在一個(gè)數(shù)組中,并返回一個(gè)值。, vinarrayx(expression ):檢驗(yàn)給定的表達(dá)

45、式的值是否在數(shù)組中,并返回一個(gè)值。 vinformat(var):返回給定變量相關(guān)的輸入格式。 vinformatd(var ):返回給定變量的輸入格式的二進(jìn)制值。 vinformatdx(expression ):返回給定表達(dá)式結(jié)果的輸入格式的二進(jìn)制值。 vinformatn(var ):返回給定變量相關(guān)的輸入格式的名稱。 vinformatnx(expression ):返回給定表達(dá)式結(jié)果相關(guān)的輸入格式的名稱。, vinformatw(var ) :返回給定變量的輸入格式的寬度。 vinformatwx(expression):返回給定表達(dá)式結(jié)果相關(guān)的輸入格式寬度。 vinformatx(

46、expression ):返回給定表達(dá)式結(jié)果相關(guān)的輸入格式。 vlabel(var):返回給定變量的標(biāo)簽。 vlabelx(expression ):返回給定表達(dá)式的標(biāo)簽。 vlength(var ) :返回給頂變量分配的大小。 vlengthx(expression ):返回特定表達(dá)式結(jié)果的編輯時(shí)所占大小。 vname(var ):返回變量的名稱。, vnamex(expression ):將表達(dá)式的值作為一個(gè)變量的名稱。 vtype(var):返回給定變量的名稱。 vtypex(expression):給出特定表達(dá)式的值的類型。 第十七節(jié) 日期時(shí)間函數(shù) datdif(sdate,edate

47、,basis):返回兩個(gè)日期之間相距的天數(shù)。 date():返回當(dāng)前的日期作為sas日期數(shù)據(jù)。 datejul(julian-date):將julian日期格式轉(zhuǎn)換為sas日期格式。, datepart(datetime):從日期時(shí)間格式的數(shù)據(jù)中抽取日期。 datetime():返回當(dāng)前日期時(shí)間值。 day(date):從sas日期值得出是幾號。 dhmsdate,hour,minute,second):從日期、小時(shí)、分鐘、秒四個(gè)數(shù)值得到sas日期時(shí)間值。 hms(hour,minute,second):從小時(shí)、分鐘、秒三個(gè)值返回一個(gè)sas日期時(shí)間值。 hour():從sas時(shí)間或sas日期時(shí)

48、間中返回小時(shí)的數(shù)值。 intck(interval,form,to):返回給定時(shí)間段中的間隔的個(gè)數(shù)。,intnx(interval,start-form,increment):返回在一定時(shí)間間隔后的sas日期時(shí)間值。 juldate(date):將sas日期格式轉(zhuǎn)換julian為日期。 mdy(month,day,year):從月、日、年得到一個(gè)sas日期值。 minute(time|datetime):從時(shí)間值或日期時(shí)間值中抽取分鐘值。 month(date):從日期中得到月份。 qtr(date):從sas日期值得到對應(yīng)的季度。 secound(datetime)從sas時(shí)間值或sas日期

49、時(shí)間值中得到秒。,data; a=intck(day,19jun1999d,30jun2002d); put a; run; 結(jié)果為1107天。將間隔該為年、季度、月、小時(shí), 還可以計(jì)算相應(yīng)的間隔個(gè)數(shù)。,第七章 數(shù)組與矩陣 第一節(jié) 數(shù)組 一、數(shù)組的定義 array數(shù)組名(維數(shù))數(shù)組元素名列表 (初始值表) 例1:data test ; array price(2,3) c11 c12 c13 c21 c22 c23; run; 例2:data test ; array price(4) openp closep maxp minp (0,0,0,0); run;,例3:data test ;

50、array price(1:4) price1-price4 (0,0,0,0); run; 例4:data test ; array price(*) openp closep maxp minp (0,0,0,0); run; 定義包含字符型變量的數(shù)組 例5: data test ; array table(3) $ name code label (a,b,c); run;,定義包含字符型變量指定長度的數(shù)組 例6: data test ; array table(3) $ 8 name code label (a,b,c); run;,二、數(shù)組的使用 例1:data income; in

51、put income1-income4; array income(*) income1-income4; sum=0; do i=1 to dim(income); sum=sum+income(i); end; put income of this month is sum; cards; 12 12,12 12 ; run; 使用sum函數(shù)替代循環(huán)語句do結(jié)構(gòu)。 例1:data income; input income1-income4; array income(*) income1-income4; total=sum(of income1-income4); put income

52、of this month is total; cards; 12 12 12 12;run;,例:多維數(shù)組的運(yùn)用舉例 data income; input income1-income6; array income(2,3) income1-income6; totala=sum(of income1-income3); put income of this month is totala; totalb=sum(of income4-income6); put income of this month is totalb; cards; 13,13 13 12 12 12 ; run;,第

53、二節(jié) sas/iml模塊 一、sas/iml模塊的特點(diǎn) iml是inactive matrix language的縮寫。就是交互矩陣的語言的意思。 1、它是一個(gè)可編程的語言。 2、操作對象為矩陣。 3、有豐富的內(nèi)置運(yùn)算符。 4、運(yùn)算環(huán)境是交互的。 二、 sas/iml模塊 iml模塊的啟動(dòng)和退出 啟動(dòng) proc iml; 退出 quit;,三、定義矩陣 sas/iml模塊的操作對象是二維矩陣,且具有下列特點(diǎn): 1、矩陣可以是數(shù)值型的,也可以是字符型的。矩陣的數(shù)值型元素以雙精度格式存儲(chǔ)。矩陣的字符型元素必須是相同長度的字符串。 2、訪問矩陣要使用它的sas命名,名字長度最長為32個(gè)字符。 3、矩

54、陣的維數(shù)由行數(shù)和列數(shù)決定。 4、矩陣中可以含有缺失值,以一個(gè)點(diǎn)表示。 四、矩陣的定義 x=1 2 5 6 4 6;,例如:proc iml; x=1 2 5 6 4 6; print x; run; x 1 row 6 cols (numerics) 1 2 3 4 5 6 另外一種定義矩陣的方法: x=1 2,2 5,6 5; 例如: proc iml; x=1 2,2 5,6 5; print x; run;,x 3 row 2 cols (numerics) 1 2 2 5 6 5 對于字符型數(shù)據(jù)x=abc defg; 輸出結(jié)果為ABC DEFG 例如:proc iml; x=abc d

55、efg; print x; run; x 1 row 2 cols (numerics) ABC DEFG,如果想輸出小寫字符可定義為: x=abc defg; 例如:proc iml; x=abc defg ; print x; run; x 1 row 2 cols (numerics) abc defg 另外sas/iml還提供了重復(fù)元素的定義方式。重復(fù)運(yùn)算符的使用方法是在元素前加上一個(gè)中括號,里面輸入希望重復(fù)的次數(shù)。 例:answer=2 y,2 n; 等價(jià)于answer=yy, nn;,例如:proc iml; answer=2 y,2 n ; print answer; run;

56、answer 2 row 2 cols (numerics) y y n n 等價(jià)于answer=yy, nn; 例如: proc iml; answer=y y, n n ; print answer; run;,當(dāng)然也可以用這種方法來定義字符型矩陣。 t=abc1: abc5; t 1 row 5 cols (numerics) abc1 abc2 abc3 abc4 abc5 例如: proc iml; t= abc1 : abc5 ; print t; run; t 1 row 5 cols (numerics) abc1 abc2 abc3 abc4 abc5,還可以通過指標(biāo)向量的方

57、法來定義矩陣。 r=1:5定義了矩陣為: r 1 row 5 cols (numeric) 1 2 3 4 5 例如: proc iml; r=1:5; print r; run; r 1 row 5 cols (numerics) 1 2 3 4 5,如果希望向量里面的元素值每次增加不是1,而是其他的值。那么可以使用do函數(shù)。例如,如果希望定義一個(gè)向量,第一個(gè)元素值為-1,最后一個(gè)元素值為1,每次增加值為0.5,可定義如下 : do (起始值,終止值,增加值)例:r=do(-1,1,0.5); 定義的矩陣為: r 1 row 5 cols (numerics) -1 -0.5 0 0.5 1 例如:proc iml; r=do(-1,1,0.5); print r; run;,例: proc iml; r=do(-1,1,0.5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論