2015年10月15日 星期四

一些基本的資料分析問題

這篇文章將為大家介紹一些常見實用的資料分析問題,這些問題相當的基本,主要目的在於讓我們能對所擁有的資料開始有一些些的 insight,好讓我們在未來要進行諸如 regression 或 learning 等等工作上能更加順利。

1. 這些資料的 typical value 是什麼?(What is a typical value?)


所謂資料的 typical value,指的就是能夠代表這份資料的統計值。具備這種資格的統計值有:平均值 (mean)、中位數 (median)、眾數 (mode) 還有各式分位數等等。但因為均值具備有「能呈現資料全體變化」、便於統計方法使用等等優點,所以一般來說我們都會以均值做為某數據集的 typical value。

做法:優先給予資料的均值,搭配中位數與眾數等其他統計值。 

2. 這份資料中的資料變動程度有多大?(What is the uncertainty for a typical value?) 


資料的變動度 (variability) 有時也稱為分散度 (spread)。我們主要是希望能透過這樣的統計值來知道:1) 資料集中的資料與其 typical value 一般來說離得多遠?以及 2) 這份資料的極端值的分佈狀況。能用以表達這件事的最佳統計值當然非變異數 (variance) 與標準差 (standard deviation) 莫屬了,但事實上還是有其他的統計值是能夠協助我們瞭解資料變動度的,例如 rangeaverage absolute deviation (AAD;也稱為 absolute mean deviation;MD)median absolute deviation (MAD)interquartile range (IQR) 等等。

不過,雖然我們總是習慣以標準差來標示數據的變動程度,但其能夠表達變動度的性質大多是基於母體分佈為常態的假設而來的。所以有些人建議說,如果我們懷疑母體分佈嚴重異於常態時,則我們可以用相對單純的 AAD 來評估資料的變動度會更加可靠一些 [2]。 

做法:給予資料的變異數與標準差 (若資料分佈與常態差異太大,可加上 AAD),搭配資料集的 histogram 呈現。 


3. 這份資料的分佈狀況最類似於何種機率分佈?(What is a good distributional fit for a set of numbers?)  


要知道機率分佈最好的方法就是透過資料的 histogram 來判讀;當資料的圖形出來後,大概會有三種可能:

1. 分佈左右對稱:資料分佈可能屬於常態分佈、logistic distribution 或 Cauchy distribution。前兩者非常的類似,但 Cauchy distribution 會在圖形的左右兩端出現非常非常極端的資料。 

2. 分佈往右偏斜:資料右斜時,可能符合的分佈相當的多,像是:log-normal distribution、log-logistic distribution 與 exponential distribution (還有一些其他的右偏斜分佈像是 Weibull distribution、Pareto distribution 等,不過大概都能算是前幾個的特例)。右偏斜的分佈種類雖然多,不過差異都相當明顯,稍加判讀即可找出形狀最符合的分佈。

3. 分佈往左偏斜:左偏斜的分佈就比較少了,要是真的出現,則可判斷其是否為 square-normal distribution。 在透過圖形讓我們對資料的分佈狀況有了一些 candidate 之後,即可套用 Goodness-of-Fit Test 來做進一步的確認。

做法:給予資料集分佈的 histogram,搭配可能的 candidate distributions 及其對應的 Goodness-of-Fit Test 結果。


4. 某實驗或操作是否發生了顯著的影響?(Does an engineering modification have an effect?)


過去在學術界如果要確認一項實驗是否具有影響必然使用的工具就是各項的統計檢測,像是 t-test/F-test;然後當我們計算出的 \(p\)-value 小於某個 significant level 時就宣稱我們的實驗效果顯著。不過,隨著時代進步,許多實驗的進行成本降低,一些比較容易進行的實驗中我們可以很容易的取得上萬甚至上百萬個樣本 (例如網站的 A/B testing)。但傳統的統計檢測方法用在這樣的大樣本資料上會出現某些問題,例如因為樣本數太多而造成效果總是顯著的 the \(p\)-value problem。所以以圖表的方式來確認一項試驗或操作是否造成了顯著影響會是比較的好方法。

做法:給予需進行比對的資料的 bihistogram 或用以解決 the \(p\)-value problem 的其他圖形並進行解讀;若資料量不大時則可使用 t-test/F-test。

5. 資料中的某項因子是否對資料具有顯著的影響?(Does a factor have an effect?)  


做法:給予並解釋 block plot 或 bihistogram;若資料量不大時可加以使用 t-test/ANOVA 進行確認。


6. 影響資料的各項因子的重要性分別為何?(What are the most important factors?) 


做法:給予並解釋 Design of Experiments (DOE) plot。


7. 能夠描述因變數與自變數之間關係的最佳函式為何?(What is the best function for relating a response variable to a set of factor variables?)  


要對一組自變數與因變數進行回歸分析,我們會依循以下步驟:

1. 首先使用 linear model 作回歸分析,觀察其 \(R^2\) 與 \(adj. R^2\)(但請千萬不要僅以 \(R^2\) 與 \(adj. R^2\) 來評估 model,那有時會出現非常誤導的結果),以及其 residual plot。如果 residual plot 顯示各 residual 成隨機分佈,則代表回歸效果不錯;倘若我們看到 residual plot 上的資料點成某類型的 pattern 出現,則代表我們的 model 還沒有掌握到某部分的變數關係,此時需使用項次更高的多項式來做 regression。

2. 倘若使用一次多項式的 linear model 無法完全描述資料行為,可逐漸增加自變數的次數,然後依照 1. 的方式評估效果。不過在以多項式 linear model 進行迴歸分析時,自變數的次數不會太大,通常二次或三次即可相當準確的回歸出資料關係。

3. 如果 linear model 無法達到理想的效果時,可開始使用 nonlinear regression 的技巧。不過對於 nonlinear model 的效果我們只能透過 residual plot 與回歸標準誤差 (standard error of regression;有時也稱為 S 值) 來評估,因為我們並沒有辦法用「一般的方式」為 nonlinear model 計算 \(R^2\) 與 \(adj. R^2\)。

做法:Linear regression 優先,無法達到理想效果時才使用 nonlinear regression,並配合適當的工具評估選擇 model。


8. 資料中是否存在 outliers?(Does the data have outliers?)


對於outlier 的偵測,首先我們可以透過各式的圖表工具,像是一般的 histogram、box plot 以及 normal probability plot 來以肉眼的方式判斷資料中究竟有無 outlier。或許有人聽過許多 outliers 偵測的方法,例如 Grubb’s test 之類的,不過那些方法的限制太多,準確度也一直很有爭議,所以基本上以這些方式作為判斷 outlier 的依據。

事實上,在處理 outliers 之前,我們首先要對 outliers 有正確的認識,那就是我們眼中看出來的 outlier,究竟是不是 outliers?有的時候這些資料可能是資料輸入錯誤,那我們就該把它刪除;也有可能是這些 outliers 的生成程序本來就不屬於我們想分析的母體,那我們也該從一開始蒐集資料時過濾掉這些資料;但這些方法的最終目的,其實是要判斷是否有某些資料是來自不同的來源的。也就是說,要從根本清除 outliers 的話,其實最好的方法就是從蒐集資料的一開始就好好做資料的篩選與確認,而不是在要進行分析了才開始剔除 outliers。

做法:使用 histogram、box plot 以及 normal probability plot 等圖表法以肉眼確認是否出現 outliers。倘若確定有 outlier,則須回頭檢視資料蒐集流程,並移除這些雜訊資料的來源 (不宜對蒐集來的資料貿然刪除「看似」outliers 的資料)。

小結


嚴謹的資料分析必須連同一般檢測方法以及大量視覺化圖形一起進行,僅依賴任何一項都非常可能導致錯誤的結果。上述的各項數值與工具在各大統計軟體中都有提供,只要熟悉軟體的操作方式,上面幾個問題應該都能夠很快的回答出來。

References:

[1] http://www.itl.nist.gov/div898/handbook/eda/section3/eda32.htm
[2] Revisiting a 90-year-old debate: the advantages of the mean deviation
[3] The power of outliers (and why researchers should always check for them)