2015年4月9日 星期四

大資料庫三問

熱門中的熱門議題之一就是大資料庫。
從Google、微軟、Facebook到各家公司都在想盡辦法從過去累積出來的巨量資料內尋找出他們想要的答案,作為決策依據。

有趣的是聽到、看到那麼多大資料庫的消息,連台灣知名的龍頭公司都說他們是用大資料庫解決公司問題。看完相關的新聞報導後,大資料庫用來做預警功用是結果,而使用的方法是用統計分析去分析資料,那麼我想提出第一個問題:

  • 大資料庫的數據資料是被用來當作「小」來看「大」嗎?


你認為大資料庫是樣本,才會用統計分析方法去分析那些資料,去找出迴歸模型。那麼,巨量資料是屬於母體?還是樣本?這總得先弄清楚才行。而且,我們還得注意下面的延伸問題:

  • 資料是線性嗎?
  • 運作過程中有將資料轉換以符合線性嗎?
  • 能確定轉換後資料保有「原始」(母體)特性嗎?
  • 資料是非線性時,系統用哪種方法估算?準度多少?
  • 每次新資料進入後,有沒有重新估算預測模型?
  • 有沒有剔除異常值?異常值也是現象之一,該被踢除嗎?

我想他們會說這些都是機密(笑)。

其實,光是看到使用統計分析方法去大資料庫內找規則(模型或模式)就已經令人有點困惑了。因為這違反大數法則概念,換句話說,他們始終都將巨量資料視為樣本,即使已經是巨量了,還是樣本,所以使用樣本的方式估算模型。

那接著,我想問

  • 巨量資料就是呈現常態嗎?


這引發了另一個問題那就是:「資料有進行測定嗎?有沒有確認資料的分配為何?

可別說是使用QQ plot這種方法是用來測定巨量資料的。
若只測定資料是否為常態分配,那僅是冰山一角。
至少也要檢定15種的分配,甚至更多才能夠真正測定資料。有時候那些已知的機率分配不足以告訴我們資料的分配為何,還得用Curve-fitting估算出分配形式,或更進一步確認那種數學模式適合資料。

既然前面問題試圖定義出大資料庫的基本概念,以及大資料庫內的巨量資料規則,那麼我想問的最後第三個問題是

  • 大資料庫要多少資料才算大?


有人可以明確說出大資料庫內的資料要有多少才算是大?

給個例子,如果我將巨量資料視為樣本,進行檢定後發現,10萬筆資料與1億筆資料得到相同拒絕虛無假設的結果。

那麼是10萬筆資料為巨量資料,還是1億筆資料為巨量資料?

若從數量來看,當然要選擇1億筆資料,只是由資料分析角度來看,10萬筆資料就可以知道母體特性,我何必用1億筆資料來知道母體特性呢?

這時候,是資料量的問題,還是分析方法的問題讓我們產生困惑?
如果是資料量的問題,10萬筆資料就可以代表母體,代表數理統計理論當中的無限大樣本,抑或是極限理論當中的無限大樣本嗎?

為什麼會有這樣的困惑?可能的原因有二:

  1. 軟體內有驗證功能嗎?也就是可以從預測模型反推估原始資料嗎?如果不行,那我怎麼知道預測模型是正確的?
  2. 理論有問題!怎麼知道我使用的理論是正確的?大數法則的樣本數要多少才是大數,這都沒有辦確定的話,怎麼知道理論的正確性。因為此時理論沒辦法被檢查。

其實,當我們使用資料估算出模型或模式時,目的就是要能預測,要能解決問題,用一個字形容就是,要「」!資料不是不能預測,而是在於你能多準,能夠比別人更精準地抓到規則,那你就贏了,問題相對變得比較小。

大資料庫的分析目的不就是在此嗎?