2017年7月22日 星期六

學習使用時空掃瞄軟件---SaTScan 1 (Learning to use the software of Spatial and temporal Scan --- SaTScan 1)

    流行病學嘛~尤其是描述性流行病學! 要研究"三間分佈"呢~
    人間的分佈, 當收集到人口學特徵的資料後, 就較容易用普通的統計軟件分析;
    時間的分佈, 其實很多普通的統計軟件, 都有時間序列的分析方法, 雖然有點複雜, 但仔細研究一下, 相信都能解決到問題...
    空間的分佈, 很多統計的軟件也沒有這些功能, 因為GIS是一項較複雜的技術! 也是近今約30年慢慢發展的...如果是僅制作些空間分佈圖等, 現在都有些軟件能供應用! 如(偉大的R), QGIS, GeoDa..., SPSS據聞也有, 但能力就很"雞"~ (SAS我就不知道了!)

    但是我就不只滿足於這些, 要研究一下時間-空間的技術, 於是... 是好踏上這條... SaTScan路~~~ 也有人叫做Kulldorff時空掃瞄方法.

    即是說, 要進行時空掃瞄分析, 就要使用SaTScan軟件 (以我知, 暫時只有此款軟件才可完成此功能~ 不知R有沒有, 但肯定SPSS及SAS沒有吧)!

1. 下載這款軟件很方便, 只要到它的網站 (https://www.satscan.org/download.html) 作簡單登記後, 它就會透過電郵給你一個密碼! 然後就可以免費下載. 其實也可將它制作成免安裝的. 但我不做壞人家的規定呢...
輸入文件設定界面, 主要有三種文件要輸入: 個案文件, 對照組文件/人口文件, 地理定位文件
研究方法設定界面
輸出文件界面設定

2. 這款軟件並不難用, 但難在於它使用的資料準備、參數設定及結果的研判上.
2.1. 在資料準備上, 它可讀入很多的資料類型, 如dbf, csv, xls, txt等, 但我個人認為csv文件格式它讀入時較順利.
我同一個文件上, 最好有:
個案編號、
個案陽性數(case no)、 
對照個案數(control no---可計算伯努尼分佈Bernoulli distribution) 或 地區人口數 (population---可計算泊松分佈possion distribution)、
地區的經度(longitude)、地區的緯度(latitude)---可透過Google Earth取得!
2.2. 參數設定:最好使用50%人口, 看情況而定的馬可科夫鏈迭代次數(設定為999, 但小樣本可設為9999 或99999)
2.3. 結果最好配合Google Earth使用, 一目瞭然! (因為會生成KML文件)
在Google Earth 軟件輸出的結果--- 以紐約乳癌為例, 紅色為熱點---高發區, 藍色為低發區
    SaTScan對於疾病的空間, 時間聚集判斷很有用呢!!!

2017年6月17日 星期六

澳門科技大學健康科學學院畢業禮 (Graduation ceremony of Health Faculty of MUST)

2018年

    今年再被澳科大健康科學學院邀請, 作為校外嘉賓參與院內的畢業禮. 每年我都會很珍惜這個邀請, 除了是畢業禮, 更是舊同事們的每度聚會啦...
    見證著學院近年畢業生的人數越來越多, 說明了學院近年有了明顯的發展! 當然, 也有很多"可進步"的空間... 期望學院能朝向好的方向發展吧!
2018年6月9日攝於澳門科技大學健康科學學院
 

2017年

    每年的6月中旬, 我都會被邀作為嘉賓(其實是舊同事的身份), 回到澳門科技大學健康科學學院, 出席研究生的畢業禮!
    雖然我留在學院工作的日子不長, 數數只有約1年多的時間, 但與舊同事們的感情很好! 因為同事人數不多, 工作和說話都比較坦誠; 那些日子的確很開心呢~
    一幌已參加了5~6屆吧! 唯有一年是不能到會的, 因為那年亦是我博士畢業的那年...
每年我都會與畢業的研究生會合照, 並祝福她們前程似錦! 因為職讀的研究生能畢業是不易的! 2017.06.10

2017年5月26日 星期五

再說回歸分析 (Talking about Regression onice again!)

    在日常的回歸分析中, 大多都只用到Linear Regression(線性回歸)或Logistic Regression(邏輯回歸); 若有進一步需要的話, 可能會用到Multinorminal Regression(多元無序回歸)或等級(多元有序回歸回歸).
    但每一類的回歸分析, 都有其應用條件及限制, 如最簡單的線性回歸, 其應用條件是Y變項的數據類型應是計量資料, 且符合LINE原則:
L: 線性的Y變項;
I: 各變項應互相獨立(無多重共線性);
N:數據要符合正態分佈;
E: 隨機誤差項盡量少...

但這些條件往往很難完全滿足, 若真的不滿足, 只好另有選擇了...
如I不滿足, 即數據間有多重共線性, 就只好用Ridge Regression(岭回歸), Lasso回歸...
如果N不滿足, 即數據呈偏態分佈, 可選用Quantile Regression(百分位數回歸)...
如果E不滿足, 即誤差太大, 可試試Robust Regression(穩健回歸)...

體現到~解決方法比問題多...

可以讀讀這篇文章, 會有更大的收獲... 数据分析员不得不知的7种回归技术

2017年5月20日 星期六

在R軟件內進行回歸分析及啞變量化 (Performing regression and dummy in R)

    回歸分析是統計學的一個很重要內容, 因為它可以尋找原因... 但回歸分析的種類很多, 這可以它的依變項(Dependent variable)及它的功能來分類吧!
    在R統計軟件, 進行回歸分析可以很方便地完成, 例如主要的回歸分析:
1.Linear Regression: lm(), glm(family=gaussian)
2.Logistic Regression: glm(family=binomial)
3.泊松回歸: glm(family=poission)
4.多元無序回歸: nnet::multinom()
5.多元有序回歸: MASS::polr()
    只要確定了函數, 公式, 就可以完成對應的回歸了!
    另外, 回歸分析的一個重點步驟, 就是進行啞變量(Dummy)了, 其實在數據庫內, 將變項的類型設定好, 如計數資料設為int, 分類資料設為factor, 在進行主要的回歸分析時, R會自動進行啞變量的處理, 如:
    一個數據庫有4個變項(num, brand, female, age), 在初初讀入時全部都設定為int(數值型), 設定brand及female兩變項為factor(分類型)後, 以female為依變項進行Logistic Regression, 即可得:

> log.fit<-glm(female~brand+age,family = binomial,data = example_logistic_regression)
> summary(log.fit)

Call:
glm(formula = female ~ brand + age, family = binomial, data = example_logistic_regression)

Deviance Residuals:
    Min       1Q   Median       3Q      Max 
-1.5523  -1.3217   0.8738   0.9375   1.1586 

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept)  1.08843    1.17784   0.924  0.35544  
brand3       0.46076    0.22489   2.049  0.04048 *
brand2       0.55677    0.19261   2.891  0.00384 **
age         -0.02747    0.03712  -0.740  0.45928  
---
Signif. codes: 
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 965.47  on 734  degrees of freedom
Residual deviance: 956.86  on 731  degrees of freedom
AIC: 964.86

Number of Fisher Scoring iterations: 4
 
    它將brand變項自動啞變量了! 再看看如何出我們很重視的OR值, 結果與SPSS的結果無異呢...
     
> log.or<-logistic.display(log.fit)
> log.or
 
Logistic regression predicting female : 1 vs 0 
                 crude OR(95%CI)   adj. OR(95%CI)   
brand: ref.=1                                       
   3             1.47 (0.99,2.16)  1.59 (1.02,2.46) 
   2             1.68 (1.17,2.42)  1.75 (1.2,2.55)  
    
age (cont. var.) 1.01 (0.94,1.07)  0.97 (0.9,1.05) 
                 P(Wald's test) P(LR-test)
brand: ref.=1                   0.014     
   3             0.04                     
   2             0.004                    
                                        
age (cont. var.) 0.459          0.459     
                                          
Log-likelihood = -478.4285
No. of observations = 735
AIC value = 964.8569 
 
當然據我所知, R軟件在有些回歸分析中不能自動啞變量的, 就可參考些文章了!

2017年5月3日 星期三

這本"量表編製"的書不好讀... (It is hard to read this book...)

    早約2個月前, 在中央圖書館見到一本關於"量表編製"的書籍.
    心想: 雖然自己學習流行病及生物統計學多年, 使用較多的問卷(量表), 但也沒有好好的研究過量表; 而且在研究生時期, 也沒有學過量表研製的課程. 3來是以往一些朋友問我關於量表的事, 只知期表面而不知其內涵... 實是有愧. 如今可以借到, 應是時候好好地"補習"一下.
    經過兩個月的閱讀, 這本書是有點失望的! 因為:
1.翻譯得不好, 譯句有很多語法的錯誤, 所以很難理解作者的原意;
2.其次是作者論述的深度不足, 較多的理論膚淺呢!
3.亦沒有很好的實踐指導...
    讀完後, 我試問問自己, 得到些什麼? 誠言, 較少!

2017年4月29日 星期六

一張很好的作統計圖指引的圖片 (A excellent graph about making statistical graphs)

    很多時候, 我都與朋友分享, 作為一個科研人員, 在表達結果時, 一定要很"精準"!
    我較喜歡使用統計量及統計指標表達科研結果, 因為這比較簡潔, 亦較"正統" (我承認對科研的正統方面, 我有些固執...). 當然, 有些人可能較難理解, 因為他們對統計的認識不多.
    如是這, 常轉用統計表, 因為可表達較精確的數字; 但有時要制作成"複合表", 製表過程常較複雜, 一般人也較難了解的~
    如當對象是一般的人群, 我就傾向於以統計圖表達呵~ 因可言駭意簡地表達內容及所想; 他們亦不會太關心精確的數字, 常只知道是什麼意思即可. 但要選對、選好一張統計圖, 郤是一種技巧...
    這張指導圖很好, 希望對大家都有用...
圖出處: http://extremepresentation.typepad.com/files/choosing-a-good-chart-09.pdf

2017年4月27日 星期四

一張很有意思的數據學家工作圖 (A meaningful graph of Data Scientist’s work)

一圖道盡數據科學家工作的千言萬語:

參考資料:
http://www.datascienceassn.org/sites/default/files/Next-Gen 20Data 20Scientists.pdf
http://www.economic.ntpc.gov.tw/files/大數據上-Big Data 概論與應用.pdf