SAS教程所用版本為SAS知識資料for知識資料Windows知識資料6_第1頁
SAS教程所用版本為SAS知識資料for知識資料Windows知識資料6_第2頁
SAS教程所用版本為SAS知識資料for知識資料Windows知識資料6_第3頁
SAS教程所用版本為SAS知識資料for知識資料Windows知識資料6_第4頁
SAS教程所用版本為SAS知識資料for知識資料Windows知識資料6_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

千里之行,始于足下朽木易折,金石可鏤Word-可編輯SAS教程:所用版本為SASforWindows6.12版,向下兼容至6.04版。大部分來自華西醫(yī)科大學研究生用內(nèi)部教材《SAS上機實習指導》SAS第一課:SAS界面及基本操作概述SAS第二課:SAS/ASSIST視窗簡介SAS第三課:SAS程序基本語法入門SAS第四課:如何用SAS做統(tǒng)計圖SAS第五課:定量資料的統(tǒng)計描述和t、u檢驗SAS第六課:分類資料的統(tǒng)計描述與容易判斷SAS第七課:方差分析與協(xié)方差分析SAS第八課:直線回歸、直線相關(guān)與Logistic回歸(上)SAS第八課:直線回歸、直線相關(guān)與Logistic回歸(下)SAS第九課:非參數(shù)檢驗SAS第十課:隨訪資料的生存分析--非參數(shù)法與半?yún)?shù)Cox比例風險模型第一章Hello,SASforwindows!(醫(yī)學統(tǒng)計之星)歡迎進入SAS世界!十幾年來,SAS系統(tǒng)憑借其強大而完備的功能在統(tǒng)計軟件界獨占鰲頭。如今,操作系統(tǒng)已進入了Windows時代,SAS的Windows版本也已日漸成熟。因此我們將以其Windows6.12版本為主講述SAS系統(tǒng)的使用。在本章,我們將首先對SAS系統(tǒng)的界面及各部分的功能作簡要推薦,隨后以一個容易的SAS程序為例,講述一些常用的操作,為以后深入學習SAS打下基礎(chǔ)?!?.1SAS界面簡介1.1.1SAS的啟動

在進入Win95系統(tǒng)后,你在Windows桌面上將可以看到形如“”的,看上去象一個不怎么可口的草莓冰淇淋的SAS圖標。將鼠標移到圖標上(注重:是圖標上而不是圖標下方的說明文字上),雙擊該圖標,則很快浮上SAS的啟動畫面,等待4~7秒鐘,系統(tǒng)即徹低進入SAS環(huán)境。1.1.2SAS的圖形窗口界面進入SAS后,展示在大家面前的界面如下圖所示,在其中我們用藍色線條將各個部分分開了,請將鼠標在各位置停歇,會有相應(yīng)位置的名稱彈出。現(xiàn)將其主要部分分離描述如下:控制鈕在窗口的左上角,顯示為程序相應(yīng)的圖標,圖中則顯示為SAS圖標。用鼠標點一下控制鈕,則會彈出其所代表窗口的控制菜單。標題條顯示所在窗口內(nèi)容的名稱或者標題,圖中則顯示為程序名“SAS”。最小、最大/中間化、關(guān)閉按鈕形如“”,在窗口的右上方依次羅列,最左側(cè)為最小化按鈕,用鼠標單擊該按鈕,則系統(tǒng)窗口回縮到Windows狀態(tài)欄上成為一個圖標,再用鼠標單擊已經(jīng)最小化了的窗口圖標,則窗口恢復本來的大小;中間的一個按鈕,當該按鈕為單框時,為最大化按鈕,按一下該按鈕則窗口擴大到全屏幕,此時該按鈕變?yōu)殡p框的中間化按鈕形如“”,按下此按鈕則窗口又回到中間狀態(tài);最右側(cè)的按鈕為關(guān)閉按鈕,按下此按鈕時,則系統(tǒng)異常有禮貌的彈出一個對話框,咨詢你是否真的要退出SAS,用鼠標義無反顧地按下決定按鈕,我們就退出系統(tǒng),回到了Win95桌面(快回來,我還要繼續(xù)推薦呢?。2藛螚l又叫下拉菜單,是Windows程序的重要組成部分,利用它我們可以完成各種功能,從而輕巧的駕馭SAS系統(tǒng)。以“Edit”菜單為例,用鼠標點一下Edit項,該菜單項就會彈出其相應(yīng)的下拉菜單,請注重第三項“Cut”為灰色,表示該命令現(xiàn)在不可用,而倒數(shù)第2項“Checkspelling”右側(cè)有一個小黑三角,這表示該菜單項有自己的次級菜單,將鼠標移到該處,則次級下拉菜單自動彈出,如此反復,直至找到所需命令為止,然后將鼠標指向項目所需菜單項,單擊左鍵,則該命令開始運行??旖莨ぞ邫谑褂貌藛蚊钆紶栆苿雍脦状问髽?,比較棘手,因此程序設(shè)計者將常用命令作成快捷工具欄,以便大家使用。以最右側(cè)形如“”的按鈕為例,請將鼠標移到該按鈕上方靜止不動,很快Windows彈出該按鈕的提醒“Help”,表明該按鈕為協(xié)助按鈕,用鼠標點一下該按鈕,則可以打開協(xié)助視窗。命令框可以將它和DOS狀態(tài)下的命令行相對應(yīng)。SAS命令就由該命令框輸入。對于SAS系統(tǒng)的熟練使用者來說,使用系統(tǒng)最快捷的方式就是在命令框打入命令。以退出SAS為例,只要在命令框中點一下鼠標,使字符光標進入命令框(即其中浮上閃耀的光標),在其中輸入“bye”,然后回車,SAS系統(tǒng)就和我們徹底Bye-bye了。窗體這一部分就是除了其余7部分外的,占屏幕絕大部分的――部分。不幸的是,在這里無法看到,因為里面塞滿了其它東西。1)

PGM視窗即programeditor窗口,但稱做PGM視窗以增強奧秘感。偶爾該視窗內(nèi)可能自動給出程序行號,不用管它。PGM視窗也是一個Windows窗口,因此有自己的控制鈕、標題條等。注重和LOG視窗相比,它的標題條為深色,表示它為當前(子)窗口。除了這些以外,這里還浮上了一個新玩意――滾動條。水平/垂直滾動條形如“”,用來左右/前后移動窗口中的內(nèi)容,注重倘若現(xiàn)有內(nèi)容可以所有被顯示出來,則滾動條出現(xiàn)。滾動條的長度代表所有內(nèi)容的長度,中間的小塊叫滑塊,代表現(xiàn)在窗口內(nèi)容在所有內(nèi)容中占的比例和所在位置。單擊滑塊兩側(cè)的空白區(qū)域可使顯示內(nèi)容翻頁,單擊滾動條兩側(cè)的小黑三角則可使顯示內(nèi)容移動一行/列。我們也可以采用拖動滑塊的主意迅速找到想看的內(nèi)容。

2)

LOG視窗用于輸出程序在運行時的各種有關(guān)信息。主要有以下幾種內(nèi)容:程序行黑色,以系統(tǒng)給出的順序行號123...開始。忠實的記錄了執(zhí)行過的每一條語句。提示藍色,以NOTE開始。提供系統(tǒng)或程序運行的一些常規(guī)信息,大多數(shù)時候我們可以視而不見。警告綠色,以WARNING開始。普通在程序中含有系統(tǒng)可以自動更正的小錯誤時浮上,此時會提供錯誤序列號。但偶爾也提供內(nèi)存不足、軟件執(zhí)照即將到期等信息(使用正版軟件可真煩人)。浮上警告時普通應(yīng)注重閱讀,如程序有錯誤應(yīng)趕緊改正。錯誤紅色,以ERROR開始。SAS異常老實,你的程序輕微難懂一點它就大驚小怪地報錯,把問題全推給了你,弄得你不得不重來一遍(有些學生從這里受到啟發(fā),程序一有問題不自己動腦,趕緊就找?guī)Я暯處?,唉?。,F(xiàn)在在LOG視窗中惟獨兩條提醒信息,第一條是SAS研究所的版權(quán)聲明,第二條則標出了軟件版本號和軟件執(zhí)照擁有單位。其余三種信息我們以后會逐漸見到(可能有的學生還會看到其它信息,沒關(guān)系,只要不是紅色的就行)。因為SAS是一個典型的MDI(多文檔界面)程序,因此在其窗體內(nèi)可以有多個子窗口,但當前子窗口惟獨一個(即標題欄深色顯示的那個),我們所做的操作均是針對當前子窗口的,倘若要對其它子窗口舉行操作,則普通均需切換當前子窗口。SAS的子窗口有十幾個,但我們常用的惟獨四個:PGM視窗、LOG視窗、用于輸出統(tǒng)計結(jié)果的OUTPUT視窗和輸出繪圖結(jié)果的GRAPH視窗。狀態(tài)欄它在系統(tǒng)中又被分為兩部分。當前文件夾表明系統(tǒng)當前的所在位置。我們所做的讀、寫文件等操作均默認在該文件夾中舉行,在圖中當前文件夾為“C:\SAS”。消息欄對于系統(tǒng)在運行中發(fā)生的任何情況,在消息欄上都會顯示出相應(yīng)的信息。仍以剛才協(xié)助按鈕為例,當系統(tǒng)顯示協(xié)助按鈕的提醒時,在消息欄中也同時會顯示如下的信息“Commandsfordisplayinghelp”,它可以協(xié)助我們及時了解系統(tǒng)所處的狀態(tài)。雙擊“C:\SAS”處即可改變當前文件夾。Windows中的文件夾=DOS中的子目錄倘若你發(fā)出命令而沒有得到預料中的結(jié)果,一定要先看看消息欄,往往在這里會有出錯信息或警告?!?.2SAS界面操作入門1.2.1編寫您個人歷史上的第一個SAS程序在上一節(jié)我們推薦了SAS系統(tǒng)的界面,現(xiàn)在讓我們一起來編寫您個人歷史上的第一個SAS程序(請記住這個時刻,人類歷史將很可能由此而翻開新的一頁),首先,請在PGM視窗中鍵入以下程序:title"Whosaidwecan'tholdtheworld!";datatemp;

inputxy@@;

cards;

345678903567891023657745;prcprintrun;quit;可千萬不要敲錯呀!1.2.2程序的運行挑選下拉菜單LocalsRun或直接按下F3鍵,程序即被提交運行。大家可以看到視窗中不斷浮上各種信息,最后浮上了紅色的“Error”提醒,表明該程序有錯。下拉菜單會隨著當前窗口的改變而改變,倘若在Local菜單中沒有找到Run項,則請注重你的當前窗口是否為PGM視窗。1.2.3程序的修改唉!第一次放飛就碰到下雨,哪里錯了呢?為了了解程序執(zhí)行的詳細情況,我們拖動垂直滾動條瀏覽所有LOG視窗輸出,以得到詳細的錯誤提醒。LOG視窗的輸出如下:1title"Whosaidwecan'tholdtheworld!";2datatemp;3inputxy@@;4cards;NOTE:SASwenttoanewlinewhenINPUTstatementreachedpasttheendofaline.NOTE:ThedatasetWORK.TEMPhas6observationsand2variables.NOTE:TheDATAstatementused2.85seconds.6;7prcprint148run;2029quit;WARNING14-169:AssumingthesymbolPROCwasmisspelledasPRC.ERROR202-322:Theoptionorparameterisnotrecognized.NOTE:TheSASSystemstoppedprocessingthisstepbecauseoferrors.NOTE:ThePROCEDUREPRINTused0.28seconds.LOG視窗將運行的程序加上行號并逐行輸出,同時給出相應(yīng)的提醒,但在第七和第八行時,分離在它們下面畫了紅色的橫線,并標以相應(yīng)的數(shù)字。這表明SAS系統(tǒng)發(fā)現(xiàn)了錯誤,數(shù)字代表相應(yīng)的錯誤號,再往下有相應(yīng)錯誤的詳細解釋??梢钥吹剑合到y(tǒng)警告我們可能將“proc”拼成了“prc”;同時指出錯誤:“run”這個參數(shù)無法解釋。經(jīng)過檢查發(fā)現(xiàn),“print”后面少了一個分號,而SAS語句是以分號為語句結(jié)束符的,從而使系統(tǒng)認為7、8兩句是一個程序行,因此將“run”判為“print”的參數(shù),天然無法識別。這樣我們就找到了所有的錯誤。要將“prc”改為“proc”,并且在“print”后加一個分號。可是PGM視窗已經(jīng)空了,怎樣喚回已經(jīng)逝去了的程序呢?只要挑選Localsrecalltext或直接打“F4”鍵,就可以呼叫回上一次所提交的程序?,F(xiàn)在改正剛才的錯誤,再次提交運行該程序。這次LOG視窗信息表明程序已經(jīng)勝利運行,大多數(shù)時候OUTPUT視窗會自動彈出,倘若沒有彈出,則請注重系統(tǒng)窗口的左下方,可能OUTPUT視窗在此處縮小為最小化圖標,將該圖標最大化即可看到輸出結(jié)果。如何切換子窗口?挑選Globals下拉菜單,前四項依次是常用的四個窗口的列表,從其中挑選您所青睞的那個即可。1.2.4程序的存儲SAS不是一個字處理軟件,因此它的文件保護功能很弱。倘若你不保存文件,在退出系統(tǒng)時它會自作聰明地以為你因為對生活失去了信心而不想保存,從而不忍心提醒你,其結(jié)果則是――洗白(統(tǒng)計之星工作室注:這個詞是四川話特有的,意為徹底打敗,一場空等)?,F(xiàn)在我們已經(jīng)勝利的運行了這個程序,作為紀念,我們想將這個第一個程序存在磁盤上,則挑選菜單FileSave,系統(tǒng)彈出Save對話框如下:請注重存為類型框,將該框右側(cè)的小三角點一下,則會彈出類型列表如下。該列表給出了系統(tǒng)所指定的五種存盤文件類型,它們分離是:*.sasSAS程序文件。*.logLOG視窗輸出文件。*.lisOUTPUT視窗輸出文件。*.dat純文本格式的數(shù)據(jù)文件。*.rtf與WORD兼容的RTF格式文件。我們要存的文件類型顯然為*.sas類型,因此用鼠標挑選*.sas類型,然后再看保存位置框,它顯示當前文件夾位置為C:\SAS文件夾,而我們想將該文件存入C:\USER文件夾,因此要首先改變當前文件夾。先按向上一級按鈕“”,此時文件夾退回C盤盤根,在對話框主框體中尋找,可以看到文件夾列表中已經(jīng)浮上了USER文件夾(倘若沒看見,拖動滾動條的滑塊找一下),用鼠標雙擊,則進入該文件夾?,F(xiàn)在在文件名框中點一下,讓字符光標進入該框,鍵入文件名“Myfirstsasprogram”,再按保存按鈕,則該文件被存儲,系統(tǒng)退回到SAS界面。請注重消息欄顯示“NOTE:9line(s)writtentoexternalfile.”,表明文件已經(jīng)勝利存盤,而且PGM視窗中的標題也已經(jīng)改變?yōu)椤癙ROGRAMEDITOR-Myfirstsasprogram”。好了,以后PGM視窗里的任何改動就所有算在這個程序的頭上啦!1.2.5如何打開一個存儲的程序如何打開?異常容易,挑選菜單FileOpen,系統(tǒng)就會不顧一切地彈出Open對話框,在里面把你要的東西找到就行了。1.2.6文件的換名存儲該做的好象都做完了,不過好象還缺點什么――糟糕,這本教材的讀者不止我一個,他們豈不是將自己的程序都取這個名字?不可,我得給我的寶物程序換個名字,叫Taitanic如何?好,首先在PGM視窗中將原程序調(diào)出,然后選FileSaveas菜單,系統(tǒng)彈出和Save對話框徹低相同的Saveas對話框,象剛才一樣操作即可。(原著:張文彤)第二章SAS/ASSIST視窗簡介(醫(yī)學統(tǒng)計之星)上次更新日期:SAS是一個龐大的系統(tǒng),它由許多模塊組成,每個模塊分離完成不同功能。因為SAS最初是為專業(yè)統(tǒng)計人員設(shè)計的(這一點和SPSS恰恰相反),因此使用上以編程為主,初學者控制較為艱難?,F(xiàn)在,微機操作系統(tǒng)已經(jīng)進入了WINDOWS時代,而WINDOWS軟件的一個重要特點就是易學易用。要想在市場中繼續(xù)率先,SAS必須推出能體現(xiàn)WINDOWS軟件這一特色的新界面,SAS/ASSIST視窗就是這一努力的結(jié)果。固然它還有許多不足之處,但這一新界面使得初學者較快地學會使用SAS成為可能。本章將向大家推薦這一SAS的全新界面――SAS/ASSIST視窗。持久以來,對于統(tǒng)計軟件界面的易用性有兩種理論:一種認為統(tǒng)計軟件也是軟件,美觀易用的界面是它必備的功能;另一種理論則認為統(tǒng)計軟件有其異常用途,現(xiàn)在有許多統(tǒng)計主意實際上是在被濫用,而倘若任何人都可以通過容易方便(即“友好”)的界面來使用自己實際上并不了解的復雜統(tǒng)計模型,則等同于是在助長這一現(xiàn)象。這兩種理論都有一定的道理,看來SAS傾向于后者:ASSIST視窗只能提供較常用的統(tǒng)計功能,并且看上去也不怎么優(yōu)美。2.0.1ASSIST視窗的啟動ASSIST視窗的啟動主意也是比較多的。倘若從下拉菜單啟動,則請單擊Globals-->SAS/ASSIST,系統(tǒng)將開始啟動ASSIST視窗,幾秒鐘后進入ASSIST視窗主界面如下圖所示:ASSIST視窗的正上方為主菜單名(PrimaryMenu),下面的12個按鈕分離表示了在該視窗中可用的各種功能。常用的按鈕有:TUTORIAL按鈕

由此可以進入SAS提供的教學程序DATAMGMT按鈕

由此進入數(shù)據(jù)庫管理模塊GRAPHICS按鈕

由此進入繪圖模塊DATAANALYSIS按鈕

由此進入統(tǒng)計分析的有關(guān)模塊INDEX按鈕

提供所有可用命令的索引,倘若對菜單項的分類不清晰,可以從這里直接尋找所需功能EXIT按鈕

使我們可以退出ASSIST視窗我們主要推薦統(tǒng)計分析功能,對于其它功能,有興趣的學生可以自行試探。單擊DATAANALYSIS,則視窗進入二級菜單――數(shù)據(jù)分析菜單(DataAnalysisMenu),它的布局和主菜單界面基本一致,各種按鈕中常用的有:ELEMENTARY按鈕

提供基本的統(tǒng)計分析,如描述、相關(guān)、頻數(shù)表REGRESSION按鈕

提供線性回歸、Logstic回歸和時光序列回歸統(tǒng)計ANOVA按鈕

提供方差分析、非參數(shù)檢驗和t檢驗MULTIVARIATE按鈕

提供主成分分析等多元分析主意QUALITYCNTL按鈕

進入質(zhì)量控制模塊TIMESERIES按鈕

提供時光序列分析功能DATAMGMT按鈕

與主菜單的該按鈕相同,進入數(shù)據(jù)庫管理模塊INDEX按鈕

提供所有可用功能的索引GOBACK按鈕

退回主菜單HELP按鈕

啟動HELP視窗2.0.2ASSIST視窗的使用主意下面我們以一個例子來說明ASSIST視窗的使用主意?,F(xiàn)有數(shù)據(jù)集SASUSER.CLASS記錄了某班學生的年齡、身高和體重情況,我們要對該數(shù)據(jù)舉行容易的描述,則用ASSIST視窗的操作主意如下:①單擊數(shù)據(jù)分析菜單中的按鈕ELEMENTARY,則系統(tǒng)開啟一個新的ELEMETARY對話框如下圖所示:②請注重Summarystatistics是以深色顯示的,表示該項為默認值。用鼠標單擊該項目,則系統(tǒng)開啟下一個對話框――SummaryStatistics對話框如下圖所示:③SummaryStatistics對話框就是統(tǒng)計描述的主窗口,它由一些按鈕和復選框(Checkbox)組成,注重Activedataset:按鈕和Variables:按鈕的右側(cè)寫著“-REQUIRED-”,表示這兩項必須加以定義,否則程序沒有充足的信息來運行。首先定義所分析的數(shù)據(jù)集:單擊Activedataset:,則系統(tǒng)開啟新對話框如圖A所示:圖A④在該對話框中列出了可用的所有數(shù)據(jù)集名,從左到右依次為庫名、數(shù)據(jù)集名和數(shù)據(jù)集類型,拖動滑塊使SASUSER.CLASS數(shù)據(jù)集浮上在窗口中,用鼠標單擊數(shù)據(jù)庫名,因為當前數(shù)據(jù)集只能有一個,所以對話框自動關(guān)閉,退回SummaryStatistics對話框。倘若我們再次進入Activedataset對話框,則可見SASUSER.CLASS數(shù)據(jù)集的左側(cè)有一個星號,如圖B所示,這表示該數(shù)據(jù)集已被選中為當前數(shù)據(jù)集。倘若要改變挑選,直接單擊需要的數(shù)據(jù)集名,系統(tǒng)會自動替換。圖B⑤請注重右圖,Activedataset:按鈕的右側(cè)顯示為SASUSER.CLASS,表示當前分析數(shù)據(jù)集為SASUSER庫的數(shù)據(jù)集CLASS。現(xiàn)在我們可以定義分析變量了:單擊Variables:,系統(tǒng)開啟一個變量挑選對話框供我們挑選變量。⑥SASUSER.CLASS中可供分析的延續(xù)變量均顯示在變量窗口中,我們想對這三個變量都做描述,則依次單擊三個變量名,單擊后變量名的左側(cè)浮上一個星號,表示該變量被選中;再單擊一次則星號出現(xiàn),表示撤消挑選。將三個變量所有選中,如圖C所示。然后后按OK,該窗口關(guān)閉,系統(tǒng)退回上一級窗口。圖C⑦Variables按鈕右側(cè)顯示為AGE、HEIGHT、WEIGHT三個變量。現(xiàn)在我們輸入的信息已經(jīng)滿意了運行程序的最低要求,但是我們還想將結(jié)果按性別分開輸出,則單擊Class:,系統(tǒng)開啟變量挑選窗口如圖D所示。用鼠標單擊變量名“SEX”,再單擊OK,圖D此時變量描述窗口如下圖所示:⑧變量的挑選告一段落,現(xiàn)在開始挑選所需要的統(tǒng)計量。變量描述窗口的下方為一些復選框,右側(cè)為復選框名,左側(cè)為復選框的狀態(tài)。以SUM復選框為例,用鼠標單擊SUM左側(cè)的小方框,此時該方框內(nèi)打勾,表示該項被挑選;再點一下則復選框恢復原狀態(tài)。如此挑選所需的所有統(tǒng)計量,最后變量描述窗口的狀態(tài)如下圖所示:⑨現(xiàn)在是最后一步――運行程序了,挑選下拉菜單Locals-->Run,則系統(tǒng)開始執(zhí)行程序,最后OUTPUT視窗自動彈出,顯示總算的運行結(jié)果??赡苡械膶W生覺得神奇,為什么我總是說系統(tǒng)在執(zhí)行程序,剛才沒有寫程序???!事實上,SAS/ASSIST視窗是一個程序自動產(chǎn)生器,我們所做的每一個挑選都被寫成了程序,最后系統(tǒng)執(zhí)行這個自動產(chǎn)生的程序來向我們交差。倘若想看所產(chǎn)生的程序,則挑選下拉菜單LocalsView-->Sourse。以剛才的挑選為例,系統(tǒng)產(chǎn)生的程序其主要部分如下:procmeansdata=SASUSER.CLASSvardef=DFMINMAXRANGESUMMEANVARSTDSTDERRCV;varAGEHEIGHTWEIGHT;classSEX;;run;通過這個例子,我們控制了使用SAS/ASSIST視窗時將會碰到的窗口界面的用法。為了使大家在學習SAS時能打下較堅實的基礎(chǔ),本書依然以講述SAS語言為主線。但是在例題的解中,我們將盡可能給出程序和ASSIST視窗兩種操作主意。學生們可按照詳細情況自行挑選使用哪種解法。第三章SAS程序初步從本質(zhì)上講,SAS是一種完美的第四代計算機語言。因此要真正控制它,我們依然要拋開其樸素的外表,從學習它的核心――SAS程序開始?,F(xiàn)在,讓我們將SAS看成一個計算能力極強的統(tǒng)計學白癡(之所以這樣說,是因為它計算能力固然極強,卻只能幫你計算而不能提出自己的實驗設(shè)計計劃或研究方向來),而你有一個異常小的關(guān)于數(shù)據(jù)分析的問題要請它輔助。天然你要開口提出哀求,無論措辭是委婉婉轉(zhuǎn)還是直截了當,你的大實話無非是“喂,老兄,我有這樣一些數(shù)據(jù),我想做這樣一種統(tǒng)計分析,您能幫我嗎?”。他疾馳檢查您的要求,在認為合情、合理并且合法后,就開始舉行計算,并且在很短的時光內(nèi)給出計算結(jié)果。好的,計算機語言就是我們和計算機對話時所用的語言。和以上人類對話的例子相對照,“我有這樣一些數(shù)據(jù)”對應(yīng)SAS程序中的數(shù)據(jù)步;而“我想做這樣一些統(tǒng)計處理”對應(yīng)SAS程序中的程序步;最后的那一句哀求“您能幫我嗎”則對應(yīng)了Submit命令。在默認情況下,運行結(jié)果或者出錯信息將自動給出(固然你也可以強制不讓它輸出)。此外,還有一些系統(tǒng)環(huán)境控制語句,如Libname、title等。SAS程序就是由一個或多個數(shù)據(jù)步和/或程序步加上一些亂七八糟的環(huán)境控制語句組成。在本章中,我們將首先學習SAS對數(shù)據(jù)的管理方式,然后會了解到什么是數(shù)據(jù)步和程序步,最后則推薦一下SAS語言中結(jié)構(gòu)化語句的語法?!?.1SAS系統(tǒng)對數(shù)據(jù)的管理在SAS系統(tǒng)中惟獨SAS數(shù)據(jù)集才干被SAS過程直接調(diào)用,SAS數(shù)據(jù)集的結(jié)構(gòu)和DBF數(shù)據(jù)庫徹低相同,因此無須多講。而SAS數(shù)據(jù)集存儲在被稱為SAS數(shù)據(jù)庫的文件擴散,在PC系統(tǒng)中,SAS數(shù)據(jù)庫與某一個文件夾相對應(yīng),我們要為每一個數(shù)據(jù)庫指定一個庫標記(庫名)來識別該庫,使用Libname命令可以指定庫標記。它的普通格式如下:Libname庫標記’文件夾位置’選項;例如要指定目錄“C:\USER”為庫標記A,可以在視窗中提交如下語句:libnamea’c:\user’;數(shù)據(jù)庫可分為永遠庫和暫時庫兩種。暫時庫惟獨1個,名為WORK,它在每次啟動SAS系統(tǒng)后自動生成,關(guān)閉SAS時庫中的數(shù)據(jù)集被自動刪除;永遠庫可有多個,用戶可以使用Libname語句指定永遠庫的庫標記,永遠庫中的所有文件都將被保留。但庫標記仍是暫時的,每次啟動SAS系統(tǒng)后都要重新指定。不過為了方便用戶,SAS在每次啟動時都會自動指定兩個庫標記:SASUSER:指明為永遠庫,即庫中的數(shù)據(jù)集被保存起來,以便下次啟動系統(tǒng)時使用。WORK:指明為暫時庫,對于開辟和檢查新程序異常實用,但每次SAS運行結(jié)束后WORK庫中的所有文件將被刪除。在程序中引用該庫中的數(shù)據(jù)集可以省略庫標記,即它被認為是缺省的數(shù)據(jù)庫。SAS數(shù)據(jù)庫對應(yīng)文件夾,如SASUSER對應(yīng)c:\sas\sasuser,WORK對應(yīng)c:\sas\saswork,SAS數(shù)據(jù)集則對應(yīng)文件,每個數(shù)據(jù)集實際上是在硬盤的相應(yīng)文件夾內(nèi)產(chǎn)生一個文件名為數(shù)據(jù)集名,而擴展名為.sd2的文件,因此倘若你勝利的建立了一個數(shù)據(jù)集,理論上你就可以反復使用它直到硬盤報廢。每一個數(shù)據(jù)集都有一個兩級名,第一級是庫標記,第二級是數(shù)據(jù)集名,中間用“.”隔開,在程序中通過指定兩級名來識別文件。文件兩級名的普通形式如下:庫標記.數(shù)據(jù)集名如在a庫中的數(shù)據(jù)集abc可以這樣來引用:a.abc?!?.2SAS程序的數(shù)據(jù)步3.2.1決定知識SAS程序的語句從上一個語句結(jié)束處開始,以一個分號結(jié)束,可占多行。3.2.2數(shù)據(jù)步以DATA語句開始,用于創(chuàng)建和處理數(shù)據(jù)集。其中最常用的語句有:DATA語句它的主要功能是:標志數(shù)據(jù)步的開始。命名將要創(chuàng)建的SAS數(shù)據(jù)集。DATA語句的普通形式如下:DATA數(shù)據(jù)集名;INFILE語句用于從外部文件讀入數(shù)據(jù),必須浮上在INPUT語句之前。它的主要功能是:決定一個包含原始數(shù)據(jù)的外部文本文件。INFILE語句的格式如下:INFILE’外部文件的所在位置及名稱’選項;CARDS語句用于直接輸入數(shù)據(jù),標志著數(shù)據(jù)塊的開始。格式如下:CARDS;數(shù)據(jù)塊;

INPUT語句用于向系統(tǒng)表明如何讀入每一條記錄。它的主要功能有:讀入由語句指定的數(shù)據(jù)列。為相應(yīng)的數(shù)據(jù)域定義變量名。決定變量的讀入模式。INPUT語句的格式如下:INPUT變量名[變量類型起止列數(shù)]...;方括號表示其中的內(nèi)容為可選,倘若不輸入,系統(tǒng)會以默認值代替。3.2.3數(shù)據(jù)的兩種輸入方式上面我們學到了INFILE語句和CARDS語句,它們分離對應(yīng)了兩種數(shù)據(jù)輸入的方式:【直接輸入方式】實際上我們在第一章已經(jīng)用到了直接輸入方式,仍以那個程序為例,其中的數(shù)據(jù)步如下:datatemp;命名將要建立的數(shù)據(jù)集為work.tempinputxy@@;要輸入的變量為x、y,并且延續(xù)輸入cards;直接輸入數(shù)據(jù),數(shù)據(jù)塊開始345678903567891023657745數(shù)據(jù)塊;數(shù)據(jù)塊結(jié)束變量y后面的@@表示數(shù)據(jù)可以在一行里延續(xù)讀入,SAS默認按列來分隔變量,可是這里惟獨兩個變量,輸成兩列數(shù)據(jù)太長,因此加上兩個@@,SAS見到這個符號,在按變量名依次讀取完數(shù)據(jù)后,不是跳到下一行,而是繼續(xù)在該行讀數(shù)據(jù),直至本行結(jié)束或到達分號為止。倘若你對這段講述無法理解,請去掉兩個@@,重新運行一遍程序,看看LOG視窗中的提醒都有些什么變化?!就獠课募x入方式】倘若剛才的數(shù)據(jù)已經(jīng)事先輸好,在硬盤上的“C:\USER”文件夾內(nèi)存為temp.dat文件,該文件內(nèi)容如下(純文本):345678903567891023657745則我們可以輸入程序如下:datatemp;命名將要建立的數(shù)據(jù)集為work.tempInfile’c:\user\temp.dat’;指定外部數(shù)據(jù)文本文件名inputxy@@;要輸入的變量為x、y,并且延續(xù)輸入Run;數(shù)據(jù)步結(jié)束,以上語句可以執(zhí)行了數(shù)據(jù)步以DATA語句開始,那么在哪里結(jié)束?在碰到run語句或另一個數(shù)據(jù)步/程序步時就結(jié)束了。為什么程序的最后都要加一句run?這個問題還不太好解釋,每一個程序應(yīng)至少在最后有一個run語句,表明前面的所有語句可以提交運行了,倘若沒有這一句,SAS會以為你后面還有語句要輸入,從而將一些非趕緊執(zhí)行的語句保留在編譯緩沖區(qū)中,等待后續(xù)命令發(fā)出后一起執(zhí)行,這偶爾會把事情弄得很糟。出于減少棘手的需要,建議大家養(yǎng)成在每一個數(shù)據(jù)步或程序步后都寫上一句run的習慣。Submit命令和run語句有什么區(qū)別?這是初學者最愛問的一個問題,也同樣是一個難以回答的問題。容易地講,run是程序語句,可在程序中多次浮上,它表示前面的程序段已經(jīng)所有寫完,可以作為一個或幾個整體提交運行了,而Submit則是SAS命令,只在最后程序運行的時候發(fā)出,表示將程序正式提交運行。倘若你還不明了,那么我還是來給你打個比喻,run語句是你對SAS說“我想讓您做的就是這些了”,而Submit命令就是對SAS說“現(xiàn)在開始為我做這些事,好嗎”,明了了嗎?【讀入其他格式的數(shù)據(jù)文件】除了以上的兩種通過數(shù)據(jù)步創(chuàng)建數(shù)據(jù)集的主意,SAS還提供了一些其他的方式可以用來讀入其他格式的數(shù)據(jù)文件。6.11版本以上的SAS可以利用FILE菜單上的import命令將其他格式的數(shù)據(jù)文件導入SAS系統(tǒng),創(chuàng)建SAS自己的數(shù)據(jù)集??梢詫氲臄?shù)據(jù)文件格式有:dBase數(shù)據(jù)庫,EXCEL工作表,LOTUS的數(shù)據(jù)庫,純文本的數(shù)據(jù)文件等。導入的操作徹低是對話式的,界面友好,簡便實用。以下容易講述導入的步驟,倘若例1.1的數(shù)據(jù)輸成一個dBASEIII數(shù)據(jù)庫文件temp.dbf,已經(jīng)存放在"c:\user"下,要導入成數(shù)據(jù)集work.li1_1。挑選FILE菜單上的import,彈出一個對話框,按照向?qū)У奶嵝雅e行下去。

1.挑選導入的數(shù)據(jù)格式,從下拉式菜單上挑選DBF格式,單擊NEXT按鈕。

2.給出數(shù)據(jù)文件的位置和文件名,在對話框中鍵入C:\USER\temp.DBF,或點BROWSE直接從上面挑選文件,選好后單擊NEXT按鈕。

3.挑選導入的目的地,即指定要創(chuàng)建的數(shù)據(jù)集的名字和存放的數(shù)據(jù)庫名,先在左面的對話框挑選數(shù)據(jù)庫名WORK(暫時庫),在右面的對話框鍵入數(shù)據(jù)集的名字li1_1,此名可隨意起,少于8個字符,挑選完后,單擊FINISH按鈕,就完成了此次操作。

這時已經(jīng)建好了一個數(shù)據(jù)集,名為WORK.li1_1,與我們前面建立的數(shù)據(jù)集徹低一致。§3.3SAS程序的程序步通俗的講,SAS的程序步(有的書中也稱過程或過程步)就是已經(jīng)編好了的用于數(shù)據(jù)收拾和統(tǒng)計的計算機程序,你只需要調(diào)用它們就是了。程序步總是用一個PROC語句開始,后面緊跟著程序步名,用以區(qū)別不同的程序步。以下是一些常用的程序步的名稱及功能。程序步名功能SORT將指定的數(shù)據(jù)集按指定變量排序PRINT將數(shù)據(jù)擴散的數(shù)據(jù)列表輸出MEANS對指定的數(shù)值變量舉行容易的統(tǒng)計描述FREQ對指定的分類變量舉行容易的統(tǒng)計描述TTEST對指定的變量做t檢驗ANOVA對指定的變量做方差分析NPAR1WAY對指定的變量做非參數(shù)檢驗REG對指定的變量做回歸分析CORR對指定的變量做相關(guān)分析CHART繪出低分辨率的統(tǒng)計圖PROC就是程序(procedure)的縮寫,而程序步的名字大都是其功能相對應(yīng)的單詞或詞組的縮寫??梢奡AS的許多功能就是通過程序步來體現(xiàn)的,可如此多的種類也使我們難以總結(jié)出一個程序步的通式來。不過仍可大致給出如下結(jié)構(gòu):PROC過程名[DATA=數(shù)據(jù)集名][選項];

該過程的專用語句描述;

[VAR變量序列;]

[WHERE條件表達式...;]

[BY變量序列;]Run;方括號里的語句均可以省略,在這時該過程按最通常的情況來處理,即:處理最新建立的SAS數(shù)據(jù)集。處理所有的變量(或?qū)σ粋€計算過程來說處理所有數(shù)值變量)。一次處理囫圇數(shù)據(jù)集而不是某個子集。我們在第一章中用到的PRINT程序步就是采用的這種默認方式。但偶爾我們的要求超出了默認方式所提供的范圍,這時就要動用方括號里的秘密武器了。DATA參數(shù)指明所需處理的數(shù)據(jù)集名,請注重在這里它是一個參數(shù)而不是語句。VAR語句倘若只想分析某一個或幾個特定的變量,則可用VAR語句指定它們。例如只想顯示變量x的列表,則PRINT過程如下:Procprint;

Varx;Run;倘若想顯示x和y兩個變量,則將VAR語句改為如下形式即可:varxy;固然,也可以將VAR語句刪除,結(jié)果相同。Where語句倘若你想處理的不是囫圇數(shù)據(jù)集而只是其中符合某種條件的子集,那么WHERE語句將會異常實用,如上例中我們只想顯示大于50的x變量的值,則在PRINT過程中參加where語句如下:Wherex>50;倘若條件變?yōu)閤、y兩個變量的值都要大于50,則where語句改為:wherex>50andy>50;SAS語言中常用的邏輯表達符號有and(和)、or(或)、xor(異或)、ne(不等)等。By語句倘若你需要分組處理數(shù)據(jù),例如要按性別分組輸出統(tǒng)計結(jié)果,你有兩種挑選,一是用不同的where語句將同一個程序步反復寫幾遍;另一種顯然更酷的主意就是采用by語句。如上例我們想按不同的y值輸出x值,則參加by語句如下:Byy;使用BY語句要求數(shù)據(jù)集已經(jīng)按BY語句中指定的變量排序。倘若沒有排序,則程序無法準確運行??梢杂肧ORT過程來排序,語法結(jié)構(gòu)如下:PROCSORTDATA=數(shù)據(jù)集名;

BY變量名列;RUN;§3.4結(jié)構(gòu)化語句簡介每一種結(jié)構(gòu)化語言編寫的程序都由順序、分支、循環(huán)三種結(jié)構(gòu)構(gòu)成,SAS語言也不例外。在這里簡要推薦一下分支和循環(huán)語句的語法。這些語句均可直接在數(shù)據(jù)步和程序步中使用,適當?shù)厥褂盟鼈兛梢源蟠蠛喕覀兊墓ぷ鳌?.4.1分支(條件)語句【語法格式】語法格式如下:IF條件THEN

程序塊;ELSE

程序塊;可見其語法和FOXBASE語言十分相似,只是前面多了THEN,結(jié)尾沒有ENDIF,可以將兩者相比較來理解。其中程序塊倘若惟獨一句,則可直接寫出,否則應(yīng)以DO開始,以END結(jié)束?!緫?yīng)用實例】例3.1在產(chǎn)生數(shù)據(jù)集temp的同時為其增強變量class,當x>50時class=1,否則class=2。解:程序如下:datatemp;數(shù)據(jù)步開始,定義要建立的數(shù)據(jù)集為WORK庫的TEMP

inputxy@@;要輸入的變量為X和Y,并且采用數(shù)據(jù)延續(xù)讀入方式

ifx>50thenclass=1;建立新變量CLASS,倘若X>50,則CLASS=1

elseclass=2;否則,CLASS=2cards;數(shù)據(jù)塊開始345678903567891023657745數(shù)據(jù)塊;數(shù)據(jù)塊結(jié)束procprint;列表輸出數(shù)據(jù)擴散的數(shù)據(jù),檢查有無錯誤run;程序結(jié)束,開始運行以上程序以上程序在書寫時采用了縮進格式,使程序的結(jié)構(gòu)更清晰。固然大家可以左對齊寫完所有的語句,但這樣書寫的程序在較長時難以閱讀。為什么可以這樣寫?在這里有須要解釋一下數(shù)據(jù)步的執(zhí)行過程,input語句按變量順序?qū)?shù)據(jù)讀入內(nèi)存緩沖區(qū),直至每一個變量都有值相對應(yīng)。然后數(shù)據(jù)步繼續(xù)向下執(zhí)行,從而其它語句可以修改內(nèi)存緩沖區(qū),如修改值、增強變量等,在執(zhí)行到數(shù)據(jù)步結(jié)束后,程序又回到input語句處繼續(xù)執(zhí)行,直到數(shù)據(jù)讀完為止。現(xiàn)在再看看這個程序,大家可以理解它了吧!3.4.2循環(huán)語句【語法格式】語法格式如下:DO起始條件TO終止條件;

程序塊;END;該語句主要用于建立數(shù)據(jù)集。【應(yīng)用實例】例3.2在產(chǎn)生數(shù)據(jù)集temp的同時為其增強變量class,取值依次為1、2。解:程序如下:Datatemp;數(shù)據(jù)步開始,定義要建立的數(shù)據(jù)集為WORK庫的TEMP

doclass=1to2;循環(huán)開始,循環(huán)控制變量為CLASS,取值從1到2

inputxy@@;要輸入的變量為X和Y,并且采用數(shù)據(jù)延續(xù)讀入方式

output;用OUTPUT語句將循環(huán)控制變量寫入數(shù)據(jù)擴散

end;循環(huán)結(jié)束cards;數(shù)據(jù)塊開始345678903567891023657745數(shù)據(jù)塊;數(shù)據(jù)塊結(jié)束run;程序結(jié)束,開始運行以上程序注重在數(shù)據(jù)步中,我們不需要用語句改變循環(huán)變量的大小,系統(tǒng)會自動改變?,F(xiàn)在,SAS語言的基本知識算是推薦完了。在理論上,你現(xiàn)在可以坐在計算機前,自立編寫程序以做出你的統(tǒng)計作業(yè)或者是向SAS公司發(fā)射核導彈。但為了使你能盡可能地少走彎路(我指的是做統(tǒng)計作業(yè)而不是后者),在以后的各章中我們將重點推薦一些常用的程序步,并且在須要的時候推薦一些較為深入的內(nèi)容。Areyouready?Let’sgo!(原著:張文彤田曉燕)第四章統(tǒng)計圖(醫(yī)學統(tǒng)計之星)上次更新日期:統(tǒng)計圖是統(tǒng)計描述的重要工具,它可以直觀的反映出事物間的數(shù)量關(guān)系。因此,許多統(tǒng)計軟件均提供了強大的統(tǒng)計做圖功能。SAS的許多程序步,如Univariate過程等,也附有相應(yīng)的繪圖功能,這些我們擬在相關(guān)章節(jié)中講述。本章將向大家推薦兩個專門用于繪圖的程序步――GCHART過程和GPLOT過程。前者用于繪制各種常用的統(tǒng)計圖,而后者則用于繪制散點圖。在早期的DOS版本中,SAS只提供低分辨率圖形(即用鍵盤字符模擬輸出的圖形)。而在WINDOWS時代,美觀優(yōu)美也成為了軟件最重要的性能指標之一,因此SAS公司推出了高分辨率圖形。固然比起EXCEL等軟件來,它的高分辨率圖形依然不那么令人愜意,但至少已經(jīng)跟上了時代的潮流。高分辨率圖形在專門的GRAPH視窗中輸出,而低分辨率圖形在OUTPUT視窗中一同輸出。只要將繪圖過程名中的字母G去掉,做出的就是低分辨率圖形,你可以比較一下兩種圖形的“天壤之別”?!?.1GCHART過程Gchart過程可以繪制水平/豎直條圖(直方圖)、立體直方圖、餅圖和星狀圖。我們可以用這些圖來了解單個變量的分布或者多個變量之間的關(guān)系。4.1.1語法格式PROCGCHART[DATA=<數(shù)據(jù)集名>[選項]];指定要分析的數(shù)據(jù)集名及一些選項HBAR<變量名列>/[選項];繪出條形圖VBAR<變量名列>/[選項];繪出水平條形圖BLOCK<變量名列>/[選項];繪出三維直方圖PIE<變量名列>/[選項];繪出餅圖STAR<變量名列>/[選項];繪出星狀圖AXISn[選項];控制坐標軸的形狀和色彩BY<變量名列>;按該變量取值分層繪制,要求數(shù)據(jù)集已按該變量排序方括號中的為可選項,倘若不寫,系統(tǒng)會以默認值代替或者忽略該功能;而尖括號中的為必選項,表示倘若寫了該語句,則必須提供尖括號中的信息,否則可能出錯。如[DATA=<數(shù)據(jù)集名>],表示你可以不寫這一項,此時系統(tǒng)默認處理的是最新建立的數(shù)據(jù)集;而倘若寫了DATA=這一項,你就必須指定一個數(shù)據(jù)集名,不然SAS跟你沒完。4.1.2語法說明事實上,繪圖程序步中的選項極為繁雜,倘若合理地使用這些選項可以做出異常優(yōu)美的統(tǒng)計圖來。但這些選項也給大家的學習帶來很大的不便,因此在這里我們只簡要推薦幾個常用的繪圖語句中的選項?!纠L圖語句選項】MISSING指定繪圖時要將變量的缺失值也包括在內(nèi)。TYPE=做圖類型關(guān)鍵字指定要做圖的類型,即圖中條塊代表的含義:缺省值是頻數(shù)(FREQ);倘若指定了挑選項SUMVAR,則缺省值為總和(SUM)。可選的關(guān)鍵字有:FREQ要求按指定變量的頻數(shù)做圖。PERCENT要求按在橫軸刻度表示范圍內(nèi)浮上的頻數(shù)占總數(shù)的百分比做圖。CFREQ按累計頻數(shù)做圖。CPERCENT按累計百分比做圖。SUM只能與SUMVAR選項同時使用,要求圖中的每一條代表:變量在橫軸表示的取值范圍內(nèi)時,SUMVAR指定變量的總和。MEAN只能與SUMVAR選項同時使用,要求圖中的每一條代表:變量在橫軸表示的取值范圍內(nèi)時,SUMVAR指定變量的均數(shù)。SUMVAR=求和變量指定使用TYPE=SUM或MEAN時,用于求總和、均值的變量。LEVAL=n倘若繪圖變量是延續(xù)變量,用該選項產(chǎn)生有N個組段的圖形。GROUP=分組變量要求產(chǎn)生以分組變量的值分組的并排圖。SUBGROUP=亞組變量要求每個圖形內(nèi)部再按亞組變量的值分塊。CAXIS=色彩指定坐標軸的色彩。CTEXT=色彩指定坐標軸文本的色彩。4.1.3應(yīng)用實例例4.1繪制《衛(wèi)生統(tǒng)計學》第三版習題1.1的直方圖,數(shù)據(jù)存在c:\user\wt1_1.dat中。解:程序如下:libnamea'c:\user';

指定c:\user文件夾為數(shù)據(jù)庫adataa.wt1_1;數(shù)據(jù)步開始,指定要建立的數(shù)據(jù)集為a庫的wt1_1infile'c:\user\wt1_1.dat';采用外部文件讀入方式,文件名為c:\user\WT1_1.datinputx@@;

輸入的變量為x,采用延續(xù)輸入的格式procgchartdata=a.wt1_1;調(diào)用繪圖程序步gchartvbarx/levels=10;繪出直方圖,用于繪圖的變量為x,分為10組run;

開始運行以上程序事實上ASSIST視窗的輸出圖形是彩色的,和我們用程序做出的有些區(qū)別,這是因為ASSIST視窗自動提交了一些繪圖環(huán)境語句,對輸出圖形作了修飾的緣故。實際上libname語句只需要運行一次就可以了,但在開始的幾道例題里我們都寫上了這一句,讓大家逐步養(yǎng)成啟動SAS后就運行這一句的習慣。請將C:\USER文件夾指定為A庫,以后我們實習的數(shù)據(jù)集均放在該庫中?!?.2GPLOT過程GPLOT過程用于繪出散點圖。圖中的橫、縱坐標分離代表兩個變量。4.2.1語法格式PROCGPLOT[DATA=<數(shù)據(jù)集名>[選項]];PLOT<縱坐標變量*橫坐標變量[=分層變量名]...>/[選項];指定繪圖變量和選項PLOT2<縱坐標變量*橫坐標變量[=分層變量名]...>/[選項];在原圖基礎(chǔ)上重疊繪制第二幅散點圖SYMBOLn[選項]定義符號、添加趨勢線、定義點和線的色彩BY<變量名列>;按該變量取值分層繪制,要求數(shù)據(jù)集已按該變量排序?qū)嶋H上,SYMBOL語句中定義的選項為系統(tǒng)環(huán)境控制選項,這意味著一次定義,終生使用。除非重新定義,否則以后的輸出圖形都將會是第一個圖形的“孿生兄弟”。在這里SYMBOL后面緊跟了一個n,表示隨意天然數(shù)。因為PLOT語句可以在同一坐標系內(nèi)重疊繪制許多層圖,而這個數(shù)字就表示SYMBOL語句是控制的哪一層圖。4.2.2語法說明【GPLOT過程的選項】UNIFORM要求用BY語句分組打印的散點圖的坐標刻度相同,便于比較。VTOH=數(shù)值指定縱橫坐標的比例?!綪LOT語句說明】分層變量表示所做的散點圖按指定變量的取值分層,默認按不同色彩來區(qū)別。語句選項OVERLAY同一語句做的圖重疊在同一個坐標系中顯示。HAXIS=數(shù)值定義橫坐標的刻度。VAXIS=數(shù)值定義縱坐標的刻度。CAXIS=色彩定義坐標軸的色彩。CTEXT=色彩定義坐標軸文本的色彩。【SYMBOL語句選項】VALUE=符號可用的符號及相應(yīng)名稱有:+PLUS★STAR■SQUARE

◆DIAMOND▲TRIANGLEI=連線方式①JOIN用直線銜接。②SPLINE用光潔的曲線銜接。NEEDLE向橫坐標畫垂線。RL添加回歸直線。WIDTH=寬度定義數(shù)據(jù)點和連線的寬度。COLOR=色彩定義數(shù)據(jù)點和連線的色彩。4.2.3應(yīng)用實例例4.210名20歲男青年身高(cm)與前臂長(cm)如下,請繪出散點圖(衛(wèi)統(tǒng)p2365.2題)。身高170173160155173168178183180165前臂長45424441475047464943解:程序如下(注重程序中對輸出圖形作了些修飾)。Libnamea’c:\user’;

指定c:\user文件夾為數(shù)據(jù)庫adataa.wt5_2;數(shù)據(jù)步開始,指定要建立的數(shù)據(jù)集為a庫的wt5_2inputxy@@;輸入的變量為x和y,采用延續(xù)輸入的格式cards;數(shù)據(jù)塊開始1704517342160441554117341數(shù)據(jù)塊1885017847183461804916543數(shù)據(jù)塊;數(shù)據(jù)塊結(jié)束procgplotdata=a.wt5_2;調(diào)用繪圖程序步gplotploty*x/ctext=blue;繪出散點圖,用于繪圖的變量為x,y,坐標軸文本色彩為藍色symbolvalue=starcolor=pinkwidth=2;

定義散點標記為粉紅色星號,大小為2run;

開始運行以上程序繪制高分辨率統(tǒng)計圖異常耗費系統(tǒng)資源,因此SAS在執(zhí)行作圖語句時實際上是將這些語句存入程序緩沖區(qū),當用戶打開GRAPH視窗看結(jié)果時才正式執(zhí)行,從而繪出所需的統(tǒng)計圖。倘若用戶沒有看所繪制的圖形,則繪圖語句就向來留在緩沖區(qū)內(nèi),此時用戶再執(zhí)行任何程序,程序語句就所有在緩沖區(qū)內(nèi)排隊,等待繪圖語句執(zhí)行完畢,因此就無法得到相應(yīng)的輸出結(jié)果,這是學生們在上機時常犯的一個錯誤。適當?shù)厥褂媒y(tǒng)計圖可以協(xié)助我們越發(fā)深入的了解數(shù)據(jù)的分布邏輯。這里的例子只是繪圖語句的容易用法,而繪圖語句的復雜用法將結(jié)合例題在以后的各章中逐步推薦。(原著:張文彤) 第五章定量資料的統(tǒng)計描述和t、u檢驗(醫(yī)學統(tǒng)計之星)上次更新日期:從本章開始,我們將正式開始使用SAS解決我們的統(tǒng)計問題。先前面的幾章可知,SAS的主要功能是由不同的程序步來體現(xiàn)的。因此在以后的各章中,我們將對每種問題重點推薦一些常用的程序步,以及它們的輸出結(jié)果的解釋。對于定量資料的統(tǒng)計描述和容易判斷,SAS提供了三個強有力的程序步,它們是:UNIVARIATE過程提供單個變量的詳細描述和對其分布類型的檢驗。MEANS過程提供單個或多個變量的容易描述,對于多個變量,它的輸出格式緊湊,便于閱讀。TTEST過程對變量舉行t/u檢驗。§5.1引例例5.1文本文件“C:\USER\WTLI1_1.DAT”中已存入某市110名7歲男子童的身高資料(cm),請計算均數(shù)、標準差s、變異系數(shù)CV(衛(wèi)統(tǒng)第三版p6例2.1)。解:該題應(yīng)首先用數(shù)據(jù)步建立一個數(shù)據(jù)集,然后調(diào)用UNIVARIATE過程或MEANS過程來求出所需要的統(tǒng)計量。詳細的程序如下:①設(shè)定數(shù)據(jù)庫環(huán)境:LIBNAMEA'C:\USER';②數(shù)據(jù)步,建立數(shù)據(jù)集:DATAA.WTLI1_1;INFILE'C:\USER\WTLI1_1.DAT';INPUTX@@;RUN;③UNIVARIATE或MEANS過程,求出所需要的統(tǒng)計量:PROCUNIVARIATEDATA=A.WTLI1_1;PROCMEANSDATA=A.WTLI1_1NMEANSTDCV;VARX;VARX;RUN;RUN;例5.2某醫(yī)生測得18例慢支炎患者與16例健康人的尿17酮類固醇排出量(mg/dl)分離為X1和X2,問兩者均數(shù)是否不同(醫(yī)統(tǒng)第二版P19例2.17)?解:這是成組設(shè)計的兩樣本均數(shù)比較的t檢驗,程序應(yīng)首先建立數(shù)據(jù)集,然后調(diào)用TTEST過程舉行檢驗,在檢驗的同時也可以得到兩個樣本的容易描述。①設(shè)定數(shù)據(jù)庫環(huán)境:LIBNAMEA'C:\USER';②數(shù)據(jù)步,建立數(shù)據(jù)集,這里采用直接輸入數(shù)據(jù)的主意:DATAA.YTLI2_17;INPUTGROUPVALUE@@;CARDS;13.1415.8317.3514.6214.0515.0814.9814.2214.3512.3512.8912.1615.5515.9414.415.3513.814.1224.1227.8923.2426.3623.4826.7424.6727.3824.9524.0825.3424.2726.5424.6225.9225.18;RUN;③TTEST過程,舉行兩樣本的t檢驗。PROCTTESTDATA=A.YTLI2_17;VARVALUE;CLASSGROUP;RUN;§5.2UNIVARIATE過程Univariate過程對數(shù)值變量給出比較詳細的變量分布的描述,其中包括:變量的極端值。常用的百分位數(shù),包括四分位數(shù)和中位數(shù)。用幾個散點圖描繪變量的分布。頻數(shù)表。決定數(shù)據(jù)為正態(tài)分布的檢驗。5.2.1語法格式Univariate過程的語法格式如下:PROCUNIVARIATE[DATA=<數(shù)據(jù)集名>[選項]];指定要分析的數(shù)據(jù)集名及選項[VAR<變量名列>;指定要分析的變量名列BY<變量名列>;按變量名列分組統(tǒng)計,要求數(shù)據(jù)集已按該變量名列排序FREQ<變量名>;表明該變量為分析變量的頻數(shù)WEIGHT<變量名>;表明分析變量在統(tǒng)計時要按該變量權(quán)重ID<變量名>;輸出時加上該變量作為索引OUTPUTOUT=<數(shù)據(jù)集名>指定統(tǒng)計量的輸出數(shù)據(jù)集名關(guān)鍵字=<新變量名列>...指定統(tǒng)計量對應(yīng)的新變量名pctlpts=<百分位數(shù),...>指定需要的百分位數(shù)pctlpre=<新變量名列>];指定所需百分位數(shù)對應(yīng)的輸出變量名倘若省略所有非必須的語句和選項,則UNIVARIATE過程按默認情況輸出所有變量的所有常用統(tǒng)計量。5.2.2語法說明【選項】Univariate過程常用的選項如下:NOPRINT禁止統(tǒng)計報告在OUTPUT視窗中輸出PLOT繪出莖葉圖、箱式圖和正態(tài)概率圖FREQ給出頻數(shù)表NORMAL對變量舉行正態(tài)性檢驗【關(guān)鍵字】SAS中用關(guān)鍵字來指定所需要的統(tǒng)計量,事實上結(jié)果輸出中用的就是各種關(guān)鍵字,常用的關(guān)鍵字有:基本統(tǒng)計量NMEANSTD(標準誤)CVSUMVAR(方差)RANG百分位數(shù)描述MINP1P5P10Q1MEDIANQ3P90P95P99MAX與假設(shè)檢驗有關(guān)的統(tǒng)計量STDMEAN(標準誤)T5.2.3結(jié)果解釋在默認的情況時,Univariate過程會輸出絕大部分統(tǒng)計量,此時的輸出結(jié)果如下:Variable=變量名變量標簽Moments和矩有關(guān)的統(tǒng)計量Quantiles(Def=5)分位間距統(tǒng)計量N樣本量SumWgts權(quán)重總和100%Max最大值99%99%百分位數(shù)Mean均數(shù)Sum總和75%Q375%百分位數(shù)95%95%百分位數(shù)StdDev標準差Variance方差50%Med50%百分位數(shù)90%90%百分位數(shù)Skewness偏度系數(shù)Kurtosis峰度系數(shù)25%Q125%百分位數(shù)10%10%百分位數(shù)USS未校正平方和CSS校正平方和0%Min最小值5%5%百分位數(shù)CV變異系數(shù)StdMean標準化均數(shù)1%1%百分位數(shù)T:Mean=0變量總體均數(shù)為0的t檢驗Pr>|T|t檢驗的p值Range全距Num^=0變量值非0的例數(shù)Num>0變量值大于0的例數(shù)Q3-Q1四分位間距M(Sign)變量總體均數(shù)為0的符號檢驗Pr>=|M|符號檢驗的p值Mode眾數(shù)SgnRank變量總體均數(shù)為0的秩和檢驗Pr>=|S|秩和檢驗的p值Extremes極端值統(tǒng)計LowestObsHighestObs老幺(看見值序號)五大值(看見值序號)次小值(看見值序號)四大值(看見值序號)三小值(看見值序號)三大值(看見值序號)四小值(看見值序號)次大值(看見值序號)五小值(看見值序號)大哥大(看見值序號)5.2.4應(yīng)用實例例5.3某地101例健康男子血清總膽固醇值測定結(jié)果已存入文本文件“c:\user\WT1_1.dat”中,請繪制直方圖,計算均數(shù)、標準差s、變異系數(shù)CV、中位數(shù)M、p2.5和p97.5(衛(wèi)統(tǒng)p2331.1題)。解:UNIVARIATE過程的默認輸出中并不給出p2.5和p97.5,因此程序中要加以相應(yīng)修改,最后在OUTPUT視窗中只會輸出所需的幾個統(tǒng)計量,詳細程序如下:libnamea'c:\user';指定c:\user文件夾為數(shù)據(jù)庫adataa.wt1_1;數(shù)據(jù)步開始,指定要建立的數(shù)據(jù)集為a庫的wt1_1infile'c:\user\wt1_1.dat';采用外部文件讀入方式,文件名為c:\user\WT1_1.datinputx@@;輸入的變量為x,采用延續(xù)輸入的格式procgchartdata=a.wt1_1;調(diào)用繪圖程序步gchart,所用數(shù)據(jù)集為a.wt1_1vbarx;繪出豎直條圖,用于繪圖的變量為xprocunivariatedata=a.wt1_1noprint;調(diào)用程序步univariate,并且禁止在OUTPUT視窗中輸出varx;要分析的變量為xoutputout=temp指定輸出數(shù)據(jù)集為work.temp,n=nmean=xbarstd=scv=cvmedian=m將n、mean、std、cv、median按指定變量名存入pctlpts=2.5,97.5pctlpre=per;指定輸出p2.5和p97.5,其輸出變量名以per開始。procprintdata=temp;將數(shù)據(jù)集work.temp的內(nèi)容打印輸出run;開始運行以上程序例5.450例鏈球菌咽峽炎患者的埋伏期如下,計算其均數(shù)、中位數(shù)和幾何均數(shù)(衛(wèi)統(tǒng)p2331.3題)。12~24~36~48~60~72~84~96~108~12017111175422解:因為幾何均數(shù)無法直接得到,因此將數(shù)據(jù)集加以對數(shù)變換,求出均數(shù)后再行反駁數(shù)變換得到幾何均數(shù),程序如下:libnamea'c:\user';指定c:\user文件夾為數(shù)據(jù)庫adataa.wt1_3;數(shù)據(jù)步開始,指定要建立的數(shù)據(jù)集為a庫的wt1_3inputxf@@;輸入的變量為x和f,采用延續(xù)輸入的格式x=x+6;將變量x的值更正到每個組段的組中值處logx=log(x);定義新變量logx為變量x的天然對數(shù),用于算出幾何均數(shù)cards;數(shù)據(jù)塊開始121247361148116077258449621062數(shù)據(jù)塊;數(shù)據(jù)塊結(jié)束procprint;將數(shù)據(jù)集a.wt1_3的內(nèi)容打印輸出procunivariatedata=a.wt1_3noprint;調(diào)用程序步univariate,并且禁止在OUTPUT視窗中輸出varxlogx;要分析的變量為x和logxfreqf;指定變量f代表分析變量x的頻數(shù)outputout=tempn=nmean=xbarlogxmeanmedian=m;輸出數(shù)據(jù)集和統(tǒng)計量的定義datatemp2;數(shù)據(jù)步開始,指定要建立的數(shù)據(jù)集為work.temp2settemp;讓work.temp2繼承work.tmep的所有數(shù)據(jù)g=exp(logxmean);產(chǎn)生新變量g,它等于elogxmeandroplogxmean;在work.temp2中刪除暫時變量logxmeanprocprintdata=temp2;輸出數(shù)據(jù)集work.temp2中的數(shù)據(jù)run;開始運行以上程序請注重,這里UNIVARIATE過程有兩個分析變量X和LOGX,因此在OUTPUT語句中MEAN=后跟了兩個變量名,它們分離存儲兩個變量的均數(shù),而其余的關(guān)鍵字后惟獨一個變量名,則它們只存儲分析變量序列的第一個變量X的統(tǒng)計結(jié)果?!?.3MEANS過程Means過程提供單個或多個變量的容易描述。和Univariate過程相比,它更傾向于描述已經(jīng)明確樣本所在總體符合正態(tài)分布的變量,因此它不提供百分位數(shù),但可以提供95%可信區(qū)間。同時在多個變量輸出時,它的輸出格式緊湊,便于閱讀。5.3.1語法格式PROCMEANS[DATA=<數(shù)據(jù)集名>[選項]指定要分析的數(shù)據(jù)集名及一些選項[統(tǒng)計量關(guān)鍵字列表]];列出需要的統(tǒng)計量[VAR<變量名列>;要分析的變量名列BY<變量名列>;按變量名列分組統(tǒng)計,要求數(shù)據(jù)集已按變量名列排序CLASS<變量名列>;按變量名列分組統(tǒng)計,不要求數(shù)據(jù)集排序FREQ<變量名>;表明該變量為分析變量的頻數(shù)WEIGHT<變量名>;表明分析變量在統(tǒng)計時要按該變量權(quán)重ID<變量名列>;輸出時加上該變量作為索引OUTPUT<OUT=數(shù)據(jù)集名>指定統(tǒng)計量的輸出數(shù)據(jù)集名關(guān)鍵字=<新變量名列>...];指定統(tǒng)計量對應(yīng)的新變量名5.3.2語法說明【選項】Means過程常用的選項如下:NOPRINT禁止統(tǒng)計報告在OUTPUT視窗中輸出MAXDEC=n給出列表輸出的最大小數(shù)位數(shù),缺省值為2【統(tǒng)計量關(guān)鍵字】MEANS過程中常用的統(tǒng)計量關(guān)鍵字有:基本統(tǒng)計量NMEANSTDCVSUMVARRANGMINMAX與假設(shè)檢驗有關(guān)的統(tǒng)計量STDERR(標準誤)TPRT(與t對應(yīng)的p值)LCLM(可信區(qū)間下限)UCLM(可信區(qū)間上限)注重Means過程中標準誤的關(guān)鍵字是STDERR,而Univariate過程中為STDMEAN,另外LCLM和UCLM這兩個關(guān)鍵字也是Univariate過程所沒有的。5.3.3結(jié)果解釋和Univariate過程不同,MEANS過程在默認情況下只輸出樣本量、均數(shù)、標準差、最小值和最大值,如例5.1的數(shù)據(jù),倘若MEANS過程不加任何選項,則輸出如下:AnalysisVariable:X分析變量名為XNMeanStdDevMinimumMaximum110119.4.108.132.可見Means過程的輸出結(jié)構(gòu)極為緊湊。5.3.4應(yīng)用實例例5.5給出例5.1的均數(shù)、標準差s、變異系數(shù)CV和95%可信區(qū)間,并檢驗其總體均數(shù)是否為0(衛(wèi)統(tǒng)p2331.1題)。解:倘若數(shù)據(jù)集a.wt1_1已經(jīng)建立,則程序如下:procmeansdata=a.wt1_1nmeanstdcvlclmuclmtprt;varx;run;§5.4TTEST過程顧名思義,TTEST過程就是用于舉行兩樣本均數(shù)的比較,它給出兩總體方差齊和不齊時的檢驗結(jié)果,并同時做方差齊性檢驗。綜合兩者的結(jié)果,即可做出判斷。事實上,ttest過程的功能異常有限,只能做普通的兩樣本t檢驗,對于按頻數(shù)表格式輸入的資料,我們只能用以后要推薦的ANOVA等過程來分析。5.4.1語法格式PROCTTEST[DATA=<數(shù)據(jù)集名>指定要分析的數(shù)據(jù)集名[COCHRAN]];要求在方差不齊時做COCHRAN近似CLASS<變量名>;必須,指定一個兩分類的分組變量[VAR<變量名列>;指定要檢驗的變量名列BY<變量名列>];按變量名列分組統(tǒng)計5.4.2結(jié)果解釋以例5.2的TTEST過程為例,它的輸出結(jié)果如下:TTESTPROCEDUREVariable:VALUE分析變量名為VALUEGROUPNMeanStdDevStdErrorVariancesTDFProb>|T|樣本量均數(shù)標準差標準誤方差統(tǒng)計量t值自由度p值1184.41.40.6Unequal-1.813231.20.07942165.01.00.0Equal-1.817932.00.0785ForH0:Variancesareequal,F'=1.09DF=(15,17)Prob>F'=0.8589可見該結(jié)果分為三大部分:第一部分為兩組各種描述統(tǒng)計量的值,第二部分分離給出兩組所在總體方差齊和方差不齊時的t檢驗結(jié)果,第三部分為方差齊性檢驗,因此該過程一共舉行了三個假設(shè)檢驗。對于無效假設(shè)H0:兩總體方差齊的檢驗結(jié)果為F'=1.09,DF=(15,17),p=0.8589,可見在本例中方差是齊的,從而應(yīng)選用方差齊時的t檢驗結(jié)果,即t=-1.8179,ν=32,p=0.0785,按α=0.05水準,不否決H0,尚不能認為慢支炎患者與健康人的尿17酮類固醇排出量不同。5.4.3應(yīng)用實例例5.6某醫(yī)院對9例慢性苯中毒患者用中草藥一號抗苯一號治療,得下列白細胞總數(shù)(109/L),問該藥是否對白細胞總數(shù)有影響(衛(wèi)統(tǒng)p2252.3題)?病人號123456789治療前6.04.55.03.47.03.86.03.54.3治療后5.98.05.0解:該題為樣本差值均數(shù)和總體均數(shù)為0比較的t檢驗,TTEST過程無法完成。這里用MEANS過程來處理,程序如下:libnamea'c:\user';dataa.wt2_3;inputxy@@;tempvar=x-y;用新變量tempvar來記錄同一病人治療前后白細胞的差值cards;6.04.24.85.45.06.33.43.83.43.87.04.43.84.06.05.98.05.0;procmeansnmeanstdstderrtprt;利用Means過程檢驗差值總體均數(shù)是否為0vartempvar;要分析的變量為tempvarrun;開始運行程序例5.7將鉤體病人的血清分離用標準株和水生株做凝溶實驗,測得稀釋倍數(shù)如下。問兩組的平均效價有無區(qū)別(衛(wèi)統(tǒng)p2262.5題)。標準株:1002004004004004008001600160016003200水生株:100100100200200200200400400解:程序如下:libnamea'c:\user';dataa.wt2_5;inputgroupx@@;logx=log(x);將數(shù)據(jù)做天然對數(shù)轉(zhuǎn)換cards;110012001400140014001400180011600116001160013200210021002100220022002200220024002400;procprint;procttest;調(diào)用ttest過程舉行t檢驗classgroup;分組變量為groupvarlogx;要統(tǒng)計的變量為logxrun;(原著:張文彤) 第六章分類資料的統(tǒng)計描述與容易判斷(醫(yī)學統(tǒng)計之星)最后一次更新時光:在SAS/STAT模塊中FREQ、TABULATE和SUMMARY等過程可用于分類資料的統(tǒng)計描述,其中FREQ過程兼具統(tǒng)計描述和統(tǒng)計判斷的功能,對分類變量計算頻數(shù)分布,產(chǎn)生從一維到n維的頻數(shù)表和列聯(lián)表;對于二維表,可舉行2檢驗,對于三維表,可作Mentel-Hanszel分層分析。FREQ過程是SAS用于分析分類資料的一個常用過程。本章將向大家推薦FREQ過程的用法。§6.1引例例6.1某醫(yī)生用國產(chǎn)呋喃硝胺治療十二指腸潰瘍,以甲氰咪胍作對照組,問兩種主意治療效果有無差別(醫(yī)統(tǒng)第二版P37例3.10)?處理愈合未愈合合計呋喃硝胺54862甲氰咪胍442064合計9828126解:在建立行列表的數(shù)據(jù)集時普通需要三個變量――行變量、列變量和指示每個格子中頻數(shù)的變量。本例首先建立這樣一個數(shù)據(jù)集,然后調(diào)用FREQ過程輸出行列表,同時利用CHISQ選項舉行2檢驗。①設(shè)定數(shù)據(jù)庫環(huán)境:LIBNAMEAC:\USER;②數(shù)據(jù)步,建立數(shù)據(jù)集(這里同時給出直接輸入和利用循環(huán)語句輸入兩種程序):DATAA.YTLI8_1;DATAA.YTLI8_1;INPUTROWCOLUMNNUMBER;DOROW=1TO2;CARDS;DOCOLUMN=1TO2;1154INPUTNUMBER@@;12

溫馨提示

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

評論

0/150

提交評論