數據分析難題:真實的商業問題遠比你想的複雜

圖片來源:freepik

文/陳宥瑾

我之前在分析公司數據時發現一個問題:某個指標持續下降。

不是某一天突然特別低或特別高,而是慢慢的在合理浮動範圍內往下滑。這時候該怎麼辦呢?是什麼原因造成這樣的變化?該提出哪些 Action Plan?也因為這個是公司重要的指標之一,所以我花不少時間分析造成這個指標下降的原因。

最後我得出至少 2 個變因造成這個指標下降,以及建議可以做的下一步方向,才算是把這個問題給解決。

這就是我今天想提的:在真實商業世界做數據分析時,造成問題的變因可能比教科書上提到的多更多,可能不會只單純因為某個渠道或版本等單一原因就造成數值下降,甚至數值的變化也不一定會很明顯,不像數據入門文章常見的範例「數據只在某一天下降異常多」的這種狀況。

隨著用戶規模遇大、市場愈多元、渠道愈多,以及產品本身的複雜度愈高,這些多個變因造成問題的情況可能就會愈嚴重。那該如何因應呢?以下我會提供自己在拆解問題時的一些思考脈絡給你參考!

當指標發生異常時,你可以優先這樣做

1. 保持開放的心態

如果是有多年經驗的數據分析師,我覺得這一點更需要銘記在心!當數據分析師在一個領域或同一間公司待久了,經驗往往會變成一種直覺,在數據異常的時候不假思索地從腦中跑出來,帶領大家更快找到正確的問題,這其實也是資深數據分析師的價值。

不過在直覺出現的同時也要小心,別因為有經驗而排斥了其他可能的想法或問題,因為隨著公司規模擴大、市場或使用者行為的改變,都有可能帶來不同的問題。所以在遇到數據異常的時候,如果能先有開放的心態去尋找問題,會是比較健康的開始。

2. 檢查數據來源是否異常

接下來這個則是剛入門的數據分析師很容易忘記的步驟:檢查數據來源是否正確,這邊的數據來源指的包含:數據採集工具是否發生異常導致沒有收到數據、是否因產品版本迭代而導致數據埋點出錯,甚至只是很單純的定義錯誤或是取數錯誤,都有可能造成對數據的誤判。

所以如果數據發生異常,首先絕對要先驗證數據的正確性,這樣後面才能定義正確問題,也不至於在辛苦地做完數據分析報告之後,發現原來都是白忙一場。

3. 確認過去是否有類似狀況

前面第一點有提到,經驗能很快地幫助我們找到潛在的問題發生原因與解答,所以當數據出現異常、也確認好數據來源沒有錯誤時,可以優先做的,就是觀察過往是否曾經出現過這個問題。

可以從「往年/上個月的這時候是不是同樣有數據降低的狀況」開始去思考,詢問共事的資深同事、查閱過往的數據報告,了解這個問題過往是否曾經出現。如果有的話,也可以詢問當初是怎麼找出這個問題以及怎麼解決的,再進一步去思考現在有沒有可能有更好的解決方式。

4. 觀察競品表現

如果過去的數據也都沒有出現相關的狀況,那也可以把眼光拉回到現在,看看同一時間內,其他競品有沒有類似的狀況。假設我發現進入 Q2 之後,下載量一直不停地緩緩往下掉,這時候就可以觀察競品是不是也有類似狀況。

如果競品也出現類似狀況,那可以優先考慮的是外部市場 / 環境對下載量的影響,就可以接去做進一步的假設跟問題排查。

那如果競品沒事但是自家有事呢?通常這時候我就會覺得「出大事啦~」,會趕快先做進一步分析,了解是哪個環節造成問題,是曝光量下降?還是下載轉換率降低?或是用戶下載後都沒有啟用?設定多個假設並驗證數據,釐清楚之後才能做進一步的問題排查。

確認以上都沒問題,再進入拆解異常問題的環節

以上 4 點都屬於基本的確認環節,如果經過上述的步驟都依然沒有找到問題,就可以更進一步,先利用假設找到潛在的問題點,接著再建立分組來找出數據異常的原因。

建立假設,就是拆解問題的過程

在監測數據時發現有異常問題,這就是一個起點。像是如果我在日常數據監測時發現,下載量一直不停地緩緩往下掉,這時候就需要去拆解下載量的組成 = 曝光 x 點擊率 x 下載轉換率 x 啟用比例,然後一一排查這幾個指標是否有發現異常。

如果這時候發現是曝光數下降了,就可以開始建立假設,例如:是不是用戶搜尋功能詞 / 品牌詞的數量降低了?透過瀏覽曝光的次數減少了?有特定的國家曝光數降低了?透過設定這些假設,我們就有了下一步數據排查的方向,會開始一個一個去找「否決」這些假設的數據。

當我們找到一個「否決」假設的數據,即說明此一假設不成立。而當一個假設始終都找不到可以否決他的數據,那就可以試著進一步拆解,找出可能發生問題的點,此時會利用「分組」來幫忙快速找到問題。

如何利用分組找到問題?

什麼是分組?

如果用數據分析師常用的 SQL 來解釋,分組的概念其實就是 SQL 中的 group by。而對一般人來說,可以想像成是利用特定的維度幫數據做分組。舉個具體的例子,當網站流量降低,一般人的直覺反應去觀察是不是特定渠道的流量降低了,觀察後可能會發現廣告帶來的流量降低了,接著就會進一步去找出問題。

在上述這個例子中,就是利用「渠道」這個維度來幫下載量做分組,然後我們觀察到「廣告」這個組別的表現明顯降低了,這就是用分組概念來排查數據異常的好處,會很快的找到問題可能輸現在哪裡。

通常不同的問題都會有對應優先檢查的分組

在發生問題後,不同裝置、不同指標通常都會有優先會想要檢查的分組維度,如果是 iOS APP 遇到下載數降低的問題,檢查後發現是曝光數不足導致下載數降低,就會優先檢查曝光來源是否有哪個降低了。如果是 Android APP,可能就會優先檢查是哪個渠道來源的下載數降低,再去檢查是否該渠道曝光有問題。

其他像是留存率會優先用日期做分組、核心行為數據會優先用用戶類型去做分組,都是比較常見的分組方式。

在這裡也會建議大家都能建立自己的常用分組,才不至於在下次發生問題時又需要完全從 0 開始思考,可以大幅的提升找到問題的速度。

自家產品做的版本改動或實驗也需要考量

數據異常除了外部因素以外,也有可能是因為新版本上線,或是在做實驗而引起的數據異常。如果是因為新版本上線的問題,可以觀察版本的到達率與問題發生的時間點是否契合。若是做實驗的話,則可以觀察實驗組與對照組中是否只有實驗組發生異常。有時候如果只顧著看外部原因,有可能產品本身的因素就會被忽略了。

找出異常點後,還是需要嘗試驗證它

回到一開始提到的舉例,我發現某個指標緩緩下降,而經過排查後,我找出兩個會影響數據的異常原因,並提出具體解法,才把這個問題解決。

雖然我找出了問題的原因點,但仍需要在日後的解決方案中進一步驗證這個結論是否正確,要記得這個假設只是「還沒被否決」而不代表一定完全正確,如果做到這步驟就鬆懈,很有可能沒找到真正問題點就結束整個分析專案了。

最後,希望這篇文章能幫助你更邁向數據分析師的世界,了解遇到問題該怎麼檢查、拆解、找到真正的問題點。也謝謝看到這邊的你,如果有其他想法也都歡迎留言讓我知道!

本文由 陳宥瑾 授權轉載,原文連結

瀏覽 2,725 次

覺得不錯的話就分享出去吧!

發佈留言

Back to top button