資料分析的必備利器:高階函式的用法模型

前段時間刷到FineBI的直播間,整體體驗下來,內容還是很不錯的,這讓數據君對FineBI有了新的認識,數據君還追更了幾場直播。這篇文章主要分享佐羅老師在直播間談及的資料分析中很常見的高階函式的用法模型。

摘自《FineBI不只是視覺化:函式體系是資料分析師的必備利器》直播中BI佐羅老師的分享:

在上一篇《為什麼資料分析師需要函式?這篇文章帶你讀懂全部內涵!》中我們舉了三個例子,ABC分析、波士頓矩陣和RFM模型,當我們進行抽象以後會得到一個思維模式,在FineBI裡去實現過這個過程會得到一個資料分析鏈路。

這個鏈路的第一步和第二步叫做預計算和模型階段,那在這裡面我們會用到FineBI中資料編輯和資料模型這兩個功能;第二階段用綠色表示,我們要去劃分模型中誰是維度、誰是度量,以及透過公式去編寫計算欄位;第三個階段才是做視覺化。

如果你正在去選擇一個 BI 工具,我們要求這個 BI 工具的函式體系是有縱深的,這個縱深就意味著我可以在資料的編輯階段去做事情,而不依賴於 it 人員:

我可以在劃分分析尺度和元素的階段,把它分成維度和度量;我可以去構造新的分析與元素,比如新的用來做度量的計算欄位、新的用來做維度的計算欄位可以自己做;我可以在做圖的時候附加一些新的計算……

也就是說以上 5 個階段我們都可以自己完全完成,而不依賴於it,這也就達到了我們所說的自助商業智慧分析。

01 資料分析的四種模式

有的人會覺得DEF函式太難了,這裡老師給大家分享 4 種模式:

第一種模式就叫做 it 模式。什麼叫 it 模式?it 人員永遠想的是怎麼把資料立馬給你準備好,直接視覺化不就結了嗎?要什麼腳踏車,要什麼函式?因為 i t 人員會SQL,它可以寫出非常複雜的查詢,所以可以把任何的事情都轉化到IT階段來做,也就是可以完全用模式一解決所有的問題。

第二個模式,我們除了會準備一些資料拼成模型以外,還要區分維度和度量。比如帕雷託分析,當把資料拖出來後還需要進行表計算。在FineBI 裡既支援表計算,還支援二次計算或再計算,在一個結果表的基礎上再進行計算,會降低對於前序的準備的工作。

第三種模式的特點是強烈使用計算欄位,在計算欄位裡面很可能要用的是def函式。那麼問題來了,是不是所有的表計算都可以轉化為def函式?你可以舉 10 個例子,用了表計算再用def函式去解決,但是你仍然不能從數學上證明def函式一定解決表計算的問題,所以你只能說可能是那樣,這個問題就變成了一個猜想。那麼,假設def函式可以替換所有的表計算,那麼表計算是否還需要?這個問題就更好玩了,假設剛才那個猜想是真的,那也就意味著整個表計算的函式都可以不學了。那麼問題又來了,什麼時候需要表計算?這些問題都值得大家去研究。

如果在某些場景裡可以用表計算,也可以用def函式計算,那應該用什麼呢?怎麼選?原則是什麼?答案就是要用效率高的,要用要比效率。

第四個模式,正好解決了剛才的問題,它實現了一種幾乎完美的平衡。首先用預計算和模型來平衡需要高效的狀態,先要去預計算某些東西出來。然後用度量和維度的方式去劃分要分析的內容和要素,接著用計算欄位去實現更多的動態性,最後在某種場景下輔以表計算完成整個一個鏈路。

綜上所述,我們從最簡單的用函式、到了選擇函式的境地,可以解決很多原來不能解決的問題,最後能平衡住效率,還能平衡住工作成本以及其他問題。而在這裡我們也會來到工具和函式的邊界,你會發現你使用它的最大可能性。

02 高階函式的用法模型

我們為什麼要做資料分析?資料分析,任何一件事物都應該加上資料分析,如果你是HR,你就應該是HR。如果你是銷售,你就應該是銷售。如果你是財務,你就應該是財務資料分析。

而如果你資料分析的起點在電子表格,那麼必然要升級。為什麼?因為電子表格的單表容量是 100 萬行,而且它慢,所以我們需要一個更強大的資料處理引擎。

在 BI 的體系下,我們應該預設為分析的尺度是無限量級,因為對資料量的限制屬於硬體的限制、屬於節點的限制、屬於公司是否可以用硬體支撐它的限制,而我們不應該去關注這個方面,我們應該關注業務本身。

第一個叫做資料處理,是靜態計算。第二個叫做資料分析,是動態計算。第三個叫做圖表展示,它用來做互動的。

這裡我們就可以分別解釋在 BI 裡面大家存在的一些困惑:

第一個困惑,是不是BI就是圖表視覺化?不是。BI 除了能夠畫出圖表以外,還能做互動控制,這是跟靜態圖表不一樣的。

第二個困惑,是不是隨便寫公式都可以?不是。在某種場景下必須寫公式,而且必須寫動態公式、必須寫def函式,不能夠用表計算,也不能夠用預計算,也就意味著你不能夠編輯資料、也不能去用表計算,只能寫def函式。你就來到了資料分析的動態計算階段,這個階段能幫你完成的事情就是保持動態性的、實現逆向依賴。

什麼叫實向逆向依賴?就是我們在做資料分析的時候,很多東西是沒有辦法預判的,所以老闆和業務人員很有可能透過介面的互動重新去擬定要分析的基礎元素。而在這個時候你沒有機會去幹預這個過程,所以我們需要一種動態的中間過程,能夠繼續去適配這個過程,也就意味著介面的元素髮生變化,分析本身應該立馬重新進行,而不應該產生任何改變。所以我們把分析的主動權完全實現了,現場依賴給了我們的看圖的人,而我們作為分析師來講,已經預料到了這些事情它會怎麼發生,我們把這些預料到的事情已經預埋在了我們的分析體系裡,這就需要你一定使用高階動態函式。

那麼在FineBI裡就是def函式的組合,所以大家不要急於求成,一聽說這個def函式好像很厲害就立馬去用它,其實並不一定,因為有的時候在你的工作中只需要把一個報告做出來就 OK 了,並不一定非要需要用到這麼複雜的東西,所以這個地方要分場景。

我們在這裡面舉一個非常非常直觀的例子。比如說同期群分析,同期群分析是將使用者按照他們的共同購買特徵進行分組,然後對他們首次購買的年份進行分組,對比不同首次購買年份的客戶在每一年的銷售額的貢獻度。

這個東西它怎麼實現的?它的實現就是寫了一句很短很短的函式,叫做首次購買時間。

首次購買時間是我們需要動態去生成的一個維度,然後立馬把它拖拽到了這個視覺化上,整個過程是沉浸式的,沒有去重新開啟資料、也沒有去依賴於 it 的小夥伴,而只是去定義了一個計算欄位。

我們再來看下面的一個例子,這叫 z 曲線。這個模型非常有意思,這個東西在FineBI裡面不是一堆圖組合起來,而只用了FineBI裡面的一個圖表,沒有圖表的堆疊,這代表什麼意思呢?這裡面的紅線代表的是老闆預定今年的目標,紅色柱子代表的是我現在每一個月的實際情況,黑色柱子代表的是我要做到的。柱子上還有一根小短線,代表的是去年同期,超過去年同期是多少;虛線代表的是預測,未來幾個月還沒發生的預測資料。

去年同期我們要放的是預測,所以預測的是預測的是綠色的,所以從這個角度來講的話,也就是說如果按照這個形態發展下去,我們預測如果到了今年年末,我們將會達到綠色的那條虛線所在的位置,所以它是不能達到我們今年一開始年頭定的指標的,它有一大堆兒的差距,但是它會超過我去年同期的全年。這個動態z 曲線模型,特別適合公司來追蹤自己的經營業績。

而它在FineBI裡只需要一個圖,我們能實現對預測增長的引數控制,以及對整體業績做預測評估、某些區域性的業績預測評估,這裡也要用到高階函式能讓我們把這個圖做出來。所以在服務一個商業大佬的時候,企業管理是以目標為導向,在年初的時候公司老闆就已經定好了目標,如果你能幫助老闆每天重新整理資料、每週重新整理資料,讓他隨時隨刻知道這一年能不能完成業績,你說他是不是時時刻刻需要你?而這一切都是來自於你選對了資料分析工具, z 曲線模型就是很好的考察一個資料分析工具是不是可以去完成函式縱深的測試,而在FineBI裡面只需要一個圖就完全可以做到。

如果你對這一項技能投資感興趣的話,一定要用免費的FineBI來下載去體驗,官方有很多的教程,就可以自己自學起來了。那麼這就是我跟大家來分享函式為什麼重要?以及為什麼更應該去理解和學習函式?為什麼要脫離對 BI 工具停留在視覺化的認知?我們要看到函式體系的由來,以及它在 BI 工具裡的縱深可能是什麼樣子的。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。各位也可以關注我的Facebook,按讚我的臉書並私訊「10」,送你十週入門數據分析電子書唷!期待你與我互動起來~

文章推薦

常用的幾個經典Python模組

都2023年了,為什麼資料孤島問題還沒解決!

MySQL常用指令碼

商業分析應該怎麼做?一篇文章把思維和工具說清楚了!

會員流入流出視覺化的最佳選擇,桑基圖!

回顧十週入門數據分析系列文:

關注數據君的臉書:

我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。按贊我的臉書,會有豐富資料包贈送唷!

--

--

數據分析那些事

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/