寫給產(chǎn)品和運營人看的數(shù)據(jù)系列(1):維度和指標——事實的視角
在向數(shù)據(jù)分析師提需求時,你是否只會用“字段”這個詞,來指代所有的維度和指標呢?其實,數(shù)據(jù)的維度和指標是非常重要的,當你理清正確的維度和指標時,你的問題便已經(jīng)解決了一大半。如何正確理解維度和指標呢?一起來看一下吧。
請不要用“字段”,掩蓋自己對維度和指標的一知半解。
剛剛工作那會,我在鵝廠從事廣告變現(xiàn)相關(guān)工作。在向數(shù)據(jù)分析師提需求的時候,我只會用“字段”這個詞,來指代所有的維度和指標。很多時候,數(shù)據(jù)分析師同學會向我耐心解釋,為什么這個“字段”不能被計算,那個字段沒有辦法取出來。
直到我后來系統(tǒng)學習了數(shù)據(jù)分析、數(shù)據(jù)倉庫相關(guān)的知識,了解了維度、指標、OLAP、上卷和下鉆這些基本概念之后,才發(fā)現(xiàn)我當初的需求文檔問題有多大,而這也是我寫下這篇文章的原因——避坑。
01 為什么要搞清楚維度和指標?
最直接的,理解了維度和指標之后,再跟BI和RD提需求,能避免被當做一個數(shù)據(jù)白癡,體現(xiàn)自己的專業(yè)性(至少看起來)。
其次,理解維度和指標的前提,是了解業(yè)務邏輯和數(shù)據(jù)生產(chǎn)邏輯。
以往我們是從用戶流程、組織層級等視角理解我們的業(yè)務,但是不妨從數(shù)據(jù)邏輯視角試試:數(shù)據(jù)是在哪個主體上,在什么場景下,以什么樣的方式被生產(chǎn)和記錄的?數(shù)據(jù)是怎么被加工和呈現(xiàn)的?為什么需要這么呈現(xiàn)?這個指標如果跌了,對業(yè)務有指向意義嗎?
當你問這些問題的時候,你會發(fā)現(xiàn)你不僅要知道產(chǎn)品的設(shè)計邏輯、各個模塊的功能點,還要知道它們的耦合和組織方式。這些都會驅(qū)動你去問同事、查wiki、自己上手體驗。相信我,這樣全套流程走下來,你對業(yè)務和產(chǎn)品一定會有更深入的理解。
再次,理清楚維度和指標,能幫我們確定分析的思路。
業(yè)務指標下降了,我們要做定位和分析;要寫PRD了,我們要做功能點的收益預估——相信你一定為數(shù)據(jù)抓耳撓腮過。
那么我們究竟應該從龐大的數(shù)據(jù)庫中,選取哪些“字段”來輔助分析呢?高效的方式之一——在對業(yè)務理解基礎(chǔ)上提出假設(shè),然后把假設(shè)翻譯成維度和指標,否則我們只會陷入在龐大的數(shù)據(jù)細節(jié)中而無從下手。
所以,當你理清楚正確的維度和指標的時候,你的問題已經(jīng)解決了一大半。
02 從事件的視角,認識維度和指標
網(wǎng)上介紹維度、指標及其差異的文章很多,可以作為基礎(chǔ)概念輔助初識維度和指標。
我希望從“事件”的視角,帶你重新認識這兩個名詞。
做過App/網(wǎng)頁前端埋點的同學,相信對“事件”(event)這個詞一定不會陌生,它指的是某個特定行為的發(fā)生,如某個按鈕的曝光、點擊,這些都可以稱作事件。
這里,我們將事件的含義泛化一下,不局限在某個具體行為上,也不要拘泥在行為埋點范疇中,而是將其擴展到所有的結(jié)構(gòu)化數(shù)據(jù)表上。
每一張數(shù)據(jù)表,都是圍繞一個特定事件進行創(chuàng)建的。而事件的發(fā)生,必然有其主體,即出發(fā)事件發(fā)生的人/物/事。
維度,是對事件發(fā)生主體屬性的補充描述,或者伴隨主體而存在的,除了事件發(fā)生的時間,它一般是靜態(tài)存在的,不依賴于事件的發(fā)生。
指標,則是對事件發(fā)展程度的量化描述;一個指標,通常描述主體的其中一種狀態(tài)。它依賴于事件的發(fā)生,是一個動態(tài)變化的數(shù)值。
如果覺得抽象,我們來看個例子。
作為產(chǎn)品經(jīng)理,我們需要關(guān)注的一個重要指標是“次留”,即今天打開App的用戶,有多少比例會在第2天,繼續(xù)打開我們的App:回訪在這里就構(gòu)成了一個事件,而事件發(fā)生的主體是用戶。
如果要細拆留存,可以分拆的維度有:性別、年齡、機型、新/老用戶、地域、來源渠道、是否在App內(nèi)支付過,等等。這些維度,本身是依附于用戶這個主體而存在的,它并不依賴于回訪的發(fā)生。所以,它是一個靜態(tài)的屬性描述,并不會因為事件是否發(fā)生,而發(fā)生變化。
但是指標不是。次留隨著會隨著你觀察的時間、觀察的群體而發(fā)生變化。
03 維度的4個作用
1)篩選:我們一般通過維度來篩選所觀察的數(shù)據(jù)范圍。
如果是定性的分類維度,那么通過枚舉可以篩選,典型的定性維度如年份、省份等;如果是定量的維度,那么可以像指標一樣,按照數(shù)值大小取一個范圍即可,如身高。
2)聚合:通俗地來說,即我們希望在多大粒度上分析數(shù)據(jù)。
比如你要統(tǒng)計廣告消耗,那么是在創(chuàng)意粒度上看,還是將創(chuàng)意粒度消耗數(shù)據(jù)加總,并上卷到計劃粒度分析消耗呢?如果你之前寫過SQL,那么肯定知道在對指標進行sum(求和)、avg(求平均)之后,要在腳本最后加入group by XX,也就是你希望聚合到的維度。
但是需要注意的是,你在進行聚合的時候,一定要確認計算的指標,是可以在該維度上可分和可計算的,否則你算出來的數(shù)據(jù)肯定是錯誤的,這個會在后面會詳述。
3)對比:數(shù)據(jù)只有在對比的時候才有意義。
我們發(fā)現(xiàn)數(shù)據(jù)上漲、下跌、波動,是因為我們知道正常的數(shù)據(jù)應該是多少,超過這個范圍的數(shù)據(jù)都是異常的,才會需要進一步比較和分析。我們在對比數(shù)據(jù)的時候,通常會選擇某一個維度,然后在該維度下進行對比。不在同一個維度上,對比2個同樣指標,在業(yè)務中沒有任何意義。
假設(shè)我們要對比每一個機型的留存,必須是在同一個維度(機型)的下鉆和比較,這通常稱為橫向?qū)Ρ取?/p>
另一種對比,則是以時間為維度的縱向?qū)Ρ?。我們看DAU、留存這些指標,究竟是漲了還是跌了,通常都是觀察一段時間的指標變化;環(huán)比、同比這些,則是基于不同時間窗口維度,對指標的二次加工和計算。
4)歸因:這里的歸因,指的是對數(shù)據(jù)波動的解釋,而不是數(shù)字廣告領(lǐng)域的歸因模型(attribution model)。
當我們通過同維度的對比,發(fā)現(xiàn)數(shù)據(jù)異常波動時,通常我們需要對波動的原因進行定位和解釋。而最終的排查結(jié)果,必然會定位到某個維度上,或者維度的某個值(枚舉)上。
我們發(fā)現(xiàn)昨日的訂單數(shù),日環(huán)比(相對于前天)跌了30%,如果排除掉運營活動結(jié)束帶來的正常下跌,而是一個異常的下降,我們必須找到可能的原因。
我們通常會逐個維度分析。比如看品類:是衣服跌的多,還是鞋子跌的多,還是整體都在跌;看時間,訂單數(shù)量是否在某個時間段跌的多(是否某個時間段服務器崩了);看交易方式(是否某個支付方式出了問題)、看App版本(是否某個版本有bug)……
關(guān)于數(shù)據(jù)波動的歸因,后續(xù)會再單獨用一章的篇幅,來重點講。
04 指標在維度上是否可分和可聚合
我們拿到一份數(shù)據(jù),先不要急著上手分析,而是要弄清楚維度與指標的關(guān)系。這里的“關(guān)系”我們?nèi)匀环謨蓪觼砝斫狻?/p>
第一層:指標所反映的事實,可以在所選維度上發(fā)生、被統(tǒng)計;換句話說,指標所反映的被統(tǒng)計的事實,在業(yè)務場景中是真實存在的。
比如我們在數(shù)字廣告場景中,衡量一條創(chuàng)意好壞的指標是CTR(點擊率,Click Through Rate)= 同時期點擊次數(shù)/該廣告曝光次數(shù)。我們可以比較不同創(chuàng)意、不同計劃之間的CTR,但是不會比較不同廣告落地頁之間的CTR。
因為廣告落地頁是用戶點擊完廣告之后打開的頁面,外顯廣告點擊行為并不在落地頁這個主體上發(fā)生。盡管對比之下,不同落地頁的CTR之間肯定略有差異,但是落地頁并不是造成CTR差異的原因,這種橫向?qū)Ρ炔o實際意義。
另一個案例中,指標確實在這個維度上發(fā)生,但通常情況下并不能被計算。
我們經(jīng)??吹囊粋€指標是UV(獨立訪客數(shù)),如果在device_id(設(shè)備ID)維度上看UV,一般沒太大實際意義,因為通常情況下,一個設(shè)備ID上只有1個UV,即UV和設(shè)備ID等價(除非某些業(yè)務如反作弊場景下,需要分析1個設(shè)備登錄了幾個賬號)。
第二層:計算時,指標在所有參與計算維度上可分割、可加總。
如果我們把維度,想象成一把梳子,把指標想象成一縷頭發(fā)。當梳子經(jīng)過頭發(fā)的時候,頭發(fā)能被梳齒,分成N塊更細的發(fā)束(分割),且頭發(fā)的數(shù)量并沒有發(fā)生改變;當拿掉這把梳子的時候,這些發(fā)束又聚合在一起(加總),恢復成原來的樣子。
還是以UV舉例。我們通常需要看DAU日活和WAU周活2個指標。DAU統(tǒng)計比較簡單,看每天有多少用戶數(shù)打開了App。WAU是對過去一周的訪客數(shù)的去重計數(shù),若1個用戶在周一和周三都打開了App,在WAU的計算中,這個用戶只會被計算一次,但是在日活的口徑中,周一和周三會被分別統(tǒng)計一次。
如果我們拿到的是以周為維度、周活為指標的一張表,假設(shè)我們想要分析過去一周每天的UV,那么顯然不能直接用周活進行計算,即WAU在日期維度上不可分割。反之,周一到周日每天的DAU,加總起來也不是周活,也就是說DAU在周維度上不可加總。
特別要注意的是,一些復合指標在整體上有意義,也能在一些維度層級上被分割和被計算,但是不能被無限分割。
我們通常會看創(chuàng)意、(上卷一層到)計劃、(再上卷一層到)賬戶維度的CTR,但是我們通常不會去計算單個用戶粒度的CTR。因為假設(shè)每個用戶只會看見1次廣告,對這條廣告點擊行為只有“是”或者“否”兩種情況,CTR要么是0,要么是1,這種極端值,并不能反映一條廣告質(zhì)量的好壞。
05 維度和指標可互換
我們對于維度和指標的理解,一定要在具體業(yè)務場景下深入分析。并不是某些字段一定是維度,某些字段一定是指標;維度和指標的界定,一定要根據(jù)具體業(yè)務場景,以及在該業(yè)務場景下的數(shù)據(jù)生產(chǎn)邏輯。
正如上文所說的那樣,就像“薛定諤的貓”一樣,它取決于你對這次事件的主體、性質(zhì)等的觀察。
如果單看“體重”這個字段,你覺得它應該是維度,還是指標呢?
我認為要看“體重”所在的場景。
如果你是一個體育老師,現(xiàn)在要通過體重、升高、BMI、肺活量等這些字段的數(shù)值,給每一個學生的健康狀況打分,體重在這里就是一個要被計算的指標。
反之,假設(shè)我們要看體重跟薪資收入、壽命的關(guān)系,則體重作為維度更加適合。
此外,通過二次計算,維度和指標也可以互換,即原來是維度的字段,可以變成指標;反之,指標通過設(shè)置區(qū)間可以變成維度。
還是以上文提到的廣告消耗為例。我們拿到的數(shù)據(jù)是計劃ID(維度)、消耗(指標);但是如果我們想看,消耗在5萬及以上、3-5萬(不含5萬)、1-3萬(不含3萬)和不到1萬的計劃數(shù)有多少,那么就需要把指標變成一個分類維度,然后對計劃ID去重計數(shù)——計劃數(shù)成了指標。
總之,對維度和指標介紹文章看的再多,也不如自己親手實踐。你可以找公司的數(shù)倉或者BI同學,要1張數(shù)據(jù)底表的字段明細,嘗試自己分析,比如看指標是否可以在維度上可分割、可加總,哪些維度可以篩選、聚合。
本文由 @簡寫2019 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務。
可不可以這么理解,指標是需要去做量化的,最終需要得到值;維度是用來做分組的,是用來作為得出值的分組依據(jù)
可不可以這么理解,指標是需要去做量化的,最終需要得到值;維度是用來做分組的,是用來作為得出值的依據(jù)