over 2 years ago

Clustering可以說是三大常見統計問題之一
(另外兩個是regression還有classification)
簡單來說 clustering就是當給定一群資料後
靠資料點之間的相似性 把資料點分成幾個群


(上圖是mean shift clustering)

而進行clustering的方法也有好幾種
常見的有 k-means clustering, spectral clustering, mean shift clustering, hierachical clustering ...等等

如果你讀統計文獻 談到clustering總會覺得跟一般統計問題不太一樣
因為一般統計文獻很重視"統計收斂性"
也就是當樣本數越來越大時 會有怎樣的表現
但clustering比較少文獻探討統計收斂性

這個關鍵在於
"描述clustering的收斂性並不容易"

一般來說clustering就是把資料點分群
但收斂性探討的是當資料點的數量n趨近於無限大時的表現性
在這情況下clustering會變成要把"無限多個點分群"
有限的點很好探討分群
但無限多個點 要怎麼分群 並不是一個好操作的事情

這篇我簡單談一下三個常見的clustering方法的收斂性:
k-means clustering, spectral clustering, 以及mean shift clustering
有趣的是 這三個方法用了不同的方式來刻劃收斂性

1. k-means clustering--

Pollard, David. "Strong consistency of $ k $-means clustering." The Annals of Statistics 9, no. 1 (1981): 135-140.

k-means的特性是 clustering的成果完全由那k個中心所決定
所以只要能夠證明根據樣本的k個中心 會收斂到 根據"真實分配函數"定義出來的k個中心
就能夠描述收斂性 而這正是Pollard[1981]裡面談的方法

2. Spectral clustering--

Von Luxburg, Ulrike, Mikhail Belkin, and Olivier Bousquet. "Consistency of spectral clustering." The Annals of Statistics (2008): 555-586.

Spectral clustering利用的是資料點與資料點之間的距離矩陣
(這個矩陣的[i,j]元素即是資料點i與資料點j的距離)
適當的重整劃過後 進行eigen-decomposition然後用最大的幾個eigenvectors來進行k-means clustering
(最大的幾個eigenvectors: 大小是根據對應的eigenvalues)

Von Luxburg et. al.[2008]證明收斂性的方式很優雅
因為整個關鍵是前面幾個eigenvectors
所以他們把問題從linear operator的角度出發
(類似把距離矩陣看成一個linear operator)
而linear operator本身就俱有eigenvectors
因此前面幾個eigenvectors可以看成一個基於"樣本"所產生的linear operator
接著定義一個根據"真實資料分配(母體)"所建構出來的linear operator
最後只要證明樣本的operator的前面幾個eigenvectors會收斂到母體的對應量即可

3. Mean shift clustering--

Chen, Yen-Chi, Christopher R. Genovese, and Larry Wasserman. "Statistical Inference using the Morse-Smale Complex." arXiv preprint arXiv:1506.08826 (2015).

Mean shift clustering的收斂性是最近才剛剛被證出來
Mean sfhit的特色是: 他完全是靠著kernel density estimator來估計密度 然後用mode clustering去做分群
因此 比較的對象非常明確--即是mode clustering基於母體的資料密度函數

Chen et. al.[2015]描述收斂性的方法很直接--靠著clusters彼此的邊界來探討
在母體密度函數下 我們clusters會有邊界D
根據樣本 我們會產生clusters邊界E
我們只要說明邊界E收斂到邊界D即可說明mean shift會收斂
而這篇文章的重點也在於如何證明邊界E會收斂到邊界D
(他們其實證明了廣義上的mode clustering的收斂性)

---

雖然這三個方法收斂性的描繪不盡相同
他們其實都俱有下列的性質

  1. 定義一個母體的clustering結構 (k-means是靠k個中心; spectral是靠前面幾個eigenvectors; mean shift靠clusters的邊界)
  2. 說明如何在這樣的結構下定義"收斂" (數學上就是找一個metric 讓這些可能的結構成為一個metric space)
  3. 證明樣本的clustering結構收斂到母體的結構

基本上 上述這三個性質就是要把clustering的問題轉換成估計(estimation)的問題
因此可以探討所謂的收斂性

做實務的人可能會問 為什麼我們在乎clustering的收斂性?
除了這個問題理論上本身有趣之外
收斂性會告訴我們當我們收集到越來越多樣本後 我們clustering的結果是穩定的
此外 收斂的對象(母體的clustering結構)多半告訴我們這套clustering背後再運用的是怎樣的數學/統計模型
這在詮釋clustering上非常好用
而證明收斂性的定理往往需要一些假設
當今天一筆資料某個clustering方法失敗 我們就能知道某些假設是不滿足的--這往往能夠引導我們往後的處理

 
over 2 years ago

我做理論統計幾年了 覺得統計理論其實主要可以分成三大類:

  1. 估計理論(estimation theory)
  2. 漸進理論(asymptotic theory)
  3. 最佳化理論(optimality theory, minimax theory)

統計問題基本設定往往是這樣
我們定義一個母體性質 像是母體平均數
然後我們建立一個估計式 例如樣本平均數

估計理論主要探討 "估計式(樣本平均)是否會收斂到母體性質(母體平均)?"
而這個收斂速率(跟樣本數n的關係)又是如何?(答案是"根號n"這個速率)

估計理論除了被用在探討"估計式"往母體性質的收斂性之外
有時也會被用來證明一套"誤差/風險估計"方法是有效的
舉例來說 常見的cross-validation就是一個用來估計"誤差/風險"的方法
而估計理論就會探討cross-validation是否會收斂到真實的誤差
(在某些問題上這答案是確定的 但在很多問題上還不清楚)

在預測的問題上 像是回歸分析(regression) 分類問題(classification)
一個固定方法的預測風險(prediction risk)就常常會是我們想要估計的對象
當你這方法固定了 那預測風險其實可以看成一個母體的特性
而如何建立一套估計方法 並且證明這套預測誤差估計是一致的 就是估計理論的問題

漸進理論則是探討 當我們適當的調整樣本平均與母體平均之間的距離後
是否能夠得到一個收斂的分配
正如同我們知道樣本平均收斂到母體平均的同時
他們之間的差值 調整後(乘上根號n)會呈現一個常態分配情況
即使原本的母體分配根本不是常態分配 也會出現這種情形
(因為中央極限定理)

漸進理論的特色是 通常我們有漸進理論 就能進行統計推論
像是建立信賴區間 進行假設檢定等等
因此一套新的統計方法 要能夠被用在科學推論上
通常都要做出漸進理論才可以

最佳化理論通常只出現在進階一點的統計問題上
他所探討的是 考慮"滿足某些條件的所有估計式"
收斂速率最快的估計式 只能達到怎樣的速率(速率=跟樣本數n的關係)
一般傳統參數化模型(parametric model)不會探討這個
因為通常答案都是"根號n" 所以MLE基本上已經達到最佳速率
但在非參數化的(nonparametric model)的情況下
最佳化速率常常都低於根號n--而各種估計式的速率也常常更慢
舉例來說
直方圖histogram在1維度的密度估計裏 速率只有n的-1/3次方 在L1誤差上
而相對的 kernel density estimator(KDE)在同樣問題還有誤差裏 收斂速率則是n的-2/5次方
並且可以證明KDE在某一大類型的密度函數上 這個速率是最快的

我覺得有趣的地方是 這三塊領域
做機器學習machine learning理論的人也會涉足其中的兩塊--估計理論與最佳化理論
這其實是很合理的現象
因為機器學習很重視預測的精准度
而預測精准度的估計 自然就是一個重要課題
最佳化理論也能告訴你說 某一套方法在某些問題上 預測誤差是最佳的
這都能夠用來論述一套新的演算法是好的 自然就會被重視

相對的 漸進理論通常是用在統計推論(科學推論)上
推論的問題通常不是機器學習專家主要重視的目標
自然會比較少被重視

 
over 2 years ago

今天我們談談一個有趣的新方法來做回歸分析(regression analysis)
這個方法叫做(Nonparametric) Modal regression

回歸分析主要探討的就是
反應變數Y (response) 與獨立變數X (covariate/feature/independent variable)之間的關係
傳統的方法是找尋 Y在X給定=x之下的期望值
也就是我們要找 E[Y|X=x] = m(x) 裡面的函數m
(換句話說 我們在找的是給定X之下 Y的局部期望值--Conditional expectation)
一般所謂的線性回歸 就是假設m(x) = ax+b 然後去把a,b估計出來

而Modal regression是用另一種角度去探討Y與X的關係
Modal regression所專注的找尋 給定X之下 Y的局部最大值(Conditional local modes)
你可以想像Y在X給定之下 會有一個密度分配函數
然後這個密度函數會有幾個局部的最大值 這些局部最大值就是Modal regression想要找的

我們看下面這個例子:


這筆資料X和Y之間的關係較為複雜 我們可以看到有兩種模式同時在進行
在這種情況下 傳統的回歸分析方法會失效
因為X給定之下 Y的期望值會落在兩種模式的中間 就兩種模式都沒捕捉到
正如同下圖裡面的紅線

相對應的 如果我們來找給定X之下 Y分配函數的局部最大值
就會得到兩條藍線

很明顯的 藍線可以同時抓到兩種模式
而傳統回歸分析的紅線 不僅沒抓到 紅線附近還都沒有資料點

如果從預測的角度來探討
給定同樣的預測準確性
用Modal regression所產生的預測範圍
會比起用傳統回歸方法還要來的小
下面兩張圖分別是 傳統回歸方法的95%預測區間(上圖)
以及 Modal regression的95%預測區間(下圖)


下面這是另一個例子 有三個模式的訊號同時混在一起
我們同時放出傳統回歸的預測區間 以及 Modal regression的預測區間


這就非常明顯 傳統回歸分析的方法給了一個太大的預測區間
而Modal regression給了一個相對簡潔的區間

Modal regression另一個有趣的地方在於
他還可以拿來做clustering--這稱為regression clustering:



這種regression clustering提供一種找尋X與Y潛在模式的方法
我們可以先做這個regression clustering
再根據每個cluster 去單獨的fit一個回歸函數

傳統上 處理上述資料會使用所謂的mixture regression
但這個mixture regression會有很多問題
像是你需要給定幾個mixture量 還要跑所謂的EM-algorithm好幾次(還不一定會收斂到最佳解)

其實我們可以把Modal regression詮釋成 Nonparametric版本的mixture regression
下面這張表展現出 當訊號很複雜時 有兩大類的方法可以做
Mixture-based的方法 或著 Mode-based的方法


在clustering問題上
Mixture的代表作就是k-means
Mode的代表作就是mean shift clustering
在密度估計上
Mixture的代表方法就是Gaussian mixture model (GMM)
Mode的方法就是傳統的kernel density estimator (KDE)
而回歸分析裡面
Mixture就是透過mixture regression去做
Mode就是用Modal regression去解決

這個Modal regression的許多統計性質 包含誤差大小 信賴區間的建立
如何實際從資料去得到Modal regression (algorithm)
以及如何選擇tuning parameters
都在下面這篇paper裡面被談到 (裡面還提供一個R的script 可以直接拿來分析資料)
Yen-Chi Chen, Christopher R. Genovese, Ryan J. Tibshirani, Larry Wasserman. ``Non-parametric Modal Regression." http://arxiv.org/abs/1412.1716
有興趣的讀者可以去翻閱翻閱

 
over 2 years ago

Bootstrap可以說是這幾十年來(其實已經快四十年了)統計界的重大突破之一
因為這套方法非常簡單 而用途又很強大 所以不斷的被廣為使用
這篇文章簡單談談Bootstrap的基本概念與原理

p.s. 這篇下面有用LaTeX打的數學 有些瀏覽器+OS顯示會有問題 (win7+chrome/firefox有問題) 不過使用IE觀看反而沒有問題...

Bootstrap的主要用途是:
衡量估計式(統計量)的誤差大小 進而做統計推論(像是信賴區間 假設檢定)

估計式(Estimator)是由資料組成 用來估計母體的某個參數
因為資料是隨機的 估計式自然也是隨機的
理想的估計式 會隨著樣本數越來越大 收斂到母體我們想要了解的參數(這稱為一致性consistency)

現在給一個例子
我們有興趣的是--台灣博士生的"中位數"薪水
而假設我們從教育部得到一筆500名台灣博士生的薪水資料(隨機抽樣 只有部分博士生的資料)
我們可以根據這筆資料 用樣本的中位數 當做母體中位數的估計式
來估計實際台灣博士生的中位數薪水
而根據機率理論 這個樣本中位數 會收斂到母體中位數

但這個估計式有個問題:
雖然他會收斂 可是我們並不曉得誤差的大小
以及這個估計式的變異程度(因為資料是隨機 所以估計式也是隨機)
因為用這一筆資料 我們只能得到一個估計值
一個值本身是無法分析隨機的大小的

1. Bootstrap的基本原理

現在想像一個可以分析隨機程度的理想狀態:
假設我們有一台神奇的機器
這台機器 擁有所有台灣博士生的薪水資料
因此我們可以不斷從這台機器產生出一筆又一筆 500名隨機台灣博士生的薪水資料
每次的一筆500名博士生的資料 我們就能得到一次新的估計量
假設我們用這台機器1000次 我們就能得到1000個 中位數的估計量
利用這1000個中位數估計量 就能分析出這"樣本中位數"估計的變異大小

但在現實生活 我們沒有這台機器 我們只有一筆資料
所以無法用這個方式去分析出估計式的隨機大小

不過Bootstrap提供了一個機制 可以逼近這台機器的運作原理!
Bootstrap就是從給定的資料裡面 再次重複抽樣出一筆一樣大小的資料
(允許同樣的一個資料點被抽到很多次: sample with replacement)
每一次Bootstrap都會產生一筆新的資料 而我們可以用這筆新資料去得到一個新的估計式
不斷地使用Bootstrap 我們就可以得到好幾個估計值
利用這些Bootstrap估計值 我們就能計算估計式的變異大小

Bootstrap這和那檯理想機器的機制一樣:
那檯機器是從"母體"去重複抽樣 而我們現在是從"樣本"去重複抽樣
你可以想像當樣本數很大時 樣本數的分配與母體的分配 非常相近
因此從兩邊抽樣出來的誤差大小應該也會相近 因此Bootstrap是可行的
(當然 這並不總是對的 我們後面會談所謂的Bootstrap consistency)

2. 常見的Bootstrap用法

上面談的是Bootstrap的基本原理--和那台理想機器一樣
現在談Bootstrap常用來估計的兩種"隨機測度"(uncertainty measures)
這邊要用一點點數學

我們定義
為原本的估計式
而假設我們產生B個Bootstrap樣本
因此得到

B個新的估計式

第一種隨機測度是 估計式的"變異數"(Variance)
也就是我們想要算
Bootstrap的估計方法很簡單 就直接計算Bootstrap估計值的樣本變異數
也就是我們使用

作為的估計量
注意: 這個變異數估計"沒有使用到原本的估計量 "

第二種隨機測度是 估計式的"平均平方誤差"(MSE, Mean square error)
也就是我們想要計算
是我們想要估計的參數值
這時候我們對MSE的估計量就是

注意一個重大差別: 我們使用了原本的估計量 而不是Bootstrap的樣本平均數)

為什麼會有這個差異呢?
原因是 如果我們只在乎估計式的變異數(第一種情況)
這個變異量和實際上母體的參數值 並沒有關係
如果我們使用那檯理想機器 我們不需要計算實際母體的參數值
我們只需要一直產生出500名博士生的樣本去計算變異數

在第二種情況 我們想要分析的量(MSE) 需要使用到實際母體的參數
假如我們有那台機器 我們會需要用到
(1) 所有博士生的薪水 去計算真實的值
(2) 不斷產生出500名博士生的薪水 然後和(1)比較 去得到MSE的值
當我們使用Bootstrap 我們是把原始樣本當做母體
因此對應的參數 就是使用原本樣本的估計式
所以才會得到那樣的公式

Bootstrap不只可以估算隨機測度
更可以直接估算誤差的"分配函數"(cumulative distribution function)
像是這個量的隨機分配
就可以用一堆Bootstrap的的分配來逼近
當我們得到的大致分配
我們就能夠做信賴區間 或是檢定是否是某些值

3. Bootstrap收斂性

最後 我們用比較數學的角度去談Bootstrap的原理(以及其收斂性: Bootstrap consistency)
給定一個機率分配函數(CDF, cumulative distribution function) 我們稱為
這個函數F 完全描述了母體的隨機性質
也就是我們的資料()是根據 抽出n個獨立樣本
因此我們估計式的隨機性 完全被所決定
當然 我們想要估計的母體參數也是的一個特性
像是在博士生中位數的問題裡 就是的中位數
換句話說 前面所提到的理想機器 就是這個--只要知道 就能夠不斷抽樣出新的樣本

所以不論是的變異量 或是平均平方誤差MSE
都完全被所決定 (亦即: 只要知道 就知道這些量)
因此我們可以說 我們估計式的隨機測度 是一個的"函數"
也就是函數的函數 (functional: a function of function)
我們用來表示這個隨機測度 其中表示樣本數

仔細觀察Bootstrap的過程
就會發現Bootstrap其實就是不斷地從樣本分配函數 (empirical CDF)裡面去抽樣
可以回想一下 Bootstrap和理想機器之間的關係--一個是從原始樣本(可以看成)不斷抽樣 一個是從母體不斷抽樣

因此Bootstrap對隨機測度的估計量
在許多情況下可以寫成
所以Bootstrap對隨機測度的估計是一致的 必須滿足

符號表示機率收斂(convergence in probability)

如果今天我們要說Bootstrap可以用來逼近誤差的"分配函數"
那我們需要證明

其中的收斂速率
第一項是Bootstrap版本的"誤差分配函數"
第二項是真實版本的"誤差分配函數"

Bootstrap收斂性並不容易證明
一個比較常用的方法是先把要估計的母體參數寫成的函數
也就是
而我們的估計式選成
然後設法去證明在某些情況下是"可微分"的
(functional differentiation, 這個數學就比較複雜)

有興趣的讀者 我推薦下面這本書
Van der Vaart, Aad W. Asymptotic statistics. Vol. 3. Cambridge university press, 2000.
裡面第23章談了很多關於Bootstrap收斂性的證明
也可以看Larry Wasserman的Intermediate Statistics的課程內容
http://www.stat.cmu.edu/~larry/=stat705/
裡面第13章有談Bootstrap (每年的章節可能會換)

一般來講 Bootstrap在"誤差分配函數的收斂性"上
證明難度特別高
但如果要做統計推論 像是信賴區間等等
就必須要證明Bootstrap對誤差分配函數的收斂性

Bootstrap還有許多種版本 像是smooth bootstrap, wild bootstrap (multiplier bootstrap), residual bootstrap....
基本原理都是 從不同的估計式去抽樣
最原始的Bootstrap是從 empirical CDF
其他的方法像是smooth bootstrap就是從kernel density estimator去抽樣
可以想成 用不同方法去製造一個類似"理想機器"的抽樣機制

 
almost 3 years ago

許多學統計出身的人 對現在Machine Learning(ML)崛起都感到驚訝
特別是在"預測" 這個工作上
Machine Learning的準確率高的讓統計學家望塵莫及

為什麼ML可以在預測上做得如此好呢?
特別是做classification-分類問題
統計在這塊領域上的預測很難跟ML相抗衡

然而 許多傳統統計的方法 像是kernel classifier
數學上都可以證明說 在某些情況下 這個classifier會收斂到Bayes classifier--亦即是最佳的分類方式
甚至這個收斂速率是最佳的(所謂的minimax rate)

但在實際資料上(特別是資訊/科技產業的資料)
ML裡的SVM(support vector machine), random forest, deep neural net等等
都幾乎輕易打敗傳統統計的方法
這究竟是什麼原因呢?

關鍵原因我認為有兩點
(1)統計常用的方法是最佳的情況 往往是資料彼此"獨立分配"之下才會發生
--這在科學資料上算合理假設 但在科技資料上 像是email的資料(給你email, 區分是否是垃圾郵件)
就不是一個合理的假設

(2)資料產生的機制 不一定能被機率模型漂亮的描述
--統計方法的最佳性 通常都建立在"機率模型"的數學架構之下
(不止統計 許多自然科學模型 都是建立在某些數學架構之下)
但實際世界不一定會符合機率模型 機率模型只是一個我們用來描述與分析世界的"模型"
當真實世界並不是機率模型 甚至差異很大時
機率世界裡最佳化的統計工具 就不能保證在真實問題上會是最佳的

在比較嚴謹收集的資料裡 機率機制與統計模型會是對資料有效的描述
但在其他的資料 像是資訊產業的資料
並不是透過嚴謹收集而來 因此傳統統計的方法 並不能保證是最佳的

相形之下 ML許多方法都著重在把問題看成一個最佳化的問題(optimization)
並且允許許多較為彈性的分析工具
即使不一定能數學上證明是比較好的方法
實際在處理問題上 彈性與最佳化 完全靠最佳化預測誤差 是很有可能達到比較好的預測成果
因此ML能在預測上表現的很好 其實並不算太奇怪

ML在預測上比統計好 其實是件好事
這表示我們世界比想像中的還要複雜得多
也表示還有很多問題值得我們去探討
像是一個存在於ML許多方法的隱憂:
難以找到一個好的數學模型去證明預測的優異性
--這點其實是統計學家可以和ML的人合作的地方--去證明某些方法在某些情況下是好的 或是最佳的
這不僅能夠讓我們可以從理論上的角度去理解為什麼ML的方法好
更能夠讓我們明白當今天某些方法出問題時 可能原因是哪些
而未來當我們要改善我們的方法時 我們也有一個比較明確的方向

ps.
統計整個領域的重心也不在預測上
統計主要是在建構一套完整的統計推論系統--亦即是如何透過資料 在允許誤差的情況下
推估出有興趣的參數 衡量估計量的誤差 建出信賴區間 並作假設檢定
這整套系統是準備給科學家們用在科學推論上的
而作為預測工具 一直都是統計比較次要的焦點

 
almost 3 years ago

談到clustering 一般人直覺反應的就是k-means clustering
本質上k-means clustering背後是一個參數化的model

今天要跟各位介紹一個有趣的clustering方法
叫做mode clustering, 或被稱為"mean shift clustering"
這是一個non-parametric(model-free) clustering的方法
我們不需要假設資料是從什麼常態分配 或是混合型分配之類的產生

這個方法已經在非統計的領域被用了好幾年
但一直到最近才慢慢被統計學家拿來使用

這邊是一個例子:


看到這樣的資料點
一個直覺就是 上下各有一個clusters

所以我們會希望得到像下面這樣個結果


我這個clustering的成果
就是靠mode clustering做出來的

那麼 這個mode clustering到底是怎麼做的呢?
首先 給定一開始的資料點 我們先透過kernel density estimation(KDE)把機率密度重建出來
下面這張圖就是原本的資料點(黑點)還有機率密度的等高線圖

我們可以清楚地看到兩個局部的密度最高點(local modes) 我用紅色的十字表示

現在 對於每一個點 我們都計算他的密度梯度(gradient of density)
然後沿著這個密度梯度上昇 根據一個數學定理(Morse Theory)
只要這個密度函數滿足某些平滑的性質
大部份的點沿著密度梯度前進 最後都會跑到局部的密度最高點
正如下面這張圖所表示的

mode clustering很簡單 我們把資料分成一群群
根據他們沿著這個密度梯度前進的"終點" 也就是他們所抵達的局部密度最高點
下面是另一個例子

在一般使用時 mode clustering基本上可以按照mean shift algorithm快速地計算出來

下面是一個最近的mode clustering的研究成果
一個視覺化8維度mode clustering的方法:


(from Chen, Yen-Chi, Christopher R. Genovese, and Larry Wasserman. "Enhanced Mode Clustering." arXiv preprint arXiv:1406.1780 (2014))

如果對細節有興趣的讀者 可以讀下面幾篇papers
1-3: 經典的方法papers 如果只有時間 我個人推薦讀第三篇 (citation>7,000)
4: 一個有趣的mode clustering延伸版本
5: 一個更快速做mode clustering的方法
6: 一些mode clustering的延伸 包含visualizing多維度的成果

References:

  1. Fukunaga, Keinosuke, and Larry Hostetler. "The estimation of the gradient of a density function, with applications in pattern recognition." Information Theory, IEEE Transactions on 21, no. 1 (1975): 32-40.

  2. Cheng, Yizong. "Mean shift, mode seeking, and clustering." Pattern Analysis and Machine Intelligence, IEEE Transactions on 17, no. 8 (1995): 790-799.

  3. Comaniciu, Dorin, and Peter Meer. "Mean shift: A robust approach toward feature space analysis." Pattern Analysis and Machine Intelligence, IEEE Transactions on 24, no. 5 (2002): 603-619.

  4. Li, Jia, Surajit Ray, and Bruce G. Lindsay. "A Nonparametric Statistical Approach to Clustering via Mode Identification." Journal of Machine Learning Research 8, no. 8 (2007): 1687-1723.

  5. Carreira-Perpiñán, Miguel Á. "Fast nonparametric clustering with Gaussian blurring mean-shift." In Proceedings of the 23rd international conference on Machine learning, pp. 153-160. ACM, 2006.

  6. Chen, Yen-Chi, Christopher R. Genovese, and Larry Wasserman. "Enhanced Mode Clustering." arXiv preprint arXiv:1406.1780 (2014).

 
about 3 years ago

最近我跟科學家合作
發現有個non-parametric的方法
很常被科學家用來視覺化+簡單分析
這個方法叫做regressogram
簡單來說 就是 regression using histogram (用直方圖來做回歸分析)

下面是一個使用regressogram的例子
這是一個宇宙模擬的資料 每個點都是一個星系的某些特性
X軸是這個星系與某個結構的距離
Y軸是這個星系與那個結構的相關性
我們有興趣的是 Y是否會隨著X變化


原始資料看起來很複雜

所以我們第一階段 先把整個X的區間分成好幾個小小的子區間(用紅線標示區間)

接著我們在每個區間裡面 取平均值(藍色的點)


這些藍色的點 象徵著資料在這一個區間的平均值
因此 觀察藍色點的變化(我用藍色的線表示)
就能大致得出一些結論
這套分析方法 就是所謂的regressogram
基本上 藍色的點可以看成在這個區間內你做regression的預測值

很多時候 在跟別人介紹分析成果時 我們不會把資料點展示出來
不然整張圖很複雜
所以我們通常只展示了regressogram

更多時後 因為我們有興趣的是X與Y的關係
所以我們可以zoom-in 只看Y的一個小區間即可


(注意Y現在的值僅介於0.7~0.8之間)
藍色的bar 是所謂的error bar
表示regressogram的估計誤差
regressogram最大的好處就是
每個區間的誤差非常好計算: 區間內的樣本平均誤差
也就是 我們假裝我們只有區間內這些點
樣本平均的誤差 = 樣本標準差/樣本數的平方根

很多科學的期刊 regressogram是很常見的視覺化與分析工具
但regressogram在統計界裡面很少被提到
原因之一可能是有太多統計分析上比regressogram還要精確的方法
像是 local regression, splines, kernel regression...

不過regressogram的好處是 非常直觀 非常好理解
並且在視覺化資料的結構上 還算挺不錯的
只要這個區間取的有意義
基本上egressogram就是利用區間內的平均值作為一個summary statistics
所以即使資料數量很大或很複雜 依舊可以用簡單的幾個統計量來描述整個資料的趨勢

 
about 3 years ago

這幾年美國對於資料的重視程度提升非常多
主因就是 大家發現資料只要經過正確的方式處理 可以帶來太多價值
資料經過適當處理 就能轉換成為重要情報
這對"預測"還有分析 是非常有用的
因此資料的價值年年水漲船高

其實我後來想想 資料的興起就某方面而言 和石油有些類似

在過去 分析資料的技術不夠成熟
資料的量也還不夠大 所以大家還看不出來資料的價值

這就像是500年前的人類
挖到石油也不會感覺發大財
因為那個時代還看不出石油的價值

但現在如果你挖到大量石油
就能夠躺著過下半輩子了

現在隨著統計學的進步 還有電腦科學技術的提升
資料能夠帶來的價值遠遠超乎過去大家所想像的
就如同現在的社會裡 石油帶來的價值是非常巨大的

不過雖然石油價值高 如果沒有經過正確的分析製成
光是原料也沒辦法自行創造價值

這和資料一樣 你有一堆資料 如果沒有分析的技術
你無法挖掘到這些資料的潛在價值

既然石油被稱為黑金(黑色黃金 black gold)
基於兩者的相似性
那資料或許也可以被稱為數位黃金(digital gold; 這樣稱呼是因為現在資料大多以數位資訊的方式儲存)

現在大家把石油相關的產業稱為"石油業"
說不定幾年後 就會出現"資料業"了

不過不管未來怎樣發展
至少我覺得 這個數位黃金的相關技術與知識頗值得學習與投資

 
over 3 years ago

前些日子去了JSM(Joint Statistical Meeting)@Boston
統計界最大的一個meeting
碰到了許多來自不同學校的PhD's
也和以前在其他領域的朋友吃吃飯 聊聊天
順便參與了今年的COPSS award頒獎(統計界Nobel Prize/Fields Medal)
今年COPSS award給了UC Berkeley的Martin Wainwright
一位做Machine Learning的大師
讓我分外對Machine Learning特別有感觸

在我們學校Machine Learning(以下簡稱ML)已經是一門顯學
幾乎所有統計學家都知道這領域 甚至好幾位同時也是ML的大師

但我到JSM去碰到許多不同學校的PhD
才發現其實大多數學校的統計系 並沒有很多人在研究ML
甚至許多學校是完全沒有人知道ML是什麼的

在科學界也是類似的情況
我在科學界的許多朋友
Big Data, Machine Learning對他們是非常陌生的字眼
甚至有人說只在我的FB上面看過這兩個名詞

當然這可能是我交友的偏差抽樣
但多少表現出 一個事實--ML雖然對關心的人而言非常紅 實際上對大眾並沒有想像中的那樣熱門
甚至連在統計界--和ML關係最密切的領域
可能有在做相關研究的統計學家可能小於10%

我老闆其實就直接跟我說
絕大多數的學校裡的統計系 都還沒有注意到ML的崛起

其實這多少也從COPSS award的歷年頒獎可以看出端倪
一直到今年以前
COPSS award都不曾頒給與ML相關的人
即使ML早在2005年左右就開始蓬勃發展

今年COPSS頒給Dr. Wainwright
我想多少也透露出統計界開始正視ML崛起這件事情了

至於未來統計界與ML的關係
我想只會走得越來越近 兩者相輔相成
即使ML目前沒有想像的紅
我相信未來這領域鐵定會是顯學之一
身為統計學家的我們
有機會真的也該多少學一點ML的知識與技術

 
over 3 years ago

統計算不算科學?
這是一個我們統計學家很常被問的問題
其實 這個問題跟數學算不算科學? 十足類似

在回答這個問題之前 我先講一下我認為的科學是什麼?
簡單來說 對我而言"科學是經過一套嚴謹的研究方法所獲得的知識(這套嚴謹的研究方法稱為科學方法)"

今天你走出家門發現太陽很大 就跟朋友說"臺北天氣很熱"(假設你住臺北)
這句話不能說是科學知識 即時這句話是真的
因為你的"臺北天氣很熱"這個結論 獲得的過程並非經過科學方法

科學還有個特性 就是永遠接受挑戰
並且在更多證據反對既有的結論時 會修正既有的結論

好 我們回到統計與科學的關係
在目前認定裡 邏輯, 統計, 數學, 理論電腦科學等等被歸類在"形式科學"(formal science)裡

什麼是形式科學?
我們一般談的科學 多指自然科學(知識的對象是自然界) 或社會科學(知識的對象是社會)
形式科學的對象是一個形式/符號系統(formal/sign system)
舉例來說 我們常用的一般數字(1,2,3,4...) 就是一個數字系統
從最原本的幾大公設(axiom)出發 然後定義基本結構與運算

比起其他科學
形式科學的推論更加嚴謹 因為在形式科學裡
所有操作與結構都源自於嚴謹的定義
因此推論是精確的 不會有任何模糊
舉例來說 在一般代數系統裡 A=2x+3y 當x=2, y=3時
我們得到結論 A=13
這個過程是嚴謹的邏輯運算 不會有任何模糊

形式科學裡面的知識 經常透過定理(theorem)來表示
每一個定理 都是某套系統裡面一個新的知識
例如 中央極限定理就告訴我們 在某些情況下
樣本平均數會出現常態的分配

形式科學對於一般科學界的意義重大
因為形式科學的結論是精確的
所以形式科學所建立的結構/模型 可以做明確的推論

一般科學界往往借助形式科學所構築的知識
跟實際上觀測到的現象作結合
經過實驗與驗證 來得出科學結論
並把這個結論透過形式科學的架構來表示

舉例來說 愛因斯坦的E=mc^2
這個公式很簡單 而背後的符號系統定義的非常完善
我們明確地知道 "="的意義 還有乘法 平方的意義
這套公式本身連結了三個物理量: 能量E, 質量m 還有光速c
透過代數符號系統 我們得到這三個物理量關聯性的知識

統計學家研究的是科學家在處理資料時常用的符號系統(機率模型)的知識
並且這些知識是透過形式科學的方法: 符號運算 去取得
沒有統計理論 科學家許多結論就不一定能夠下
我們講個t分配的例子

許多科學研究都會用到t分配
假設今天我們並不曉得t分配的性質(缺乏這個知識)
那麼 所有用到t檢定(t-test)的科學研究
結論通通必須重新審視
因為這些結論並不一定達到科學研究的要求(顯著水準)

不過 這幾年科學界對於實驗的態度也略有改變
特別是電腦模擬(simulation)

在過去 電腦模擬是否被視作科學研究方法一直都有爭議
但這幾年科學界大多接受電腦模擬作為科學研究方法之一
因此 知識的取得並不限於傳統的實驗 觀測 或著形式科學的運算
電腦模擬的結果 現在也可以被視為一種科學

這幾年有些統計方法的有效性是透過電腦模擬去驗整
(有效性就是一個知識)
這也被接受為科學的一員

所以 統計學家算不算科學家?
既然我們的方法滿足科學方法
並且對象又是形式/符號系統
我們自然是科學家的成員之一
或更精確地說 我們是形式科學家(formal scientist)