文章開頭:本文是蘇格蘭折耳喵老師發(fā)表在產(chǎn)品壹佰的文章(http://www.chanpin100.com/article/105515 )轉(zhuǎn)載文章僅供大家習(xí)咱枉,不作任何商業(yè)用途。
即使不會高深莫測的機(jī)器學(xué)習(xí)徒恋,你照樣可以利用Excel和簡單的統(tǒng)計學(xué)知識來預(yù)測用戶流失蚕断。
即使不會高深莫測的機(jī)器學(xué)習(xí),你照樣可以利用統(tǒng)計學(xué)來預(yù)測用戶流失入挣。
什么是用戶流失率亿乳?我們?yōu)槭裁葱枰P(guān)注用戶流失率?
簡單來說径筏,用戶流失率是指用戶的流失數(shù)量與全部使用/消費產(chǎn)品(或服務(wù))用戶的數(shù)量的比例葛假,是用戶流失的定量表述,以及判斷用戶流失的主要指標(biāo)滋恬,直接反映了產(chǎn)品的市場接受程度如何聊训,以及運營工作的好壞。
一般來說夷恍,這個指標(biāo)用在“訂閱型產(chǎn)品”的情形居多,如信息訂閱類App“錘子閱讀”媳维、絕大多數(shù)的在線SaaS產(chǎn)品酿雪,甚至傳統(tǒng)的牛奶訂購。由于留住當(dāng)前的用戶要比獲取新用戶來的劃算侄刽,所以預(yù)測流失率的目標(biāo)在于:
預(yù)測用戶將會在哪個時間點離開(在訂閱期結(jié)束前)指黎,在合適的時間點對這些用戶施加影響,挽留他們州丹,如通過短信醋安、郵件或APP杂彭,利用超低價商品吸引回訪或者專屬優(yōu)惠券等,這些策略對于一些流失用戶是很有效的吓揪!
接下來亲怠,筆者將利用簡單的統(tǒng)計學(xué)知識,介紹一種基于用戶不活躍記錄的用戶流失預(yù)測模型柠辞。該模型在不使用機(jī)器學(xué)習(xí)算法的情況下团秽,可以給出一個容易理解的用戶流失預(yù)測,以便我們對將要離開的用戶有一個相當(dāng)準(zhǔn)確的洞察叭首。
廢話不多說习勤,進(jìn)入正題吧~
1?用戶活躍的操作性定義
在我們正式開始預(yù)測用戶流失率之前,我們需要記錄用戶的歷史活躍情況焙格。做這個的目的在于图毕,了解用戶是否在使用我們的產(chǎn)品或服務(wù)。那么眷唉,問題就來了予颤,用戶的“活躍”該做怎樣的操作性定義(即根據(jù)可觀察、可測量厢破、可操作的特征來界定變量含義的方法)荣瑟?實際上,“用戶活躍”的定義取決于你的業(yè)務(wù)背景摩泪,跟產(chǎn)品或者服務(wù)具體場景密切相關(guān)笆焰,不同類型的產(chǎn)品對“用戶活躍”有不同的定義。
以新浪微輿情的“信息監(jiān)測”為例见坑,它是一款訂閱型的社會化大數(shù)據(jù)產(chǎn)品嚷掠,用戶通過設(shè)置各種關(guān)鍵詞組合來檢索相關(guān)信息,然后選擇郵件或者客戶端訂閱荞驴,通過自定義的接收頻次來準(zhǔn)時收取訂閱信息不皆。
對于這款大數(shù)據(jù)產(chǎn)品來說,“用戶活躍”可以這樣定義---如果一個用戶是活躍的熊楼,那么霹娄,ta在指定時間段內(nèi)(分析的時間單位取決于分析者對業(yè)務(wù)的理解,可以是天鲫骗、周犬耻、月、季度或年)执泰,應(yīng)該包含如下付費枕磁、使用或者互動行為:
該用戶對“信息監(jiān)測”的訂閱尚未過期;
該用戶在web端或者移動端登錄產(chǎn)品頁面术吝;
該用戶使用了產(chǎn)品的部分或全部功能计济,如基于信息源或者地域的定向監(jiān)測功能茸苇;
該用戶在此期間產(chǎn)生了一定消費,如文本數(shù)據(jù)下載沦寂、訂閱續(xù)費学密、定制報告等;
該用戶在此期間對該產(chǎn)品有各種反饋凑队,包括投訴…
對于這款產(chǎn)品來說则果,以月份為單位來分析用戶行為是很有意義的---因為該產(chǎn)品最短的訂閱期是一個月,最長的訂閱期是一年漩氨。
一旦清晰的界定了“用戶活躍”的定義西壮,我們就可以用這些操作性定義來對每個月份的用戶(不)活躍情況進(jìn)行編碼,利用二進(jìn)制值(0,1)---假如在X月份叫惊,用戶是活躍的款青,將ta的活躍值設(shè)定為1,否則設(shè)定為0霍狰。
2?建立“用戶不活躍檔案”
現(xiàn)在抡草,對于每位用戶,我們有了一個以月為單位的“活躍標(biāo)記”蔗坯,接下來我們以此為基礎(chǔ)康震,建立起“用戶不活躍檔案”。這意味著宾濒,對于每個用戶腿短,筆者想對他們連續(xù)不活躍的月份數(shù)進(jìn)行計數(shù)統(tǒng)計。
在這里绘梦,筆者選擇了一年的“分析窗口”(也就是把12個月作為分析的時間范圍)橘忱,將“活躍檔案”和“不活躍檔案”以表格的形式呈現(xiàn)---藍(lán)色表單顯示每位用戶在各個月份上的活躍記錄,綠色表單則顯示用戶的不活躍記錄卸奉。根據(jù)用戶在此時間段內(nèi)可能出現(xiàn)的活躍情形钝诚,筆者枚舉出3種典型用戶,如下表所示:
用戶A:該用戶在剛進(jìn)入“分析窗口”時是活躍的榄棵,然而在5月變得不活躍(也就是說凝颇,5月份是第一個不活躍的月份)。接下來疹鳄,這個用戶的不活躍狀態(tài)持續(xù)到了12月拧略,也就一直持續(xù)到了“分析窗口”的末尾。因此尚辑,從5月到12月辑鲤,“用戶不活躍檔案”對用戶連續(xù)不活躍的月份進(jìn)行逐月累加的計數(shù)統(tǒng)計盔腔。
用戶B:跟用戶A一樣杠茬,該用戶剛開始也是活躍的月褥。不同的是,該用戶在3~6月期間是不活躍的瓢喉,在7月僅維持了一個月的活躍狀態(tài)宁赤, 接著在8月和9月又進(jìn)入不活躍狀態(tài),最后在“分析窗口”的10月栓票,11月和12月又回到活躍狀態(tài)决左。在這種情況下,每當(dāng)用戶由不活躍狀態(tài)返回活躍狀態(tài)時走贪,前面的不活躍月份計數(shù)需要重置佛猛。也就是說,當(dāng)我們再次對該用戶的連續(xù)不活躍月份進(jìn)行計數(shù)時坠狡,需要重新從1開始計數(shù)继找,前面的不活躍月份計數(shù)不再累加。
用戶C:與上述提及的兩類用戶不同逃沿,該用戶剛進(jìn)入“分析窗口”時婴渡,是不活躍的狀態(tài)。這種情形的發(fā)生凯亮,可能是用戶的訂閱早已過期(最好在正式分析前排除這種情形边臼,因為很難處理),或者該用戶在“分析窗口”開始前就是不活躍的假消。因為我們看不到“分析窗口”前的用戶活躍情況柠并,所以用戶在此之前的活躍狀態(tài),我們是不了解的置谦。鑒于此狀況堂鲤,我們對這些月份進(jìn)行特殊的標(biāo)記---使用-1標(biāo)記用戶C頭幾個不活躍的月份。該用戶其他的不活躍情形媒峡,可以參照前面兩類用戶方式進(jìn)行計數(shù)瘟栖。
Note:后面綠色的表單,也就是“用戶不活躍檔案”谅阿,才是我們接下來建立用戶流失模型的數(shù)據(jù)基礎(chǔ)半哟。
3 構(gòu)建用戶流失模型
有了上述的關(guān)于用戶不活躍的操作性定義,我們就可以在“分析窗口”內(nèi)(1月份到12月份)以月份為單位签餐,對從0到12的連續(xù)不活躍月份數(shù)上的用戶數(shù)量進(jìn)行計數(shù)統(tǒng)計寓涨。
這個步驟可以通過數(shù)據(jù)透視表實現(xiàn)---通過聚合每個月、每個不活躍級別的用戶數(shù)量氯檐。 如下表所示:
上表中戒良,從列的方向上來看,每個單元格的數(shù)值表示每個月的連續(xù)不活躍X個月的用戶的數(shù)量冠摄。舉個例子來說糯崎,上表中第一個高亮數(shù)值(574)几缭,代表1月份已經(jīng)不活躍1個月的用戶數(shù)量,該數(shù)值來自于前面12月份的4815個活躍用戶沃呢。第二個高亮數(shù)值(425)表示在2月份已經(jīng)連續(xù)不活躍2個月的用戶數(shù)量---425來自于574(1月份不活躍1個月的用戶數(shù)年栓,它是2月份不活躍2個月的用戶數(shù)的基數(shù))。值得注意的是薄霜,第一行的0個連續(xù)不活躍月份數(shù)某抓,其實表示的是基數(shù)中活躍用戶的數(shù)量。
使用這些數(shù)據(jù)惰瓜,我們可以計算出在“分析窗口”內(nèi)否副,每個月連續(xù)不活躍月份數(shù)的用戶占比情況。如下面的綠色表格所示:
上表中崎坊,高亮的數(shù)值(74%)表示2月份已經(jīng)連續(xù)2個月不活躍的用戶占比副编。該百分比是這樣計算得到的:
筆者想獲得最具代表性的數(shù)值,由此可以對“分析窗口”的最末4個月(9月流强,10月痹届,11月和12月)取平均值。我們可能沒有足夠的數(shù)據(jù)去計算這些平均值(比如10月份打月,11月份和12月份)---在這種情況下队腐,我們?nèi)∷锌捎脭?shù)值的平均值(用于計算平均值的數(shù)值區(qū)域以紅色線框標(biāo)記):
4 計算用戶流失概率
哈哈,如果你還在看這篇文章奏篙,那么恭喜你柴淘!我們將要探討最激動人心的部分...在這部分,我們將用上一點統(tǒng)計學(xué)的小知識秘通。
讓我們回顧一下本文的終極目標(biāo)---計算各個連續(xù)不活躍月份數(shù)(0-12)下的用戶流失概率为严。
也就是說,如果某個用戶已經(jīng)連續(xù)X個月不活躍肺稀,那么這個用戶接下來將要流失的可能性有多大第股?從數(shù)學(xué)上來說,我們可以使出貝葉斯公式這個大殺器來計算用戶流失率话原。貝葉斯公式盡管是一個數(shù)學(xué)公式夕吻,但它的原理不要數(shù)字也能明了。如果繁仁,你看到一個人總是做一些好事涉馅,則那個人多半會是一個好人。該數(shù)學(xué)公式包含著樸素的真理:
當(dāng)你不能準(zhǔn)確知悉一個事物的本質(zhì)時黄虱,你可以依靠與事物特定本質(zhì)相關(guān)的事件出現(xiàn)的多少去判斷其本質(zhì)屬性的概率稚矿。
用數(shù)學(xué)語言表達(dá)就是:支持某項屬性的事件發(fā)生得愈多,則該屬性成立的可能性就愈大。它的數(shù)學(xué)形式如下:
在這里晤揣,A和B都代表事件(Event)偶翅,同時P(B)≠0。P(A)和P(B) 分別代表A和B的先驗概率或邊緣概率碉渡。之所以稱為"先驗"是因為它不考慮任何A(B)方面的因素。P(A|B)是已知B發(fā)生后A的條件概率母剥,也由于得自B的取值而被稱作A的后驗概率滞诺。P(B|A)是已知A發(fā)生后B的條件概率,也由于得自A的取值而被稱作B的后驗概率环疼。
在本案例中习霹,對應(yīng)的公式如下所示:
然并卵,上面公式里有一項是沒啥意義的---P(連續(xù)X個月不活躍|流失)炫隶,它的含義是“在已經(jīng)流失的情況下淋叶,連續(xù)X個月不活躍的概率“。試想一下伪阶,假如你已經(jīng)流失掉了煞檩,你不可能是一個不活躍的狀態(tài),這個概率值是么有啥業(yè)務(wù)意義的栅贴。鑒于此種情形斟湃,筆者果斷拋棄這一項(謹(jǐn)記!)檐薯。由此凝赛,我們得到了一個終極版的流失率計算公式:
接下來,讓我們看看公式右端的兩項(分子和分母)坛缕,然后計算它們在每個不活躍月份上的數(shù)值墓猎,進(jìn)而得到我們想要的用戶流失概率值(注意,它是一個條件概率值赚楚,也就是在連續(xù)不活躍X個月的情況下的用戶流失概率)毙沾。
先說說分母P(連續(xù)X個月不活躍),筆者之前已經(jīng)計算過它們---也就是“分析窗口”最后4個月占比平均值:
P(1) = 19%
P(2) = 81%
P(3) = 89%
P(4) = 92%
P(5) = 93%
P(6) = 95%
P(7) = 96%
P(8) = 97%
…
接下來宠页,我們再來通過例子求解分子P(流失)搀军。首先,1個月不活躍的用戶的流失概率P(C1)是多少呢勇皇?對于這些將要流失的用戶罩句,他們將要連續(xù)性的不活躍的月份數(shù)已經(jīng)在我們所考慮的集合之內(nèi)了,換言之敛摘,這些用戶將要不活躍的月份數(shù)為1個月门烂,2個月,3個月,…屯远,蔓姚。因而,我們這樣定義已經(jīng)不活躍1個月的用戶的流失概率P(C1):
現(xiàn)在慨丐,?以同樣的方式坡脐,?持續(xù)2個月不活躍的用戶的?P(流失)?,也就是P(C2)是多少呢房揭?對于這些將要流失的用戶备闲,他們將要持續(xù)性的不活躍,2個月捅暴,3個月恬砂,4個月,…蓬痒,12個月泻骤。因而,我們這樣定義已經(jīng)連續(xù)不活躍2個月的用戶的流失概率P(C2):
通過歸納和演繹梧奢,我們以同樣的方式來計算每個不活躍月份的用戶流失概率:
在這里狱掂,n是連續(xù)不活躍月份數(shù)的極限值,而我們發(fā)現(xiàn)亲轨,這個概率是穩(wěn)定的符欠。從上面的表單里可以到,這個發(fā)生在第7個連續(xù)的月份瓶埋,這里的概率值維持在95~96%希柿。
簡化起見,我們假設(shè)养筒,在連續(xù)月份上不活躍是相互獨立的事件曾撤。此時, P(A ∩ B )= P(A)* P(B)晕粪。因而挤悉,我們可以采用如下的公式:
現(xiàn)在,我們已經(jīng)算出了每個不活躍月份概率對應(yīng)的分子和分母巫湘,那我們就可以啟動最后一步---算出每個各個連續(xù)不活躍月份數(shù)的用戶流失概率装悲。先前我們已經(jīng)討論過了,n的值為7尚氛。
...
最終的計算結(jié)果如下表所示:
請注意诀诊,活躍用戶(也就是第一行連續(xù)0個月不活躍的情形)的流失率由P(1) Ⅹ P(2) Ⅹ P(3) Ⅹ P(4) Ⅹ … Ⅹ P(7)計算得出。這里我們并沒有除以任何值阅嘶,這是因為---當(dāng)用戶處于活躍狀態(tài)時属瓣, P(連續(xù)0個月不活躍)為1载迄。
最后,我們還可用一條流失率曲線來直觀的反映流失率的變化情況抡蛙,由此決定對非活躍用戶進(jìn)行挽留操作的最佳時機(jī)护昧,該曲線所下圖所示:
5?結(jié)語
在本文中,筆者并沒有提供該模型批量化使用的具體執(zhí)行細(xì)節(jié)粗截,假如你理解了這個模型構(gòu)建的邏輯惋耙,那么你可以使用SQL、Python熊昌,甚至是Excel來實現(xiàn)它绽榛。
此外,在實踐中浴捆,這個模型最好是分不同的用戶群進(jìn)行運行。在本文中稿械,筆者僅僅在某一類用戶上運行选泻,然而,根據(jù)不同的標(biāo)準(zhǔn)來劃分用戶群體會對實際業(yè)務(wù)更有意義美莫。比如页眯,你可以根據(jù)用戶價值進(jìn)行劃分,然后對每個用戶子群體進(jìn)行用戶流失預(yù)測厢呵。
當(dāng)然窝撵,筆者只是在月份的尺度上進(jìn)行用戶流失分析,但是襟铭,對于很多業(yè)務(wù)場景碌奉,更細(xì)粒度的分析視角可能更有意義,比如按周和按天寒砖。
最后赐劣,以《神雕俠侶》中的一段話作結(jié),我想哩都,感悟到數(shù)學(xué)之美魁兼、不受分析工具的限制,并能靈活運用到實際業(yè)務(wù)中的感受大抵如此:
過了良久漠嵌,青衣人又將巨劍放下咐汞,去取第三柄劍,那卻是一柄木劍儒鹿,落在手中輕若無物化撕,但見劍下的石刻道:“四十歲后,不滯于物约炎,草木竹石均可為劍势决。自此精修蛤高,漸進(jìn)于無劍勝有劍之境撵彻!”
文章結(jié)尾:再次申明所有轉(zhuǎn)載文章僅供學(xué)習(xí),感謝蘇格蘭折耳喵老師的分享热芹,如果喜歡我們的文章點關(guān)注??吧!比心呦惨撇!