【給初學者】自學三階段,教你入門資料分析 4 大環節
前言
有鑒於資料領域廣受各路工作者喜愛,未來各大公司一定也會導入更多有關數據應用,資料分析能力將成為基本門檻。本篇整理站長當時在初學時期是如何點資料分析技能樹的,希望對讀者們有幫助。
本文大綱走起:
小插播:站長的資料分析師經歷
先說這個,讓大家放心我不是江湖道士。
本人之前在廣告投放新創擔任資料分析師,主要針對客戶網站用戶行為製作客製分析報告,一部分報告內容製作成模組(範本),我的工作內容涵蓋 資料撈取、資料清理、洞察挖掘及視覺化。
後來進到銀行業的資料科學部門實習,現在正在進修寫碩論。
另外我蠻喜歡講「資料分析」而不是「數據分析」的原因是,其實真實場景會遇到的資料不完全都是量化的數據,更多有文本、文件等等更多非結構化的資料,這才是發揮資料工作者價值所在;否則一份很漂亮的數據集,任何一位統計資訊領域的大學生就能做分析了。
(I) 學習資料分析對你的意義
之所以先講這個是因為會牽涉到要學多深。
如果你不是意在於要當資料分析師,或者你的行業其實不會需要到寫程式,那麼對你來說,洞察挖掘、視覺化更為重要:就是如何使簡報更一針見血,少點廢話以及使人confuse的圖表。
如果你的行業價值在於其產生的資料,那知道如何撈取資料、與工程師溝通資料搜集需求,你才能是個和行業接地氣的資料分析師,而不只是透過外部報告做一些邏輯分析。
就我的經驗,綜上所述,能夠講出別人意料外的 insight、insight的意義以及清晰好懂的圖表,是一個資料分析師會與其他部門合作愉快的小關鍵。
(II) 資料分析基本流程 與 技能樹
資料分析師會存在於公司的意義,在於上層需要知道如何優化公司現況,或是告訴外部如何優化他們事業的現況。在你有辛苦的資料工程師大大協助下,已經將大部分公司(或是合作客戶)的資料整理在資料庫(或是雲端服務),這時你需要思考,「你要從用哪些面向整理你的洞察給公司/客戶?」、「所以你會用到哪些資料?」,於是資料分析的基本流程產生:
確立分析目的 >> 資料撈取 >> 資料清理 >> 洞察挖掘 >> 視覺化
簡單講一下各 part 的內容:
確立分析目的
重點:知道你的分析報告聽眾會是誰、他們想要被解惑的問題是什麼?
工具:對TA(目標對象) 的了解、報告框架
學習方法:
多看專業的產業分析報告,了解怎麼定位分析題目、報告的前後邏輯是怎麼鋪陳從問題聚焦到資料描述、洞察、提供建議。
不要覺得產業分析報告大部分不是純用程式畫出來所以就不看,學習產業分析報告的架構會對建構自己的資料分析邏輯很有幫助。
資料撈取
【重點】掌握現有的資料源、更新頻率
【工具】SQL-like from Database/Cloud Service (ex: BigQuery, AWS RDS, …)
【學習方法】
有可能你是直接從 EXCEL 整理圖表,你覺得不需要學撈取資料的技術;但你要很多份 EXCEL 整併一起是很麻煩,而且未來公司要自動化、數位化基本上會全部匯到資料庫,用 SQL 合併撈完是很快而且可以存 query 節省下次的工,所以還是趁早學起來的好。
然後學程式語言最好方法就是,多解不同情境的問題,在過程中遇到問題學會怎麼找解法、建立解決問題的資料庫。
[實作推薦] SQL Online IDE — 測試用的資料庫,用來練習下 SQL 語法
https://sqliteonline.com/
對初學的人來說,比起影片他教你聽的方式,我會比較推薦 可以一邊練習打語法的“互動式”課程網站(是算互動式對吧?)
[課程推薦] SQL fundamentals | Datacamp (Skill Track)
[課程推薦] Learn SQL | CodeCademy
資料清理
【重點】對資料欄位的意義了解、異常值/缺漏值的處理
【工具】Python / R
【學習方法】
初學者建議一步步走過,了解什麼是異常值、缺漏值,不太建議直接套人家包好的資料清理套件,當然你熟悉知道套件裡面在幹嘛,未來省時也可以寫一套自己的清理 function。
我這裡推薦親民一點的 coursera 中文課程:
[推薦課程] 用 Python 玩轉數據 Data Preprocessing Using Python
另外大家也可以多去看課程的「課綱」,快速的聽一下內容,來了解自己的程度大概在哪個狀態。
洞察挖掘
【重點】不只是畫出圖表叫做分析報告,還要知道自己做的分析屬於哪個階段、公司或產品需要什麼類型的分析、目的和結果為何。
根據 Gartner顧問公司從《Competing on Analytics: The New Science of Winning》衍伸出來的 4 種分析階段:敘述性分析、診斷性分析、預測性分析、指示性分析。
敘述性分析:
挖掘過去數據,聚焦在對公司目標有影響的事,告訴聽眾過去發生了什麼、現況是如何、問題出現在哪?
診斷性分析:
針對數據呈現已經發生的事,告訴聽眾為什麼會發生、背後導致的可能原因是什麼?
預測性分析:
從診斷性分析延伸,根據可能的導因,分析未來會發生什麼?使用機器學習、深度學習等方法從過去數據預測未來事件的發生機率。
指示性分析:
接續預測性分析,透過預測得到的結果,告訴聽眾下一步該做什麼、建議做法。常見應用,如:實時推薦系統。
【工具】
敘述性分析— EX: 描述產業現況的框架、描述電商網站現況的框架等
診斷性分析— EX: 魚骨圖、5W分析法等
預測性分析、指示性分析— EX: 機器學習中的迴歸、分類、分群、關聯演算法、深度學習神經網絡等
【學習方法】
強烈建議要從敘述性分析開始、再來 診斷性分析 ,最後到預測性、指示性分析 循序的學;因為如果連現況都講不清楚,做預測性分析時候你的問題就不夠痛、不夠具體,無法說服聽眾為什麼你分析的這個題目是足夠重要的。
市面上很少課程真的在講「分析邏輯」,畢竟牽涉到不同產業,會有不同的商業指標,分析師要在意的東西都會不一樣,分析邏輯本身真的可說是分析師的價值核心。如果以供應鏈產業為例的話,我會推薦 coursera 這一堂:
[課程推薦] Business Intelligence and Competitive Analysis | Coursera
另外,做分析之前,建議可以先了解 產業各項指標及其重要性,這樣你才會知道分析時,拿什麼數據來做比較、趨勢觀察等。
[課程推薦] Analytical Business Metrics | Coursera
好的分析我認為多少都帶有 競爭、比較 的元素,不管是跟公司的以前,還是跟外部競爭者比較;從客觀的框架比較下,出現問題的參照點,所以才有了優化的目標;商業上的驗證也是一樣,企業做了新的嘗試,和以前比較,就是在分析這個嘗試的有效性。
視覺化
【重點】了解各種圖表類型、選擇適合的圖表,知道的視覺化樣式越多、越能針對要講述的結論選擇最好表達的圖表。
【工具】Python (matplotlib, seaborn, plotly…) / R (ggplot2) / EXCEL / Power BI / Tableau / Data Studio …
【學習方法】
當你練習前一 part「洞察挖掘」的敘述性分析時,這時可以自己用各種圖表去表示你的資料分佈。
例如:有一個魚品種和身體特徵的資料集,魚的身長、頭長、鰭長都是連續型變數,魚的品種是離散型名目變數,這時可以怎麼在一張圖同時表示魚的身長和品種分佈?
其中一種答案是用小提琴圖 (Violin Plot)。如下圖,A, B, C, D, E, F 代表魚的品種,y 軸數值代表魚的身長,是不是可以看到不同品種魚類的身長分佈的差異呢?
小提琴圖結合箱形圖的統計意涵(中位數、四分位距、非離群值範圍),加上被旋轉90度的核密度分佈圖 (kernel density plot),如右圖的紫色區域,顯示資料集中,A品種的魚在各種身長的分佈多寡。
圖表的 function因為細節很多,自己調整有時不夠效率;此時也可以多參考 Kaggle 上別人做 EDA (Exploratory Data Analysis,探索性資料分析) 的公開 notebook,這裡推薦一份完整度很高的:
[作品參考] A Simple Tutorial on Exploratory Data Analysis | Kaggle
平時儲存一些基本圖表的 function,也能幫助擴充你的圖表資料庫、增加工作效率:
[資源推薦] Top 50 matplotlib Visualizations – The Master Plots (with full python code)
(III) 該如何讓自己更加脫穎而出?data 領域的光譜
A B
資料工程 <————> 資料分析 <————> 資料科學
我們把職位兩兩的交集區標記成 A、B,如果你發現自己喜歡研究「技術」勝於「團隊、跨部門關係」,那麼很建議你可以挑選其中一區去進階學習
A:爬蟲、資料源串接
B:分析結果用於特徵工程、建立簡單的機器學習模型,推動實際的 AI 商業應用(如產生推薦名單、投放名單等)
如果你對「技術、程式語言」沒有那麼大的熱情,但是很喜歡產業分析,那你一定要多認識不同產業,最好能具備接觸多種產業的分析案件的經歷,因為對你來說,不是要搞技術的,是要比眼界和視角,你比別人強的地方在於對不同產業的掌握度高,你在選擇未來有潛力的公司時的視角也會更加開闊和客觀。
如果你很喜歡用 data 說服人、「解釋難懂的東西給人聽」,很鼓勵你往管理層前進!
說真的讓一個績效很好但不喜歡社交的人當主管,無非是把對的人放錯地方、不考慮人際魅力和天性的結果QQ
但是人際魅力並非是把交朋友看得比績效重,而是他很會解決團隊衝突、或是讓對工作沒有自發熱誠的人願意為了團隊努力,這是我的理解。
對我來說,目前我會歸納資料分析師的職涯有這幾種選擇:
- 到不同產業大企業擔任資深分析師、持續累積資歷
- 原公司管理階層、建立分析團隊、優化資料分析流程
- 涉略其他 data position 的專業,往工程端專精
- 涉略其他 data position 的專業,再到新創公司 lead data team
相信道路很廣還有我沒想到的,也歡迎讀者跟我分享你特殊的職涯囉!
結語
即刻開始學習。
如果你希望能有夥伴一起學習的動力,歡迎私我加入 Python 資料分析學伴群。