拒絕踩坑!關於同比與環比,你真的瞭解嗎?

--

今天來和大家談談關於同比於環比,我曾經踩過的坑。

01 同環比的背景

首先聊聊,為啥要進行同環比的分析。

在我們做資料分析的時候,最常用的幾個分析套路,無非就是:做對比分析、做下鑽細分分析、做歸因溯源相關的分析等。

針對對比分析,最主要的就是和歷史進行比較了(除此之外,也可以和行業比較、和特定值比較等)。比如看歷史趨勢、比如用同比環比指標分析。

上圖是幾種不同的歷史對比方式,還是比較概括的。

歷史趨勢對比:即透過分析該指標在一定時間內的變化趨勢情況,分析指標走勢的異常與否;

動作前後對比:即透過分析某個特定動作之前和之後的指標情況,判斷該動作是否有效(比如行銷投放);

去年同期對比:分析本期與去年同期的資料差異情況,剔除週期因素從而判斷指標異常與否;

前一時期對比:分析本期與最相鄰的週期的差異。

其中第3、4種,就是同比和環比。

因此,同比和環比,主要是用於分析歷史對比情況的一種手段和方法。

02 同比與環比的定義

下面,我們看看同比環比的詳細定義。

(1)關於同比

同比一般情況下是本年第n月與去年第n月比。同比發展速度主要是為了消除季節變動的影響,用以說明本期發展水平與同期發展水平對比而達到的相對發展速度。在實際工作中,經常使用這個指標,如某年、某季、某月與同期對比計算的發展速度,就是同比發展速度。

這裡有個重要的點:同比通常而言,都是針對和上一年進行比較的。

同比一般是第n月的比較。但實際上,也有自然日的同比、自然周的同比、季度的同比。季度的同比是用的比較多的。比如我們經常看的三季度GDP同比增長、CPI同比增長等等,都是按照季度來統計的。

但是,自然周、自然日的同比好像就比較少見了吧?為啥呢?

我們要回到【同比】這個指標的出發點上。同比的出發點,正如百科中所述,是為了消除週期性變動的影響。比如GDP的產量,每年可能是年初松,年末緊的狀態。為了看到真實的增長情況,採取同比的處理,能消除週期因素。

但是,能進行同比的前提是,兩個對比的週期要有可比性、一致性,這也是進行對比分析的起碼要求。總不能用今年1個月的銷量和去年1個周的銷量比較吧,沒有可比性。

而日同比、周同比,就容易出現沒有可比性的問題。比如21年11月28日是週日,而20年11月28日是週五,那其實就很難比較了,畢竟週末和工作日的行為還是有差距的。周同比也是一樣的問題,不再贅述。

另外還有一個重要的原因。如果看日同比、周同比,都是拿著一天、一週和去年比較,時間實在過於久遠。沒有太強的對比價值。除非是雙十一、618購物節這種單天比較大的行為,有看當天和去年當天比較的價值,否則很少這樣比較。那種感覺就像是拿著地球的一塊石頭和月球的一塊石頭比大小,實在太遠了……

因此,提到同比,往往是進行季度同比、月同比,很少有按日、按周進行同比的。

(2)關於環比

環比,統計學術語,是表示連續2個統計週期(比如連續兩月)內的量的變化比。

這裡重要的點:環比是和上一週期比較的,而週期可以是年,也可以是日、周、月。

比如21年11月23日的環比,就是和21年11月22日比;21年第38周的環比,就是和21年37周比;21年8月環比,就是和21年7月比較。都是和同一個時間粒度的上一個週期進行比較。

關於同比和環比的基礎定義,就介紹這些。下面聊聊我之前關於同環比,踩過的坑,大家以我為鑑。

03 踩過的坑:同比定義有誤

先聊一個坑:對同比的定義理解有偏差。

上面講同比環比定義的時候,也提到了:同比通常來講,都是針對上一年的比較,而環比是基於上個週期(年、周、月等)的。這裡就很容易混淆,把同比也搞成可以基於上個週期的前序週期比較。比如我。

在實踐的產品或者分析中,經常涉及的時間週期類別比較多:自然日、自然周、自然月、季度等。大家一定切記:【同比】一定是和上一年進行比較的。

有的朋友可能會關心:如果我就是想要和上個月同一天比較,該咋整呢?那就不要用【同比】這個概念了~咱們可以看看微信公眾平臺的後臺設計。

是的,直接不體現同比的概念了,直接【日】、【周】、【月】。這樣其實是很清晰的邏輯:分別是和昨天、7天前、上月同天,進行了比較。當然,僅限在按日統計的看板中,可以有以上的日周月對比,對於其他時間型別(比如周、月)就不能這樣呈現了。

看一個不好的設計案例:

上面的面板設計中,對於自然周、自然日也提供了同比的分析,且上面的自然日的同比是和上月同日進行比較的(這是錯的)。這導致同比的邏輯過於複雜以及混亂。並不便於理解以及洞察分析。

總之,給各位小夥伴的建議就是:若是針對月度、季度的分析,可以上同比的資料,針對自然日、自然周,就不要使用同比的概念了。這時可以使用上面微信公眾平臺的這種統計呈現邏輯。不然就會造成同比概念的誤用。

04 踩過的坑:細分人群的同比環比

關於同環比,還踩過一個坑:在分析細分人群的時候。

先說一下要分析的場景。比如公司想統計VIP人群在平臺的歷史成交金額走勢,該如何統計呢?

【方法一】先找出當前有哪些人群是VIP人群,然後把這群人歷史的所有成交篩選出來,最後基於時間維度進行彙總加和,即這群人的歷史成交金額走勢。

【方法二】先判斷第一天時VIP身份的人有哪些,統計這些人在這天的成交;然後判斷第二天時VIP身份的人有哪些,統計這些人在第二天的成交,以此類推。

應該用哪種邏輯呢?

很明顯,第二種邏輯更合理。因為如果用第一種邏輯,其實是基於最新的人群進行統計歷史,但極有可能現在的VIP使用者在歷史上還沒有成為VIP,因為這個身份是變化的。如果用最新的身份統計歷史,會造成歷史上他還沒有成為VIP的成交就納入了統計,很明顯,這不是我們想要分析的內容。

其實,如果歷史成交明細表中的使用者資訊,添加了成交時使用者的級別資訊的話,那這個問題就很好解決了。但現實是往往成交事實表中只保留了使用者ID資訊,想要查使用者當時的狀態,需要基於ID查詢使用者錶的歷史分割槽,以此還原當時的級別。

我呢,其實就犯了這個問題,用了第一種統計邏輯統計。這是不合理的。用這種邏輯去分析同比、環比,統統失去了意義。因為所分析的人群物件,並不是真實的目標群體。

因此給大家的建議就是:如果是要分析細分人群(比如某個級別的使用者,比如30歲以內的使用者,比如學生使用者等)的歷史資料,切記注意要沿用歷史狀態哦,因為他們的身份狀態會隨時間變化而變化~當然,有很多資訊歷史和現在是不會變的,比如性別等。這種情況就還好。

關於同比和環比,以及我之前踩過的坑,就先分享這些。

文章來源:李啟方
原文連結:https://mp.weixin.qq.com/s/2Y2RLxVAmNYkuezMq-iJKw

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

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

文章推薦

餅圖變形記,肝了3000字,收藏就是學會!

MySQL必須掌握4種語言!

太實用了!4種方法教你輕鬆製作互動式儀表板!

跟資料打交道的人都得會的這8種資料模型,滿足工作中95%的需求

妙呀!一行Python程式碼

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

關注數據君的臉書:

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

--

--

數據分析那些事
數據分析那些事

Written by 數據分析那些事

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

No responses yet