文章撰寫:以斯帖統計顧問公司顧問:蔡勝雄老師(Amos)

 

python程式語言安裝

1.打開瀏覽器,連到「https://python.org  

2.點「Download/View the full list of downloads.

image

3.點「Windows

image

4.點以下其中一個安裝程式:

estat 發表在 痞客邦 留言(0) 人氣()

以下程式請在安裝pandas套件下,在 jupyter notebook 的 python 執行;

程式撰寫: 以斯帖統計顧問公司 Python課程講師 蔡勝雄老師(Amos)

 

#先寫入一組資料,並將date轉成日期格式 

import pandas as pd

patients = [
['A01', '20010108'],
['A01', '20010618'],
['A01', '20020507'],
['A02', '19991211'],

文章標籤

estat 發表在 痞客邦 留言(0) 人氣()

以下將介紹 first.variable 與 last.variable 的應用 , 利用這兩個指令,完成以下三項任務
   (1)歸戶
   (2)定義第幾次就醫記錄
   (3)定義門診就醫三次以上;

*補充說明
first.variable =1 , 根據variable定義第一筆 (通常寫成 first.id)
first.variable =0 , 根據variable定義非第一筆
last.variable =1 , 根據variable定義最後一筆 (通常寫成 last.id)
last.variable =0 , 根據variable定義非最後一筆

必須與 by variable一起寫入程式,以說明定義第一筆與最後一筆的依據是什麼? ;

文章標籤

estat 發表在 痞客邦 留言(0) 人氣()

PYTHON(109 SPRING)-3.jpg
 

文章撰寫 : 以斯帖統計顧問公司  Python課程講師 蔡勝雄老師(Amos)

 
✿ 前言
 
隨著大數據、物聯網、人工智慧的發展,越來越多的人選擇python作為開發的程式語言,但是對於從沒接觸過程式語言的朋友們,有沒有什麼方法可以降低進入的門檻,減少不必要的挫折呢。個人就過去學習經驗提供一些過來人的建議,希望可以幫助大家,少走一些冤枉路。
 
✿ 上課
 
目前學習python的管道真的很多,基本上可以分成三大類:
 
書本
實體課程

文章標籤

estat 發表在 痞客邦 留言(0) 人氣()

 

 健保資料分析時,會遇到循環性的資料處理步驟,以1:1個案配對(individual matching)的資料處理過程為例,1個暴露個案(cohort study exposure)1個病例個案(case-control study 中的 case)依特定條件配到1個對照個案,此時要將該對照個案從對照組的抽樣母體中扣除,再繼續找下一個exposurecase的對照個案,直到對照組的個案建立完成,因此是由巨集指令(Macro Language)的迴圈進行此連續動作。而扣除的方式是以身份證號(ID)以及生日(ID_birthday)做為關鍵變項(key variable),將被抽中者從抽樣母體中扣除,因此在對照組的抽樣母體中再也找不到該位病人的資料,因此不會被之後的exposurecase再抽中,以致相同的對照個案有重覆出現的情形。

 

如果在過程中,其中的一個exposurecase找不到對照個案,就毋需從對照組的抽樣母體中做任何排除的動作,但必須有程式作為判斷機制,若未抽中對照組,下一個抽樣步驟所使用的對照組之抽樣母體與前一個步驟的抽樣母體相同。但問題是,要如何判斷該進行扣除的動作,還是下一個步驟延用前一步驟的對照組抽樣母體?沒有抽中符合條件的對照個案,log視窗(日誌)中將出現類似以下的訊息:


NOTE: There were 55759 observations read from the data set F.CONTROL_1.

NOTE: The data set WORK.CONTROL_1 has 0 observations and 12 variables.

 

f.control_1為某retrospective cohort study(回溯性世代研究)的第一個exposure之對照組抽樣母體,依據特定編號的exposure的配對條件進行資料截取後,發現截取出來的筆數是0筆,檔名是work.control_1

 

文章標籤

estat 發表在 痞客邦 留言(0) 人氣()


以下介紹的範例取材自已絕版的『SAS 程式技巧』(作者:陳坤芳; 1996 6-12~6-13)中的一段程式應用,主要的指令為RETAIN搭配FIRST.VARIABLE、LAST.VARIABLE,所要執行的任務為『分組資料的加總』,在之前的部落文─『SAS中的描述性統計: PROC MEANS指令曾提到以描述性統計的語法:PROC MEANS計算分組的描述性統計量,有興趣,可以比較兩種方法的差異。

【程式一】中,建立了9筆資料,prodid為產品編號,sales為銷售額


【程式一】

estat 發表在 痞客邦 留言(0) 人氣()

 

過去10年,學術界一窩蜂地以健保資料庫作為『省錢、省時、省力』的研究方法,由於過於浮濫的發表,有些學校已嚴格限制健保資料庫作為升等的題材,究竟這麼珍貴的資料庫,何以成為被學界所垢病的次級資料(secondary data),究竟這個領域的研究限制是什麼?而它獨步全球的優勢又是什麼?

 

在還未有健保資料庫之前,醫藥研究不外乎臨床試驗、在臨床或社區收問卷、收檢體、環境採樣等等,可用來作為分析的大型資料庫,主要是健保開辦前的勞保門診與勞保住院資料、癌症登記檔、死亡檔,也有研究採用健檢診所的會員資料。綜觀以上的資料,有其優勢,但研究限制也不少,樣本的代表性是主要的問題。

 

但健保資料庫經由國家衛生研究院的整理並釋出後,全國性的抽樣資料,或全國性的特定族群資料,可依循合法的申請管道取得,這些代表全國性的資料,不僅量大,亦可解決流行病學上的選樣偏差問題,由於完整記錄病人的就醫記錄,包括疾病診斷代碼以及醫令代碼,儼然是最佳的藥物流行病學的分析材料,除非病人自費就醫。由於是全國性的資料,在國際間自有一定的學術價值,但學者抨擊之處所為何來?

 

健保資料庫最大的特徵是病人就醫的費用申報檔,無論病因是否正確,為了通過健保費用申報的相關規定,有部份代碼並非確實申報,甚至與疾病本身無關;有些病人還在檢查階段、尚未確診,卻以疑似病因登錄。過去賴美淑教授依據健保資料庫進行糖尿病診斷的正確性(validation)研究,發現當每一筆診斷皆納入研究,正確性約七成,若將前2次診斷當作是因檢查而登錄,留下了3次以上的就醫記錄,正確性提高至八成以上,若以是否使用降血糖藥作為判斷依據,正確性提高至九成以上。因此作了一些定義後,正確性將逐步提高,但不可否認的,誤歸類(misclassification)的比例仍高達一成。有些重大疾病可藉由串聯重大傷病檔以作為確認,但早期重大傷病卡的申請率非100%,卻造成研究個案數的低估。此外,在存活分析研究中,死亡的個案,除了因重大傷病死亡、院內死亡,其他院外之種種死因無法被記錄,在分析上是一大限制。

 

而一般研究在資料庫中所引用的人口學變項,不外乎性別、年齡、以投保單位所在地代表工作與生活地區的都市化程度、以投保薪資代表收入高低、有無工作、是否低收入戶等,大家很快就可提出這些項目在資料庫中的問題所在,毋庸贅述。更何況比前述更重要的生活習慣(例如抽菸、運動、飲食等)與各種檢驗值,都不在這個資料庫中。因此過去的研究以特定的共病或共病指標(例如Charlson Comorbidity Index; CCI)代替不良生活習慣可能導致的疾病,例如以發生肺部疾病代替抽菸習慣,但兩者的關聯有些牽強,因此,在健保資料庫中,當為了解決一個問題,就可能衍生另一個錯誤分組的機會。

文章標籤

estat 發表在 痞客邦 留言(0) 人氣()

 

    在臨床實驗或介入型研究,經常需要對同一個受試個體(Subject)在不同的時間點觀察其反應,當觀察的時間點只有兩個時,可以用來分析的統計方法為paired t-test;如果觀察的個體數目太少,則會建議使用相依樣本的無母數檢定方法,如:Wilcoxon signed-rank test,若反應變項為類別型資料,且資料為相依樣本的情況下,其統計檢定方法為McNemar Test

 

如果觀察的時間點有兩個以上時,上述的方法則不再適用,此時,就必須使用到一些重覆測量的方法,如:

 

  1. 1.    Hotelling T2:反應變項為連續型資料,且符合常態分配假設之下,可分析單一樣本或兩樣本的重覆測量,是T teat的延伸。

 

  1. 2.    Friedmans test反應變項為連續型資料,且為小樣本的情況下使用,為單一樣本重覆測量。由於是無母數檢定方法,原始值必需先轉為rank型態。

 

  1. 3.    Cochran’s Q test:反應變項為類別型資料(二元型態,binomial)的情況下可使用,為單一樣本重覆測量,且無母數檢定方法。基本假設為不同時間點,感興趣的事件發生的機率相等。

 

  1. 4.    重覆測量型變異數分析(Repeated Measures ANOVA)

        其中兩個重要的基本假設為(1):不同個體(subject)之間無關聯性、(2)同一個個體(subject)在不同時間(visit)的測量有相關。在共變異數矩陣(Covariance matrix)的分析中有一個基本的假設,同一個個體(subject)在不同時間(visit)的測量之相關都一樣。事實上,距離愈前期的測量結果愈遠,測量的相關會愈來愈弱,與臨床上許多的實際狀況不符,這樣的相關矩陣稱為Compound Symmetry(CS)。檢定這項基本假設的方法為Mauchly’s test of Sphericity(球面性假設),若不符基本假設,應採取更適合的方法。

        Repeated Measures ANOVA可分析單一樣本與多組樣本的重覆測量,反應變項為連續型資料,且需符合常態分配的基本假設。資料為橫向資料,若有任一次的資料中有缺失值,將整個subject被刪除,因此分析的資料特性必須是完整資料(Complete case)。對於會隨時間改變的解釋變數(例如每次所測量的除反應變項以外之生化值),無法一一對應至每一個時間點的反應變數,因此僅能分析不隨時間改變的解釋變數(例如性別)

文章標籤

estat 發表在 痞客邦 留言(6) 人氣()

 

過去曾經介紹過以SASIFN(), 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

estat 發表在 痞客邦 留言(0) 人氣()

 

傳統的存活分析方法大多用於估計單一次事件(例如:死亡,得病等)的存活率,但是在臨床研究上,有些存活資料屬於復發事件(recurrent event);例如,同一個體(subject)在追蹤時間(follow-up time)內發生多次某種症狀。以傳統的存活分析的觀點,可以僅看第一次復發事件的存活分析,但缺點是忽略了其他復發事件發生的訊息。所以,當資料型態是這種情形下,採用多次復發存活分析方法是較爲合適的。
 
一般的存活分析方法僅能用於資料之間爲獨立的情形下,然而,在臨床研究上,常收集到的資料是具有相關性的;例如,同一個體(subject)中的眼睛、腎臟等兩個以上的器官所收集到的存活資料。此外,同一家庭內的兩個不同個體的存活資料,亦可視爲此種資料型態。此種資料因爲具有配對的特性,所以在分析上較爲複雜,所採用的方法為配對存活分析(Matched Survival)
 
在醫學研究中最常見的資料型態為右設限(right censored)資料,此類個案僅能記錄到從進入研究到研究截止的時間,在研究時間中止前,某些個案尚未發生感興趣的事件,所記錄的時間非真正發生事件的時間,造成資料不完整的情形。另一種常見的不完整情形爲左截切(left truncation)資料,左截切分析中,究者感興趣的是個案的存活年齡,例如65歲以後入住於老人安養院後能存活到幾歲。如果個案在研究開始前即死亡,則完全無法被觀察到,有別於右設限,左截切僅能觀察到部份的個案資料。在這種情形下,典型的Kaplan-Meier estimate是無法使用的。
 
另外。在醫學研究的實務應用中,可能存在有二種以上的不同事件,而感興趣的事件為其中一種。在這種情形下,出現某種事件可能會掩蓋了其它事件發生的可能性,此即為競爭風險(Competing Risks)。例如,針對白血病骨髓移植病患的研究,可能發生的事件有二種。白血病復發(relapse)以及移植失敗所造成的死亡(death)。如果我們要探討的是骨髓移植的復發率,移植失敗所造成的死亡(death)即為復發(relapse)的競爭風險事件(competing risk event)。所採用的方法為以累積發生函數(cumulative incidence function; CIF)來呈現特定事件在不同時間點發生的可能性。

 

相片2  

文章標籤

estat 發表在 痞客邦 留言(0) 人氣()