摘要: 我們在進行資料分析的時候,大部分時間都在使用趨勢分析、比較分析、細分分析這三類方法,但其實還有一個方法我們也會經常使用交叉分析,尤其是在排查資料異常的問題時,交叉
我們在進行資料分析的時候,大部分時間都在使用趨勢分析、比較分析、細分分析這三類方法,但其實還有一個方法我們也會經常使用——交叉分析,尤其是在排查資料異常的問題時,交叉分析就能展現其強大的威力。 另外要跟大家說聲抱歉的是博客的更新頻率可能沒有那麼頻繁了,但是儘量每個月至少能發佈一篇,希望文章的品質有所保證,還是歡迎大家留言討論,能夠發起一些有趣的話題,一起拓展在網站資料分析方面的思路。
什麼是交叉分析?
交叉分析是指對資料在不同維度進行交叉展現,進行多角度結合分析的方法,彌補了獨立維度進行分析沒法發現的一些問題。
交叉分析以多維模型和資料立方為基礎,也可以認為是一種特殊的細分方式,但跟細分的概念有點差異,如果有興趣可以先閱讀下之前的文章——資料立方體與OLAP。 細分的方法更多的是基於同一維度的縱深展開,也就是OLAP中的鑽取(Drill-down),比如從月匯總的資料細分來看每天的資料,就是在時間維度上的細分,或者從省份的資料細分查看省份中各城市的資料,是基於地域維的下鑽。 交叉分析不再局限于一個維度,就像資料立方體與OLAP文章中的立方體,是基於不同維度的交叉,時間維、地域維和產品維交叉在一起分析每個小立方的資料表現,可以通過OLAP的切片(Slice)和切塊(Dice) 操作查看例如上海市在3月份的電子產品的銷售情況,這會説明我們發現很多在單個維度中無法發現的問題。 所以,交叉分析是基於不同維度橫向地組合交叉,而不是細分在同一維度的縱向展開。
交叉分析的展現形式
交叉分析涉及多維度的組合,雖然圖表和表格都可以進行展現,但因為圖表所能表達的資料有限,且比較不容易把多個維度的交叉關係展現出來,在交叉分析中不太常用,通常以表格為主。 我們平常在看的表格通常被叫做二維表,一般第一列放置一個維度,如日期,表頭羅列各類指標(其實所有指標也可以被認為是一種特殊的維度——指標維),這樣行列的兩個維就組成了最常見的二維表。 二維表可以進行擴展,進而展現更加豐富的維度:
如上圖就是典型的基於表格的多維度交叉分析的佈局,在行列中分層次放置多個維度,如果我們只顯示一個指標,那麼這裡的指標維就沒有顯示的必要了。 其實Excel的樞紐分析表(Pivot Table)就是交叉分析的利器,我在資料的報表和報告這篇文章中提到過樞紐分析表,這裡還是基於那篇文章截圖的原始資料,如果我們將各維度按照上面的佈局形式進行展現的話,會是怎麼樣的效果:
看起來還不錯,顯示的資訊非常豐富,左邊包含了以天為單位時間維和產品維,可以使用展開按鈕進行匯總和展開,就像是細分的操作;上面的表頭部分分兩層羅列了地域維和指標維,Excel的透視表提供了豐富的設置, 預設展現基於各個維度的匯總資料,讓我們可以從「總-分」的角度觀察資料,這對資料分析非常有用。 假如我們使用上面的透視表進行交叉分析發現資料是否存在異常?
使用從總體到細節的分析方法,首先可以從查看每天銷售額和轉化率的匯總資料開始,折疊產品維之後觀察最右側的指標匯總列就可以看到每日匯總資料;如果某一天的銷售額或轉化率出現了大幅的下滑,我們就可以結合各種維度尋找問題的原因, 就是基於各種維度的細節資料,展開產品維觀察當天的哪類產品銷售出現了問題,然後結合地域維的交叉資料,可以定位哪類商品在哪個省份的銷售出現了問題,這樣就有效地將問題定位到了細節的層面,能夠更好地發現問題,進而解決問題。 所以交叉分析其實正是體現了分析「分而析之」的本意。
上面的方法一般是比較常用的基於問題的分析方法,但我們很少可以一次就定位到問題,往往我們會根據推測多次查詢資料庫或查看Dashboard上的各類報表來定位問題。 而結合透視表的交叉分析,我們使用一張報表就快速地定位了問題所在,從總體到細節,邏輯非常清晰,問題的定位也非常準確和到位,所以合理地利用交叉分析可以説明我們更加高效地排查問題。
交叉分析的基礎
這裡不得不再說一下交叉分析基於的底層基礎資料模型,因為如果沒有設計好底層的資料模型,上層的交叉分析是很難實現的,或者多維的交叉受到限制而使分析存在局限性。
從技術層面來看,交叉分析基於多維模型,資料的維度越豐富,所能實現的交叉也越豐富和靈活,通過各種交叉分析能夠更加有效地發現問題;但相應的,如果要盡可能地豐富各維度的交叉分析,對基層模型的要求也就越高。 所以如何設計好資料的底層模型非常關鍵,還是參考資料立方體與OLAP文中的那個資料立方看個簡單的例子:
如果一張網站分析的報表只包含以月度為單位的日期維和相應的指標,那麼資料的存儲就是每個月一條記錄,但顯然這種高度聚合的資料不利於分析,我們需要構建如上圖的資料立方體來獲取更加細節的資料。 用資料立方來拓展資料細節有兩種方向,一類是縱深拓展,也就是基於一個維度的細分,比如將一個月細分到每一天,那麼一條記錄將會被拓展成30條;還有一種是橫向的拓展,就是多個維度的交叉,就像上面立方中添加了產品維和地域維。 這樣存儲的資料就從原本單一的時間維度擴展成了時間、產品和地域三個維度,也就是三維立方體所能展現的形式,當然維度可以繼續擴展,四個五個直到N個,理論上都是可行的,這裡只要以三個維度進行舉例就可以。 對於資料存儲而言,橫向的拓展與縱深拓展的影響是一樣的,記錄數都是以倍乘的方式增長,假設這裡產品維是產品大類,有20個產品大類,再加上32個省份或直轄市,那麼經過縱深和橫向拓展之後,原先每月的1條記錄就變成了:
1 × 30 × 20 × 32 = 19200
而我們在構建多維模型的時候很多維度中包含的資料量絕對不像上面例舉的那麼小,想像一下網站的商品或者頁面的數量可能是成百上千甚至成千上萬的,那麼一旦以倍乘的形式擴展之後,資料量就會一下子劇增。 雖然豐富的多維立方能夠給分析帶來便利,但也同時給資料的存儲和查詢帶來的壓力。
所以,更加豐富和靈活的分析需求的實現基於更加複雜的多維模型或者資料立方,同時會帶來更大的系統開銷。 Google Analytics很好地權衡了靈活的資料分析與複雜資料模型之間的關係,這也是Google Analytics強大功能的基本保障,GA的高級細分(Advanced Segments) 和自訂Dashboard是其他同類免費網站分析工具所無法比擬的,這也正是為什麼我們將GA劃分到網站資料分析工具,而其他的大部分只能算作網站資料統計工具的原因。 而GA正是基於其構建的強大的底層資料模型和高效的資料計算和回應能力,使很多分析功能可以得到擴展,其中很多就涉及交叉分析,這裡截圖了其中的兩個功能,Secondary Dimension和Pivot:
Google Analytics新版本增加了很多令人心動的功能,Secondary dimension的功能從老版本得到了延續,上圖在Content模組的Page報表中選擇了流量來源作為第二維度, 這樣我們就可以查看每個頁面的流量是從何而來,每個流量來源在該頁面的資料表現,同時可能還可以發現一些有趣的現象,比如某些頁面的流量基本都是一個來源帶來的,比如我的博客的某些文章基本都是通過搜尋引擎進來的, 而另外一些文章基本通過直接流量帶來。
在GA的各類報表中可以在右上角選擇展現的形式,最後的一種就是Pivot,Pivot的形式對表格的表頭進行了擴展,可以分層次放置另外的維度,如上圖還是使用了頁面與流量來源的交叉,將Source維度放到了指標的上方。 同時GA支援在兩個維度的基礎上最多選擇兩個度量Metric,我這裡選擇了Pageviews和Bounce Rate,來衡量每個頁面中各類流量來源所帶來的「量」和「質」,同樣對於分析非常有價值。
多維的交叉分析我們在日常中潛移默化地經常會用到,交叉分析對於問題的排查和定位額外有效,所以我們需要想辦法用更好的形式去展現資料,以便於更有利於進行交叉分析,其實這裡介紹的透視表的方式是最常用的,也是比較好用的, 但這類方式太少,不知道大家有沒有其他更加有效的交叉分析展現方式。