① 有哪些方法和途徑獲取用戶流失的原因及數據
1. 首先要確定好要研究的用戶路徑由哪些步驟構成,這個可以藉助工具統計分析。不同的平台用戶進入的路徑不同,所以要考慮用戶可以從哪些平台進入你的頁面。一般包括瀏覽器、App入口、微信公眾號等等,主要是看流失的用戶集中於哪一種渠道?
2. 將每個步驟量化為產品中具體的頁面或按鈕或其他可以被統計的行為。例如訪問商品詳情頁——點擊添加購物車——訪問結算頁面——點擊支付——訪問支付成功頁。比如是注冊環節用戶流失率高,那就看看是不是注冊步驟太復雜,導致用戶注冊了一半就離開了。
3. 將以上用戶行為進行代碼埋點(可藉助第三方工具或自行統計)。比如網站的競品、用戶常訪問的論壇和網站等,通過用戶行為分析用戶在網站中的行為。比如用戶的跳轉率,用戶是否在注冊頁面流失?或者是比較看重喜歡待在某個頁面,找出用戶最關注的點在哪。
4. 通過漏洞視圖查看分析以上埋點行為事件的轉化率、流失率,找到流失用戶的渠道。通過觀察用戶的流失數據,從數據中發現和總結規律。比如是否在某個時間段(比如改版,或者是添加了某個新功能)用戶開始流失、在什麼節點達到最高峰,或者是集中在某一個時間點,這段時間內有什麼特別的事發生?
5. 分析:最基本的分析是哪一個步驟的流失率比較多,分析原因(也可能完全是猜測)是非活躍用戶還是活躍用戶,這些用戶有沒有共性或者特點,是哪一人群體,分別是什麼用戶(男性用戶還是女性用戶),有沒有哪件事觸發了他們的敏感點、或者是為了指標曾刷過數據等等。
6. 當然,如果要精益數據分析,還應該綜合考慮流失用戶來源(比如來自某個不搭調的廣告)、終端設備(比如頁面不兼容某種手機)、用戶分群(比如只女性用戶轉化率高男性用戶轉化率低)等等。了解是什麼類型的用戶在流失,流失用戶的有共性和特點是什麼。
7.最關鍵的步驟是進行驗證。此時可以用電話回訪、電話、簡訊、郵件、實地走訪、問卷卡片測試、5Why工具、競品對比等方式接觸用戶,然後思考優化方式。
最後著手改進,並且進行評估,看改進的效果如何,最後進行改版或者修改運營策略。總之數據分析的循環流程就是:
—>明確問題——查看數據——發現差異——分析原因——進行驗證——著手改進——評估改進效果—>>
② 如何用SQL分析電商用戶行為數據(案例)
本文以「淘寶用戶行為數據集」的分析全過程為例,展示數據分析的全過程
——使用工具:MySQL,Excel,Navicat,PowerBI
——分析類型:描述分析,診斷分析
——分析方法:漏斗分析,用戶路徑分析,RFM用戶價值分析,活躍/存留分析,帕累托分析,假設驗證分析。
(考慮到閱讀體驗文章中只放了SQL截圖,如需PDF版本,再公眾號後台回復「用戶行為分析」領取)
(目錄如下)
1.分析流程和方法
當沒有清晰的數據看板時我們需要先清洗雜亂的數據,基於分析模型做可視化,搭建描述性的數據看板。
然後基於描述性的數據挖掘問題,提出假設做優化,或者基於用戶特徵數據進行預測分析找規律,基於規律設計策略。簡單來說:
——描述性分析就是:「畫地圖」
——診斷性分析就是:「找問題」
——預測性分析就是 :「找規律」
在數據分析中有兩個典型的場景:
一種是有數據,沒有問題:需要先整體分析數據,然後再根據初步的描述分析,挖掘問題做診斷性分析,提出假設,設計策略解決問題。
另一種是已經發現了問題,或者已經有了假設,這種做數據分析更偏向於驗證假設。
2.淘寶用戶行為分析
本次是對「淘寶用戶行為數據集」進行分析,在分析之前我們並不知道有什麼問題,所以需要先進行描述性分析,分析數據挖掘問題。
我們首先來看下這個數據集的元數據:
根據以上數據欄位我們可以拿用戶行為為主軸從縱深方向提出一些問題,然後再從數據中找答案
縱向:
——這個數據集中用戶的日活躍和周活躍時間有什麼規律嗎?
——在當日活躍的用戶次日,三日,四日……還有多少活躍?
深向:
——用戶從瀏覽到購買的整體轉化率怎麼樣?
——用戶從瀏覽到購買的路徑是怎麼樣子的?
——平台主要會給用戶推送什麼商品?
——用戶喜歡什麼類目?喜歡什麼商品?
——怎麼判斷哪些是高價值用戶 ?
下面是叮當整理的常用分析方法:
我們可以給前面的問題匹配一下分析方法,便於後面的分析:
為了便於後面的數據分析,在分析之前我們需要先對做一下清洗
看元數據(欄位解釋,數據來源,數據類型,數據量……)初步發現問題為之後的處理做准備。
確定缺失值范圍,去除不需要欄位,填充缺失內容
根據元數據格式和後續分析需要的格式對數據進行處理
去除重復值,異常值
——去除重復值:並把用戶ID,商品ID,時間戳設置為主鍵
——異常值處理:查詢並刪除2017年11月25日至2017年12月3日之外的數據
查詢並刪除小於2017-11-25的
——驗證數據:
——分析思路:
——SQL提數:
——Excel可視化:
活躍曲線整體為上升狀態,同為周六日,12月2號,3號相比11月25日,26日活躍度更高。
用戶在周六周日相比其他時間更活躍(周六周日為休息日,用戶有更多時間)
一天內用戶活躍的最高峰期為21點(用戶在這個時間段空閑較多)
——分析思路:
——SQL提數:
列出每用戶每天及當天後面又活躍的日期,並創建「活躍時間間隔表」用於後面求次日存留,三日存留……
對「活躍時間間隔表視圖」引用進行分組統計,計算每日存留人數並創建視圖
對存留人數表進行計算,統計活躍用戶留存率
——Excel可視化:
——分析思路:
——SQL提數:
-把各種用戶行為分離出來並創建視圖方便後續查詢用戶行為數據
查詢整體數據漏斗
——Excel可視化:
用戶從瀏覽到購買整體轉化率2.3%,具體主要在哪個環節流失還需要再細分用戶路徑分析
——分析思路:
——SQL提數:
——PowerBI可視化:
用戶從瀏覽到購買的路徑主要有4條,路徑越長轉化率越底
路徑1:瀏覽→購買:轉化率1.45%
路徑2:瀏覽→加購物車→購買:轉化率0.33
路徑3:瀏覽→收藏→購買:轉化率0.11%
路徑4:瀏覽→收藏→加購物車→購買:轉化率0.03%
——分析思路:
——SQL提數:
——Excel可視化:
——描述性分析:
瀏覽量top100的商品瀏覽量呈階梯分布,越靠前的階梯之間的落差相對越大在這個階梯中的商品越少,越靠後商品瀏覽量階梯之間的落差相對越小,同階梯內的商品越多。
瀏覽量TOP100的商品所屬類目中,4756105,3607361,4357323三個類目瀏覽量遠超其他類目。
——分析思路:
——SQL提數:
查詢計算商品轉化率,升序排列,取前100個
——Excel可視化:
——描述性分析:
從商品看:有17款商品轉化率超過了1。
從類目看:這些商品所屬類目分布均勻,除965809,4801426,2735466,2640118,5063620,4789432,2945933這7個類目之外,其他類目都只有一個商品在轉化率TOP100的商品中。
——分析思路:
用戶價值分析常用的分析方式是RFM模型
本次分析中的R,F,M具體定義(僅用於演示分析方法,無實際業務參考價值):
——SQL取數與分析:
1)建立打分標准:先計算R,F的值,並排序,根據R,F值最大值和最小值得區間設計本次得打分標准
-查詢並計算R,F值創建視圖
-引用RF數值表,分別查詢R,F的最大值和最小值
-結合人工瀏覽的建立打分標准
2)給R,F按價值打分
3)計算價值的平均值
4)用平均值和用戶分類規則表比較得出用戶分類
——Excel可視化
通過描述性分析得到可視化的數據後我們一般會先看一下是否符合業務常識
如果符合常識接下來我們會通過與行業平均數據和本產品的同比環比對比看是否正常,如果不正常就要找原因,設計解決方案,如果正常那就看是否有可以優化的地方。
我們首先來看一下這些描述性分析是否符合業務常識和指標是否正常:
1.活躍曲線整體為上升狀態,同為周六日,12月2號,3號相比11月25日,26日活躍度更高。
2.用戶在周六周日相比其他時間更活躍
3.一天內用戶活躍的最高峰期為21點
4.從2017年11月15日致2017年12月3日,活躍用戶新增38%
5.從2017年11月15日致2017年12月3日,活躍用戶次日留存增長18.67%,當日的活躍用戶留存也在快速增長,第七日留存比次日留存高18.56%。
6.用戶從瀏覽到購買整體轉化率2.3%
7.用戶從瀏覽到購買的路徑主要有4條,路徑越長轉化率越低。
8.瀏覽量top100的商品瀏覽量呈階梯分布,越靠前的階梯之間的落差相對越大在這個階梯中的商品越少,越靠後商品瀏覽量階梯之間的落差相對越小,同階梯內的商品越多。
9.瀏覽量TOP100的商品所屬類目中,4756105,3607361,4357323三個類目瀏覽量遠超其他類目。
10.從商品看:有17款商品轉化率超過了1。
11.從類目看:這些商品所屬類目分布均勻,除965809,4801426,2735466,2640118,5063620,4789432,2945933這7個類目之外,其他類目都只有一個商品在轉化率TOP100的商品中。
根據以上診斷分析我們梳理出了以下假設,做假設驗證。
假設1:這些商品中有高轉化率的爆款商品
對比瀏覽量TOP5的商品,發現這些商品轉化率在同一類目下並不高,假設不成立
假設2:4756105,3607361,4357323三個類目屬於高頻剛需類目
-創建類目購買頻次表
-計算類目購買頻次平均值
-查詢4756105,3607361,4357323三個類目的購買頻次
4756105,3607361,4357323三個類目的用戶購買頻次明顯高於平均值,假設成立
假設3:有部分用戶是未點擊商詳直接從收藏和購物車購買的。
用戶不是直接從收藏和購物車購買的,只是後續復購未點擊商詳,假設不成立
假設4:淘寶推薦的商品主要是「同一類目下的高轉化商品」
用Excel對瀏覽量TOP100的商品ID和轉化率TOP100的商品ID進行去重,結果無重復值,假設不成立
3.結論:
1)用戶活躍:用戶活躍曲線整體呈上升趨勢,在一周中周六,周日活躍度比平時更高,在一天中用戶活躍曲線從凌晨4點開始往上升,在中午12點和下午5~6點有兩個小低谷(吃飯),到晚上9點時活躍度達到頂峰。
2)用戶留存:從2017年11月15日致2017年12月3日的用戶留存數據來看,淘寶的用戶留存數據較好,活躍用戶次日留存增長18.67%,當日的活躍用戶留存也在快速增長,第七日留存比次日留存高18.56%。
3)用戶轉化:整體轉化2.3%,用戶從瀏覽到購買的路徑主要有4條,路徑越長轉化率越低。
4)平台推薦與用戶偏好:從數據集中的數據來看,排除用戶興趣偏好標簽,淘寶給用戶用戶推送的商品主要是高頻剛需的類目,促使用戶復購,流量迴流平台。
以上結論受數據量和數據類型的影響,並不一定準確,僅用來練習數據分析方法。
(考慮到閱讀體驗文章中只放了SQL截圖,如需PDF版本,再公眾號後台回復「用戶行為分析」領取)
③ 數據分析人必掌握的資料庫語言-SQL指南第五期
本篇文章繼續圍繞SQL的語法重點為大家介紹 子查詢 的使用。
使用子查詢進行過濾
在SQL中SELECT語句用於查詢,之前所使用的所有SELECT語句都是簡單查詢,即從單個資料庫表中檢索數據的單條語句。然而SQL還可以創建子查詢,即嵌套在其他查詢中的查詢。
示例:
數據表:本次使用的資料庫表都是 關系表 。訂單存儲在兩個表中,每個訂單包含訂單編號、客戶ID、訂單日期,在Orders表中存儲為一行。各訂單的物品存儲在相關的OrderItems表中。Orders表不存儲顧客信息,只存儲顧客ID。顧客實際信息存儲在Customers表中。
若現在需要檢索出訂購RGAN01的所有顧客,應怎樣檢索? 步驟如下:
① 檢索包含物品RGAN01的所有訂單的編號。
② 檢索具有前一步驟列出的訂單編號的所有顧客的ID。
③ 檢索前一步驟返回的所有顧客ID的顧客信息。
上述每個步驟都可 單獨作為一個查詢 來進行。
可將一條SELECT語句返回的結果用於另一條SELECT語句的WHERE子句,也可使用 子查詢 來將3個查詢組合成一條語句。
① 第一個語句含義明確,是對prod_id為RGAN01的所有訂單物品檢索其order_num列。
分析: 通過該語句知道了哪個訂單包含要檢索的物品。
② 下一步查詢與上述語句檢索出的訂單20007和20008相關的顧客ID。此處可利用IN子句。
下面可結合上述兩個查詢,將第一個查詢變為子查詢。
分析:在SELECT語句中, 子查詢總是從內向外處理 。在處理上述SELECT語句時,DBMS實際上執行了兩個操作。
首先執行了 圓括弧()內的查詢 ,此查詢返回兩個訂單號: 20007 和 20008 .
接著這兩個值以IN操作符要求的逗號分隔的格式傳遞給外部查詢的WHERE子句。 外部查詢變為:
該語句檢索的結果和前面硬編碼WHERE子句返回的結果相同。
③ 由上述語句得出訂購物品RGAN01的所有顧客ID: 100004 和 100005 .下一步檢索這些顧客ID的顧客信息。
也可將其中的WHERE子句轉換為子查詢,就不用硬編碼這些顧客ID了。
分析: DBMS實際上必須執行三條SELECT語句才能完成上述語句。最裡面的子查詢返回訂單號,此列用於外面的子查詢的WHERE子句。外面的子查詢返回顧客ID列,此顧客ID列用於最外層查詢的WHERE子句。最外層查詢返回最終所需的數據。
由此可見,在WHERE子句中使用子查詢可編寫出功能強大靈活的SQL語句。對於能嵌套的子查詢的數目沒有限制,不過在實際應用中由於 性能的限制 ,不宜嵌套太多子查詢。
注意: 作為子查詢的SELECT語句只能查詢 單個列 ,檢索多個列將返回錯誤。另外使用子查詢並不總是執行該類數據檢索的最有效方法。
作為計算欄位使用子查詢
使用子查詢的另一方法是創建計算欄位。
示例: 需要顯示Customers表中每個顧客的訂單總數。訂單與相應的顧客ID都存儲在Orders表中。要執行這個操作,需要以下步驟:
① 從Customers表中檢索顧客列表。
② 對於檢索出的每個顧客,統計其在Orders表中的訂單數目。
這里我們可以應用之前介紹的 SELECT COUNT(*) 對表中的行進行計數,並通過一條WHERE子句來過濾某個特定的顧客ID,僅對該顧客的訂單進行計數。
如下對顧客1000001的訂單進行計數:
要對每個顧客執行COUNT(*)需要將其作為一個子查詢,如下:
分析: 該SELECT語句對Customers表中的每個顧客返回三列:cust_name、cust_state和orders。orders是一個 計算欄位 ,它由圓括弧中的子查詢建立。該子查詢對檢索出的每個顧客執行一次。此例中, 該子查詢執行了5次 ,因為檢索出了5個顧客。
子查詢中的WHERE子句與之前使用的WHERE子句略有不同,因為它使用了 完全限定列名 ,而不只是列名(cust_id)。它指定表名和列名(Orders.cust_id和Customers.cust_id)。下面的WHERE子句告訴SQL,比較Orders表中的cust_id和當前正從Customers表中檢索出的cust_id:
在有可能混淆列名時必須用一個 句點分隔表名和列名 。此例中,有兩個cust_id列:一個在Customers中,另一個在Orders中。若不採用完全限定名,DBMS會認為要對Orders表中的cust_id自身進行比較。因為:
上述語句總返回Orders表中訂單的總數,而該 結果不是我們想要的 ,如下:
由上可知,在構造語句時,若涉及到多個表,而不對同一列名加以區分則會引起DBMS拋出錯誤信息。
好的做法是,當在SELECT語句中操作多個表時, 使用完全限定列名來避免歧義 。
最後總結一下子查詢的特點:
① 子查詢必須括在圓括弧中。
② 子查詢的SELECT子句中只能有一個列,除非主查詢中有多個列,用於與子查詢選中的列相比較。
③ 子查詢不能使用ORDER BY,不過主查詢可以。在子查詢中,GROUP BY可以起到同ORDER BY相同的作用。
④ 返回多行數據的子查詢只能同多值操作符一起使用,比如IN操作符。
⑤ SELECT 列表中不能包含任何對BLOB、ARRAY、CLOB或者NCLOB類型值的引用。
⑥ 子查詢不能直接用在聚合函數中。
⑦ BETWEEN操作符不能同子查詢一起使用,但是BETWEEN操作符可以用在子查詢中。
以上便是本次介紹的全部內容,下篇文章將為大家講解 連接 和 高級連接 的使用。
我們下期再見!