有許多的軟體可以繪製地圖,例如ArcGIS、QGIS等地理信息系統軟體,簡稱GIS軟體(Geographic Information System)。但今天想利用SAS統計軟體介紹台灣地圖的繪製,程式參考SAS公司的部落格文章 ( 如何繪製地圖圖表 - SAS Taiwan )。estat 發表在 痞客邦 留言(0) 人氣(136)
過去的文章曾介紹過ifn函數、dif函數、first.variable三種指令,這次,想以這三個指令,來介紹健保資料庫分析中的疾病定義。estat 發表在 痞客邦 留言(0) 人氣(220)
當您在分析健保資料時,一次要定義幾個診斷碼,甚至許多的疾病,有什麼SAS程式指令是有效率又好維護的呢?
這是 #以斯帖統計 的Youtube頻道新單元,這個單元是健保資料分析課程的Sophie老師為我們錄製影片!影片中介紹 #array指令 的操作,當您知道如何使用這指令,將更有效率地執行相似的重覆動作,例如將門診3組診斷碼定義為特定的疾病。estat 發表在 痞客邦 留言(0) 人氣(647)
本單元介紹如何自動儲存 SAS中的log及output輸出結果到指定檔案,如果我們利用SAS程式,將資料log及output輸出結果自動儲存到硬碟中指定的位置,可以寫以下程式,而詳細的說明請看Sophie老師的影片介紹。estat 發表在 痞客邦 留言(0) 人氣(380)
以下將介紹 first.variable 與 last.variable 的應用 , 利用這兩個指令,完成以下三項任務
(1)歸戶
(2)定義第幾次就醫記錄
(3)定義門診就醫三次以上;
estat 發表在 痞客邦 留言(1) 人氣(6,263)
健保資料分析時,會遇到循環性的資料處理步驟,以1:1個案配對(individual matching)的資料處理過程為例,1個暴露個案(cohort study 的 exposure)或1個病例個案(case-control study 中的 case)依特定條件配到1個對照個案,此時要將該對照個案從對照組的抽樣母體中扣除,再繼續找下一個exposure或case的對照個案,直到對照組的個案建立完成,因此是由巨集指令(Macro Language)的迴圈進行此連續動作。而扣除的方式是以身份證號(ID)以及生日(ID_birthday)做為關鍵變項(key variable),將被抽中者從抽樣母體中扣除,因此在對照組的抽樣母體中再也找不到該位病人的資料,因此不會被之後的exposure或case再抽中,以致相同的對照個案有重覆出現的情形。
estat 發表在 痞客邦 留言(0) 人氣(3,377)
estat 發表在 痞客邦 留言(0) 人氣(16,493)
過去曾經介紹過以SAS的IFN(), LAG()等函數將資料向下垂直移動,但SAS可否有LAG()函數的相反函數,也就是將資料垂直向上移動的函數,答案應該是沒有的,但可透過PROC EXPAND程序執行資料的垂直向上以及向下的移動,甚至是移動數個列數,該語法屬於Time series(時間序列)的應用。
在【程式一】建立範例資料,資料中包含ID(身份證號)、sex(性別)、Birthday(生日)、date (就醫日期)。
【程式一】
data aa;
input id $ sex $ birthday yymmdd10. +1 date yymmdd10.;
format birthday date yymmdd10.;
cards;
A01 F 1958-01-04 2001-02-03
A01 F 1958-01-04 2004-05-06
A02 M 1964-07-08 2004-12-11
A02 M 1964-07-08 2005-01-03
A02 M 1964-07-08 2006-11-13
;
proc print;
run;
【程式二】
以下利用proc expand 進行資料的向上與向下移動,移動後的資料檔名為work.bb,移動的依據為ID與birthday。再利用convert指定將資料作轉換,convert的指令為CONVERT variable = newname … </options>; 等號左邊放要被轉換的變項,等號右邊為轉換後的變項。透過transformout=(lag)可以將資料往下移動,transformout=(lead)則將資料往上移動。若在lag或lead後面加上數字,則是移動的列數。也可以利用id指令取代by而作為資料移動的依據,但是id指令後面只能放數值型資料,包括日期格式的資料。
/*-移動日期--*/
proc expand data=aa out=bb method = none;
by id birthday;
convert date = date_lag1 / transformout=(lag);
convert date = date_lead1 / transformout=(lead);
convert date = date_lag2 / transformout=(lag 2);
convert date = date_lead2 / transformout=(lead 2);
proc print;
run;
【結果】
Reference
http://goo.gl/q0mM1R
estat 發表在 痞客邦 留言(0) 人氣(6,009)
在資料分析時,經常遇到資料格式不是我們預期的,例如日期為文字型態,因此無法計算研究對象的年齡、或與時間有關的所有日期資料,或是資料合併時,發現兩個檔的資料型態不同,以致資料無法合併。以下將簡介SAS中的PUT()與INPUT()等函數的應用。
estat 發表在 痞客邦 留言(0) 人氣(49,649)
若研究者想做一張單變項的回歸分析表, 當要看的影響因子愈多, 要進行的單變項回歸分析次數愈多, 於是要反覆執行很多的model, 透過巨集指令功能,即能快速執行完所有的model。
以下同樣要介紹SAS的巨集指令, 以及搭配ODS(Output Delivery System)功能, 以快速產生COX-REGRESSION的統計表格
如果研究者想看某族群的環境污染劑量與癌症的關係,於是進行劑量效應關係分析(DOSE-RESPONSE EFFECT),並利用在圖表中的範例資料進行分析, 該檔有幾個主要變項:stdno (研究序號), gender (性別), inage(開始曝露於環境污染源的年齡), foloow_up(觀查時間:月), dose (環境污染物的劑量), ca1-ca22(各種癌症的欄位名稱, 且欄位中的1為有發生, 0為未發生)。(僅呈現10筆)
estat 發表在 痞客邦 留言(0) 人氣(3,687)