摘要:本文通過研究數據對象的熵,對大數據方法和傳統抽樣方法的臨界關系做了分析,得到一個理論公式:S = λ*2 ^H(X),并給出了詳細解釋。
引言:
大數據的概念一經提出,立即獲得業界追捧,一時間各個高科技論壇言必稱大數據。邁克—舍恩伯格在其《大數據時代》[Big Data: A Revolution That Will Transform
How We Live, Work and Think]一書中提出的三個重大思維轉變更是被追隨者奉為圭臬,即:“首先,要分析與某事物相關的所有數據,而不是依靠分析少量的數據樣本。其次,我們樂于接受數據的紛繁復雜,而不再追求精確性。最后,我們的思想發生了轉變,不再探求難以捉摸的因果關系,轉而關注事物的相關關系。”
大數據的踐行者們不僅在思維上進行了轉變,在數據處理上同樣采取“大數據”的方法:分析全體而不是樣本,不追求精確性,“知其然,不知其所以然”(注:第三句是筆者歸納,原文意思是只要知道“是什么”,不必知道“為什么”,或只問相關性,不問因果關系)。同時宣布傳統的抽樣方法已經過時,不能適應當今互聯網信息社會的要求。
上述斷言過于武斷。如果斷言的目的是為了強調面對信息爆炸,人們必須不斷地尋找新的方法,包括“大數據方法”,來分析和處理數據,那么如何夸大和渲染,都是可以理解并接受的;但是,如果斷言的目的是為了勸導人們放棄傳統的抽樣理論,轉而皈依“大數據思維”,這就值得商榷。
縱觀科技史,人們對物體運動規律的研究,牛頓定律曾被認為絕對正確。但隨著科學家們對微觀粒子世界,高速運動(近似光速)物體的研究,牛頓定律不再適用,而代之以量子力學和相對論。但這并不意味著牛頓定律的死亡,在人們生活所及的物理社會里,仍然是牛頓定律起主導作用。
信息社會也是如此,信息的不斷膨脹、變化、繁雜使得傳統抽樣統計方法顯得力不從心,于是所謂的“大數據思維”出現了。但“大數據”究竟是要取代傳統方法,還只是傳統方法的補充,有待于進一步的觀察。
質疑:
對于“大數據思維”的三個轉變,可以提出三點質疑:首先,如果通過分析少量的樣本數據就可以得到事物的準確性質,是否還有必要花費成本去搜集全體數據?其次,如果能夠得到準確數據,還有必要刻意追求不準確嗎?最后,如果能夠了解到因果關系,會視而不見,只去分析相關嗎?
合理的解釋是:首先,如果通過分析少量的樣本數據無法得到事物的性質,人們不得不花費更多成本去搜集全體數據來分析。其次,如果得不到準確數據,人們不得不接受不那么準確的、差強人意的數據來進行分析。最后,如果不能夠了解到因果關系,人們會退而求其次,以分析相關關系來了解事物。
基于上述解釋,大數據方法不應該是刻意為之,而應該是不得已而為之。換言之,大數據方法僅在傳統的抽樣統計方法不起作用的時候有其用武之地。這就像只有當物體的運動速度接近于光速時我們才用相對論取代牛頓定律。
當然,不可否認,在飛速發展的網絡空間里,人們的研究對象,即數據,變得越來越龐大,越來越繁雜模糊,越來越非結構化,這一大趨勢使人們樂于接受大數據思維。舉個不太恰當的例子,當人們不能解釋許多自然現象時,更容易接受某種宗教的解釋。
在信息爆炸的今天,傳統的抽樣統計方法不僅不應該被拋棄,而應該通過一系列改進得到加強,成為高效、實時反映事物狀態的主要手段之一。同時,我們歡迎并樂意采用新的方法,比如如日中天的“大數據方法”以及可能的“模糊數據方法”等等。
至此,一個關鍵問題出現了:面對一個具體事物,如何確定應該用傳統方法還是大數據方法?當物理學家研究微觀粒子之間的作用力時,會采用量子力學;研究一個橋梁受力時,會采用牛頓力學。信息或數據專家們有這樣的理論或判別標準嗎?本文下一小節將對此展開討論。
分析:
首先,考察一般意義上的選取樣本大小的規則。
定理:設X1,X2…Xn為獨立同分布隨機變量,分布為p(x), x∈(x1,x2..xn),則一般抽樣樣本大小S為:
S = λ*2 ^H(X) …………………………(1)
其中:λ是常數,H(X)= -∑p(xi)*log
p(xi),即隨機變量X的熵。
例1:了解總體為N個人對某事物的看法,是或否兩個選擇,其熵約為1,(假設兩種回答人數基本相當),則在一定的置信度、置信區間的要求下(本文不做精確的抽樣理論推導,僅舉例定性說明,以下同),S隨著N的增加(比如到10萬)逐步趨向為一個常數;400,此時λ=200。 可以證明,當其它條件不變,隨著熵增加,S指數增加,λ保持不變。
換一個方式解釋λ。
定義1:λ是在一次抽樣中,“典型狀態”出現的期望值。
定義2:典型狀態指該狀態出現概率等于或近似等于相同熵值平均分布下各狀態出現概率的那個狀態。
舉例來說,X服從一個8狀態平均分布,其熵為3比特,其每個狀態都是“典型狀態”,其出現概率都是1/8。
如果X服從一個12個狀態的分布,其狀態分布概率為
p(x1,x2,x3,x4,x5…x12)=(1/3,1/5,1/6,1/7,1/8,1/15…1/50),H(X) ~=3 比特。其典型狀態是 x5, 出現概率為1/8.
基于上述規定,如果λ取1,H(X)=3,則樣本大小S =8,在一次抽樣中,典型狀態(出現概率1/8)出現次數的期望值為1,等于λ。但狀態出現是依概率的,盡管期望值為1,但觀察值也可能為0,2,3…,這樣的估計誤差過大。
如果λ取100,H(X)=3,則樣本大小S =800,在一次抽樣中,典型狀態出現的期望值為100,等于λ。其實際觀察值在極大概率下落在95-105之間,如果誤差可接受,取λ=100,否則,加大λ。
另外一個影響λ的因素是分層。將例1中的總體N分為高收入(20%),中等收入(50%),低收入(30%)3類人來調查對某事物看法。如果采用純隨機抽樣,要保證每層的分布得到準確的估計結果,就要使得最少個體的層能夠抽到足夠數量,因此λ要乘5(20%的倒數)。但事實上,人們更關心總體結果,兼顧分層的結果,因此,為了節約成本,實際的λ修正系數會小一些,比如取3,這時,樣本大小約為1200 。這時,不管總體是10萬人還是3億人,對1200人的樣本進行的調查結果可以在3%的誤差范圍內反映出實際情況。
通過以上分析可以看出,λ是一個100-1000之間的常數,具體數值取決于調查方希望在一次抽樣中得到多少個典型狀態(或分層的)的個體(期望值),并滿足誤差要求。在確定了λ之后,樣本的大小就只和系統熵相關,呈指數增長關系,即公式(1)。
采用傳統抽樣方法時,研究對象的隨機狀態和變化有限,或通過人為的分類使之變得有限,導致熵值很小,因此,使用較小的樣本就可以準確地估計總體。加之那時的取樣成本很高,調查方要花費很大精力設計抽樣方案,在不失精度的前提下,使得樣本規模盡量縮小。
互聯網時代的狀況恰恰相反,研究對象是互聯網的行為,獲取數據非常容易,因為數據已經產生,不管你用不用它,它就在那里。而互聯網上許多研究對象的狀態無限多,也很難統計歸類(比如“長尾現象”),系統熵值很大,導致樣本規模巨大或根本無法確定規模。此時,采用總體分析,即大數據方法就具有優勢。當然,即使總體數據已經存在,對其整理和運算也相當消耗資源。一些情況下,采用抽樣的方法仍然是最佳的選擇。
現在,讓我們嘗試回答上節最后提出的問題:面對一個具體問題如何選取分析方法?
首先,考察研究對象所需的數據是否已經在應用中自動被收集,比如,用戶的線上購物行為。如果不是,比如線下購物,需要研究者設計方法去收集數據,此時,應該采用傳統抽樣方法。
其次,面對互聯網已經(或可以實時在線)獲得的海量數據,當研究對象熵值小于5,建議仍采用傳統抽樣方式,可以得到更高效率;當熵值介于5-15之間,總體分析或抽樣分析都可以考慮,視具體情況;熵值大于15,建議采用總體分析,即大數據方法。
上述建議仍然很抽象。在下一小節中,我們借用長尾理論的描述方法,將統計研究對象分為4種類型,分別討論適用的方法。
分類:
第一類:“無尾模型”。此時,研究對象的狀態明確且數量有限,出現概率最小的狀態仍然具有統計意義。如民主投票,狀態有贊成、反對、棄權3個狀態,或是有限個被選舉人的支持率;再如收視率調查,狀態有幾十或幾百個電視臺。統計結果的描述方法通常是分布直方圖,即將狀態出現的頻次從高向低順序以柱狀圖的方式表示出來。連接直方圖的各個頂點,就得到總體的概率分布曲線。按照相同順序排列頻次累計數并將頂點相連,就得到所謂“帕累托曲線”。兩個曲線表現為凹函數,或二階導數恒為負值(借用連續的分析,實際上是離散的),在曲線尾部沒有出現變化。隨著狀態數的增多,“二八現象”會顯著,即少數狀態(比如20%)占到了多數頻次(比如80%)。
第二類:“翹尾模型”。此時,研究對象的狀態較明確且數量較多,出現概率很小的狀態相對失去統計意義,在統計上把這些狀態統一歸類為“其它”狀態。絕大多數情況下,由于其它狀態是由許多狀態構成的,其出現概率的和高于排列在前的某些較小概率狀態的概率,因此,總體概率分布曲線及帕累托曲線在尾部會出現上翹,即所謂“翹尾模型”。為了保證統計效果,其它狀態總的概率一般不超過5%。這時,二八現象極為顯著,便于“ABC分析”和重點管理,因此翹尾模型在企業管理上應用極為廣泛。如質量管理(缺陷分析),庫存管理(零配件庫、商店、賣場,特別是實體書店,可與后面網絡書店的長尾現象比較)等。
以上兩種模型運用傳統的抽樣方法均可以取得良好的統計結果。隨著對象狀態數量增加,并不存在明顯界限。以收視率調查為例:選擇3萬個調查樣本戶進行收視調查,當有二、三十個電視臺臺時,收視率最低的電視臺也能得到顯著的觀察值,可以認為是無尾模型。當電視臺數量超過100,許多收視率達不到0.3%的電視臺在一次抽樣中就無法達到可以保證相對精度的觀測值,此時,既可以擴大樣本范圍來滿足精度要求,也可以將小于0.3%的狀態合并為“其它”,采用“翹尾模型”。
隨著三網融合的進展,絕大多數電視機將具有雙向功能,總體數據變得唾手可得,此時,抽樣方法仍然有效,它可以用來做實時的、頻繁的統計,而采用總體的大數據方法可以定時進行校正,畢竟處理幾萬個樣本比處理幾億條總體數據要迅速、便宜得多。
第三類:“長尾模型”。此時,研究對象的狀態不夠明確且數量很多,出現概率很小、相對失去統計意義的狀態眾多。但是,這些小概率狀態的全部或部分和占到總體狀態的30%-40%,甚至更多。反映在概率分布或帕累托圖上就形成一個長長的尾巴(漸進于X軸或Y=1的直線)。如果采用翹尾模型,用抽樣的辦法,會使總體的30%-40%,甚至更多的狀態無法描述。從而必須采用全體數據即大數據的方法。
舉例來說:一個實體書店的貨架上有1000種書籍,經過統計,老板會發現,賣得好的前200種書占到其銷售額的80%以上,而賣得不好的后500種書的占比甚至不到5%,統計上可以并為一類。這就是所謂“二八現象”,老板采用抽樣統計的方法可以掌握占銷售額95%的書籍的分布情況。而一個網絡書店的數據庫中可能列有20萬種書籍,其中熱賣的200種占銷售額的20%,前2000種共占到40%。而余下的19.8萬種書籍構成其余60%的銷售額,但每種份額是如此之小,以至于無論如何擴大樣本,都不易被顯著地觀察到。在這種情況下只能采用大數據方法,否則,60%的銷售額都不知道從哪里產生的統計還有什么作用。
第四類:“全尾模型”。此時,研究對象的狀態很不明確、甚至未知,而數量極多甚至無限,正常情況下,無論如何選擇樣本都無法在統計意義上顯著地得到各個狀態的觀察值,一旦可以觀察到,說明出現異常。其分布曲線是無限接近且平行于X軸的直線。所以我們也可以稱之為“平尾”。
典型的例子如關鍵詞搜索,事先無法確定狀態,即系統事先不知道用戶要搜索什么,且搜索的內容可能無限多,因此無法事先設計抽樣模型。采用分析全體的大數據方法,可以在出現異常時即使發現并加以分析。比如,某種疾病或藥物的名詞在某一地區的搜索量大增,就可以預測這一地區可能流行某種疾病。事實上,谷歌的大數據分析在這方面已經比傳統的流行病預測機制和機構做得更好、更有效率。
大數據方法被認為最適于做預警或預測某種人們事先不知道的狀態,而抽樣統計則一般是根據已知的狀態安排抽樣規則。
以上四種模型分析與上節基于熵的分析是一致的。其中無尾和翹尾模型的熵值分別為小于6、介于5-15之間;而長尾和全尾模型的熵值分別為大于15、趨于無窮。前二者多采用傳統抽樣分析,后二者只能采用大數據方法。更為重要的是,隨著量變引起質變,大數據方法會帶來更多、更新的概念、理論和技術。