標籤:

有一定SAS基礎後如何深入學習?

對SAS編程的data,proc步都比較熟悉後,也用SAS編過一些小程序,用sas做過logistic回歸建立客戶流失預警模型,然後現在感覺SAS的學習有了瓶頸,不知道接下來繼續學習什麼?懇切希望各位大神指導指導~拜託了


謝邀,題主既然是統計學專業的本科生,在有了統計學基礎之後,想進一步深入,那麼我可以想到有兩種路徑可以深入的學習。

  1. 編程

熟悉了DATA步以後,可以看一看SAS BASE裡面其他的內容,可以系統地學習一下BASE裡面的內容,再順便理解一下SAS BASE的工作原理。

  • DATA步
    • 系統地了解SAS的函數和CALL routine
    • 正則表達式
    • 定義和使用Format和Informat
    • 數組和臨時數組
  • Proc SQL
    • 了解SQL的集合操作和Data步游標操作的不同
    • 簡單查詢和複合查詢
    • 匯總和分組匯總
    • 多個數據集的Join和Union
  • Macro
    • 宏表達式的evaluation,以及宏程序裡面的分支和循環結構
    • 在宏程序中使用函數和Macro Quoting
    • 宏程序的嵌套調用和遞歸結構,以及其中宏變數的Scope問題
    • 使用Data與Macro結合做Data driven programming
  • 其他效率提升工具
    • 數據字典和元數據
    • ODS系統
    • SAS的Windows系統介面
    • Hash Object
  • 原理問題
    • Data步的PDV,Input buffer和infile buffer的工作原理
    • SAS語句tokenization的過程
    • 宏解釋器的工作原理
    • Data步解釋器的工作原理
    • Data步的Execution Phase和Compling Phase等
  • 數據可視化
    • Proc sgplot
    • Graphic Template language

2. 統計專業學習的路徑

統計學方面,這個和深入學習SAS的關係就不是特別大了,主要還是統計學本身的學習。SAS出版社有很多專業的書籍可以參考使用,注意避免那種過於籠統的參考書。比如你提到的logistic回歸模型,SAS有專門出版的logistic regression using SAS,比較適合參考。

  • 應用
    • 統計檢驗和方差分析:Freq, Univariate, GLM,npar1way等過程
    • 回歸分析:Reg,Logistic,Genmod,Phreg, Quantreg等過程
    • 面板數據分析:GEE, Mixed,Glimmix等過程
    • 時間序列分析:ETS模塊
  • 矩陣運算
    • Proc IML
    • 在SAS裡面運行R程序

3. 學習資料

熟悉了SAS之後應該主動去尋找數據有一些深入練習的機會。

  • 在線資料
    • SUGI和SAS proceeding,都是SAS的會議論文集
    • MWSUG,PharmSUG等其他地區和行業性質的SAS會議論文集
    • Lex Jansen"s Homepage,Lex Jansen收集的SAS論文合集
    • UCLA的SAS統計分析教學資料
    • SAS-L,一個Mailing List,可以訂閱
    • SAS官方blog
  • 出版資料
    • SAS官方出版的參考書,特別是統計學方面,幾乎每個話題都有一本書來介紹
  • 數據
    • Gary King的Dataverse,可以SAS重複裡面論文的方法和結果
    • MIT的MIMIC-3數據,是beth israel醫院的急症數據,可以申請下來自己用SAS挖掘玩
    • 國內的CFPS,CHNS,CHARLS等公開的研究資料庫,可以下載下來做一些有趣的分析,甚至寫paper
    • 如果對生物統計感興趣,在學院找個老師申請一下中國慢病追蹤研究CKB的數據,目前國際上規模最大的隊列研究,說不定能發paper……
  • 其他機會
    • 每年的SAS比賽


分兩個方面來回答,

第一,SAS學習,這是個無底洞,目前我們所說的SAS基本只是SAS Base中最簡單的部分,也就是最基礎的data/proc step,外加sql,其他的還有比如Perl 等非常實用的部分。SAS的精華是macro,太多的其他 module,比如AF,,,還有,解決一個小問題和解決一個project是兩回事,和開發一個工具更是天壤之別,讓代碼更加有效是非常困難的也是非常關鍵的,尤其在開發大型工具的時候。總之,SAS易學難精,越學越覺得時間不夠用。

第二,建模,這是個最容易被人誤解的,絕大多數人都認為會寫proc 就是會建模,這是尚未入門的表現,簡單的說這個步驟只佔一個模型的10%。還有,logistic模型是最常用但也是最簡單的,其他有太多的其他模型(簡單一些的比如時間序列生存模型,,,),比如預測股票未來走勢,比如預測risk score,,,。

現在machine learning的出現,增添了更大變化。一句話,數據分析是活到老學到老的一個過程,需要太多的腦細胞去裝數學元素。


簡單說就是:根據自己實際的需求所在的領域(工作或者學習),進行具體的工作。如果只是以學習為目的,那就找自己感興趣的領域。數據和問題越真實越具體越好。

數據方面:絕大多數情況下你會發現所在的具體領域對於數據的處理和整合的方法相對固定。也會漸漸地掌握相關方法中自己最得心應手的方式。比如缺失的數據如何處理,如何選出並且去除極端值,如何選擇隨機的數據進行快速的分析和測試。這些方法在SAS上實現或許你已經掌握,但是不同領域的具體設定肯定略有不同。

至於Proc的各種應用工具也是類似,80%的工作可能集中在20%的proc上面。(比如可能Proc SQL就解決了大半的問題)。

除此之外,具體的數據和問題會讓你遇到完全意想不到的問題,比如算力不足或者運行時間過長。在實際的工作中,對於運算時間肯定有一個相關的要求。對於模型的精度也是如此。這些問題可能在技術上已經不是問題,但是只有涉及到具體的問題時才有具體的經驗可以掌握。

而且,在具體的項目中肯定也會有SAS不能解決或者不擅長解決的問題。如何能讓SAS和Excel,資料庫以及R等其他工具在一起協同工作,也是值得深入探索的一個領域。

綜上:如果學會了開車,到底去哪裡練車呢?這個完全看你是想做個卡車司機還是F1賽車手了……


題主目前從事什麼行業呢?數據分析的學習最好結合所在行業的具體問題,一般每個行業都有相應的統計學教材,或者公司有沒有指定任務?有的話學起來會更有目標性。


手機更下,好多小夥伴私信或是其他方式問我為啥覺得sas不好用。

我這裡解釋下,軟體應該是個好軟體。但是在銀行,數據都是存放在遠程伺服器上的…數據不是你想怎麼搞就怎麼搞,你能使用的僅僅是通過SAS在tdsql這層殼子下調用查詢語句,其他的什麼亂七八糟的功能就別指望了…

就算自己專業的庫能使用dats步,那奇怪的語法,簡直莫名其妙。而且你還不能通過其他方式在外部調用,因為就算專業庫其實特么的也不在本地,導出數據都得靠手工一步步操作。

綜上,想致力於銀行大數據的小夥伴們,除非你們至今去了銀行的數據中心的數據分析部門(那還不用sas,人家直接奧肉蔻了),否則大數據對銀行來說就是select。

--------------------------

怎麼說這事呢,坐標某大銀行分行sas深度使用部門。data步基本不用,多用在並表剔重等簡單使用上。大部分時間分析主要使用sql查詢,巨複雜的那種查詢語句,因為業務部門是不能建表的…

另外,我們厭惡sas已經很久了


推薦閱讀:

毫無數據分析工作經驗,如何闖入該行業?以及擇業方向?假設學過SAS或R。
求如何用stata或者sas做heckman兩階段的編程或者步驟。 ?
關於定性變數(可能為等級資料)的分析,該選用卡方檢驗還是秩和檢驗,如何進行選擇?
SAS,R,Python,matlab,spss,stata這類工具究竟是什麼?
計量經濟學實證研究中,哪款軟體好?(SPSS,Eviews,Matlab,stata,SAS)

TAG:SAS |