隨着網絡的不斷發展,網絡購物成為一種時尚。而作為消費者,通常只會去關注淘寶里面的商品內容和是否有活動等,而從來都不會去關心淘寶內部是如何運作,或這些數據是怎樣的一種存在。為了滿足作為好奇寶寶的我,心血來潮,想探究究竟。終於在'天池'這個平台上找到了由阿里巴巴發布的淘寶用戶行為數據,以此分析淘寶數據。該數據集的時間節點為:2014年11月22日到2014年12月18日。
分析步驟
利用SQL對淘寶用戶行為進行數據分析,在MySQL關系型數據庫管理系統中進行。分析步驟如下:
- 提出問題
- 理解問題
- 數據清洗
- 構建模型
- 數據可視化
問題的提出
本項目基於淘寶用戶行為數據,探索淘寶用戶的行為模式,尋找高購買率背后用戶行為特征,具體指標包括:日PV和日UV分析,支付率分析,復購行為分析,漏斗轉化率分析和用戶價值RFM分析。
本次分析的目的是想通過對淘寶用戶行為數據分析,為以下問題提供解釋和改進建議:
1.分析用戶常見電商分析指標,確定各個環節的流失率,找到需要改進的環節
2.研究用戶在不同時間尺度下的行為規律,找到用戶在不同時間周期下的活躍規律
3.找到用戶對不同種類商品的偏好,找到針對不同商品的營銷策略
4.找出最具價值的核心付費用戶群,對這部分用戶的行為進行分析
為了分析這些問題,我們使用以下兩種模型進行分析
本次分析的目的是想通過對淘寶用戶行為的數據分析,為以下問題提供解釋和改進建議:
- 分析用戶從瀏覽到購買整個過程中,常見的電商分析指標,確定各個環節的流失率,提出改善轉化率的意見
- 在研究的時間段里找出用戶最活躍的日期以及每天活躍時間段,了解用戶的行為時間模式
- 找到用戶對不同種類商品的偏好,找到針對不同商品的營銷策略(什么產品以及產品類目的購買率最高,找出最受歡迎的產品,優化產品銷售)
- 找出最具有價值的核心付費用戶群,並且統計出這些用戶購買的產品以及類目,針對這些用戶的購買偏好推送個性化的產品銷售方案
為分析這些問題,我們常使用兩種模型分析用戶行為:(AARRR, RFM模型):
- AARRR漏斗模型分析用戶行為
該漏斗模型是將用戶進入app后的每一步行為進行拆解。它是根據用戶使用產品全流程的不同階段進行划分,針對每一環節的用戶流失情況分析出不同環節的優化優先級:
- RFM模型找出有價值的用戶
由於不同的用戶對公司帶來的收益差別很大,而且根據二八定律20%的做有價值用戶能帶來80%的收益,因此需要對用戶進行價值評價,找到最優價值的用戶群,並針對這部分用戶進行差異化營銷
R-Recency(最近一次購買時間)
R指用戶上一次消費時間,上一次購物時間距離現在最近的客戶,該客戶群體通常在近期響應營銷活動的可能性也就越大,而對於很久沒有購物行為也意味着放棄了使用app等,重新喚起用戶也需要更多的成本
F-Frequency(消費頻率)
F指用戶在某段時間內的購物次數,消費頻率越高意味着這部分用戶對產品的滿意度最高,用戶粘性最好,忠誠度也最高。
M-Money(消費金額)
M指用戶在某段時間內的購物金額,這也是為公司帶來價值的最直接體現,而消費金額較高的用戶在用戶總體中人數較少,卻能創造出更多價值,是需要重點爭取的對象。
這三個維度互相關聯,反映了每個用戶的現在價值和潛在價值,將每個維度分成5個區間進行評分,通過計算分數找到最有價值的用戶,並對用戶進行分類,可以有針對性的不同類型用戶采用不同的營銷策略。
理解數據
數據來源
本次數據是基於阿里巴巴M-Commerce平台上的真實用戶 - 商品行為數據。同時,它提供移動時代的典型位置信息。參與者需要構建面向移動商務的商品推薦模型。他們還希望深入了解數據背后的含義,並在適當的時間和地點為移動用戶推薦合適的商品。
天池數據集:https://tianchi.aliyun.com/dataset/dataDetail?dataId=46
本數據集(UserBehavior.csv)包含了2014年11月22日至2017年12月18日之間,有行為的約一百萬隨機用戶的所有行為(行為包括點擊、收藏、加購物車、支付)。數據集的組織形式和MovieLens-20M類似,即數據集的每一行表示一條用戶行為,由用戶ID、商品ID、商品類目ID、行為類型和時間戳組成,並以逗號分隔。關於數據集中每一列的詳細描述如下:
理解商品數據集的字段信息:
item_id: 用戶id
item_geohash: 商品id
item_category: 品類id(商品所屬品類)
用戶數據集:
user_id: 用戶id
item_id: 商品id
behavior_type: 用戶行為類型(分別用1、2、3、4表示點擊、收藏、加購物車、支付四種狀態)
user_geohash: 用戶地理位置
item_category: 品類id(商品所屬的品類)
time: 用戶行為發生時間
導入數據
在MySQL中創建user表,使用Navicat導入數據
create table user( 用戶id int not null , 商品id varchar(255), 用戶行為 enum('點擊','收藏','加購物車','支付'), 用戶地理位置 varchar(255), 商品品類 varchar(255), 時間 varchar(255))engine=innodb default charset=UTF8;
數據預處理與數據清洗
通過navicat將數據集導入MySQL庫。共有12256906條數據
缺失值處理:
通過觀察發現用戶地理位置多為空值,經統計共有8334824條,為防止對結果造成誤導,故該維度特征不做分析。
用戶發生行為時間數據一致化處理如上圖
由於 time 字段的時間包含(年-月-日)和小時,為了方便分析,將該字段分成 2 個字段,一個日期列和一個小時列。如上表所示。
構建模型和可視化分析
用戶總的瀏覽量(PV)
PV(訪問量):即Page View, 具體是指網站的是頁面瀏覽量或者點擊量,頁面被刷新一次就計算一次。
UV(獨立訪客):即Unique Visitor,訪問您網站的一台電腦客戶端為一個訪客。
日均訪問量
SELECT 日期, COUNT(`用戶行為`) AS '日均訪問量' FROM USER WHERE `用戶行為` = '點擊' GROUP BY 日期 ORDER BY 日期;
由上圖可知,在12月12日當天,訪問量急劇增加,有明顯的峰值,這個與雙十二活動有關。因此,在活動前幾天或者當天可以加大商品的投放量。
用戶行為分析
用戶總是(UV)
總的用戶在四個行為下的記錄情況
使用查詢語句分別輸出用戶點擊,收藏,加入購物車以及支付的用戶人數
SELECT COUNT(DISTINCT `用戶id`) AS '點擊用戶數量' FROM user WHERE `用戶行為` = '點擊'; SELECT COUNT(DISTINCT `用戶id`) AS '收藏用戶數量' FROM user WHERE `用戶行為` = '收藏'; SELECT COUNT(DISTINCT `用戶id`) AS '加購物車用戶數量' FROM user WHERE `用戶行為` = '加購物車'; SELECT COUNT(DISTINCT `用戶id`) AS '支付用戶數量' FROM user WHERE `用戶行為` = '支付';
結果為:
單個用戶行為情況
CREATE VIEW 單個用戶行為 AS SELECT `用戶id`, count(`用戶行為`), SUM(CASE WHEN `用戶行為`='點擊' THEN 1 ELSE 0 END) AS '點擊次數', SUM(CASE WHEN `用戶行為`='收藏' THEN 1 ELSE 0 END) AS '收藏次數', SUM(CASE WHEN `用戶行為`='加購物車' THEN 1 ELSE 0 END) AS '加購物車數', SUM(CASE WHEN `用戶行為`='支付' THEN 1 ELSE 0 END) AS '購買次數' FROM user GROUP BY `用戶id` ORDER BY COUNT(`用戶行為`) DESC;
查詢結果為:
查看單個用戶的復購率:
SELECT CONCAT(ROUND(SUM(case when `支付次數`>=2 then 1 else 0 end) / SUM(case when 支付次數>0 then 1 else 0 end) * 100), '%') AS '復購率' FROM 單個用戶行為;
用戶購買行為數據漏斗圖
用戶購買行為,收藏和加購物車兩個環節是並行的,不存在上下承接關系
SELECT SUM(點擊次數) AS '總點擊數', SUM(收藏次數) AS '收藏總數', SUM(加購物車次數) AS '加購物車總數', SUM(支付次數) AS '支付總數' FROM 單個用戶行為;
用戶購買行為轉化率
SELECT CONCAT(ROUND(SUM(點擊次數)/(SELECT COUNT(*) from `user`)*100,2),'%') AS '點擊-瀏覽轉化率', CONCAT(ROUND((SUM(收藏次數)+SUM(加購物車次數))/SUM(點擊次數)*100,2),'%') AS '收藏加購物車-點擊轉化率', CONCAT(ROUND(SUM(支付次數)/(SUM(收藏次數)+SUM(`加購物車次數`))*100,2),'%') AS '購買-收藏加購物車轉化率' FROM 單個用戶行為;
SELECT CONCAT(ROUND(SUM(點擊次數)/(SELECT COUNT(*) from `user`)*100,2),'%') AS '點擊-瀏覽轉化率', CONCAT(ROUND(SUM(收藏次數)/SUM(點擊次數)*100,2),'%') AS '收藏-點擊轉化率', CONCAT(ROUND(SUM(加購物車次數)/SUM(點擊次數)*100,2),'%') AS '購物車-點擊轉化率', CONCAT(ROUND(SUM(支付次數)/SUM(點擊次數)*100,2),'%') AS '購買-點擊轉化率' FROM 單個用戶行為;
查看購買率和購買次數之間的關系
### 降序排序 SELECT 用戶id, 點擊次數, 收藏次數, 加購物車次數, 支付次數, CONCAT(ROUND(支付次數/點擊次數*100, 2),'%') AS '購買率' FROM `單個用戶行為` GROUP BY `用戶id` ORDER BY 支付次數 DESC; ### 升序排序 SELECT 用戶id, 點擊次數, 收藏次數, 加購物車次數, 支付次數, CONCAT(ROUND(支付次數/點擊次數*100, 2),'%') AS '購買率' FROM `單個用戶行為` GROUP BY `用戶id` ORDER BY 支付次數 ASC;
由上表可以發現,購買率高並不代表購買次數就高,由此可以推斷,點擊次數少,收藏也少但是購買次數越高的人是有目的的購物。這類用戶更喜歡看准目標就直接下單,此類用戶目標明確,一般都是缺啥買啥,鮮少會為了促銷而沖動購物,為理智購物型
購買率為0用戶:此類用戶可以認為是等待型或克制型用戶,該類用戶在一個月里購物欲望為0,如果點擊次數較少,可能是不太會購物的或者不喜歡上網的用戶;如果點擊次數較多,加購或收藏較多,有可能考慮是為商家活動做准備,該類用戶,下單欲望較少且自制力較強,思慮多或者不會支付,購物難度較大。
基於時間維度了解用戶的行為習慣
SELECT 時間, COUNT(`用戶行為`), SUM(CASE WHEN `用戶行為`='點擊' THEN 1 ELSE 0 END) AS '點擊次數', SUM(CASE WHEN `用戶行為`='收藏' THEN 1 ELSE 0 END) AS '收藏次數', SUM(CASE WHEN `用戶行為`='加購物車' THEN 1 ELSE 0 END) AS '加購數', SUM(CASE WHEN `用戶行為`='支付' THEN 1 ELSE 0 END) AS '購買次數' FROM user GROUP BY `時間` ORDER BY `時間`;
可以看出,每日0點到5點用戶活躍度快速降低,降到一天中的活躍量最低值,6點到10點用戶活躍度快速上升,10點到18點用戶活躍度較平穩,18點到23點用戶活躍度快速上升,達到一天中的最高值。與用戶產生互動的運營行為可以參考用戶比較活躍的時間段。
一周中用戶活躍時間段分布
SELECT DATE_FORMAT(日期,'%W') AS weeks, COUNT(`用戶行為`), SUM(CASE WHEN `用戶行為`='點擊' THEN 1 ELSE 0 END) AS '點擊次數', SUM(CASE WHEN `用戶行為`='收藏' THEN 1 ELSE 0 END) AS '收藏次數', SUM(CASE WHEN `用戶行為`='加購物車' THEN 1 ELSE 0 END) AS '加購數', SUM(CASE WHEN `用戶行為`='支付' THEN 1 ELSE 0 END) AS '購買次數' FROM user where 日期 BETWEEN '2014-11-23' AND '2014-12-13' GROUP BY weeks ORDER BY DATE_FORMAT(日期,'%w');
每周用戶活躍度較穩定,每周五活躍度會有小幅降低,但是周末會慢慢回升。其中第四周周五用戶活躍度突增是由雙十二大促活動引起。
不同商品種類的用戶行為
select count(商品id) FROM (SELECT 商品id, count(用戶id) as 'times' FROM user where 用戶行為 = '支付' GROUP BY 商品id) as buy_times GROUP BY times ORDER BY COUNT(*) desc;
在本次統計的數據中,只購買一次的產品有77586種,購買兩次的產品有9910種,本次分析的商品中用戶購買的共有92753種商品,卻沒有出現購買用戶數量非常集中的商品,購買一次的商品占到83.65%,說明商品售賣主要依靠長尾商品的累積效應,而非爆款商品的帶動。
用戶RFM 模型找出有價值的用戶
我們首先統計出用戶購買商品的最大值和最小值,數據源中沒有相關的金額數據,因此通過 R 和 F 的數據對客戶價值進行打分
SELECT r.用戶id,f.frequency,recent_rank,freq_rank, CONCAT( CASE WHEN recent_rank<=(4330)/4 THEN '4' WHEN recent_rank>(4330)/4 AND recent_rank<=(4330)/2 THEN '3' WHEN recent_rank>(4330)/2 AND recent_rank<=4330/4*3 THEN '2' ELSE '1' END, CASE WHEN freq_rank<=(4330)/4 THEN '4' WHEN freq_rank>(4330)/4 AND freq_rank<=(4330)/2 THEN '3' WHEN freq_rank>(4330)/2 AND freq_rank<=4330/4*3 THEN '2' ELSE '1' END )AS user_value FROM (SELECT a.*,(@rank:=@rank+1) AS recent_rank FROM ( SELECT `用戶id`, DATEDIFF('2014-12-19',max(日期)) AS recent FROM user AS t1 WHERE `用戶行為`='支付' GROUP BY `用戶id` ORDER BY recent )AS a,(SELECT @rank:=0) AS b) AS r, (SELECT *,(@rank2:=@rank2+1) AS freq_rank FROM (SELECT `用戶id`,count(*) AS frequency FROM user WHERE `用戶行為`='支付' GROUP BY `用戶id` ORDER BY frequency DESC) AS a,(SELECT @rank2:=0)AS b) AS f WHERE r.用戶id=f.用戶id ORDER BY user_value DESC;
通過打分可以了解每位顧客的特性,從而實現差異化營銷。比如對於客戶價值高的用戶,為重點用戶需要關注;對於客戶價值中等且忠誠度高而購買能力不足的,可以可以適當給點折扣或捆綁銷售來增加用戶的購買頻率。對於客戶價值低且忠誠度不高而購買能力強的,需要關注他們的購物習性做精准化營銷,對於客戶價值低且忠誠度不高購買能力不強的客戶可作為潛在客戶。
結論
本次分析利用Mysql語句執行,數據集大約有1000萬條淘寶用戶行為數據,針對用戶行為問題我們可以使用AARRR漏斗模型進行業務分析,結合上述分析的業務指標,提出修改建議。
第一環節獲取客戶(Acquisition):關鍵點是語言市場匹配、渠道產品匹配。
2014年12月12日那一天是雙十二,點擊量陡增,懷疑是那一天淘寶平台有大促銷促銷活動。一天的不同時段中,點擊量從19點開始點擊量穩步上升,到22點到達頂峰,23點稍有回落,到24點明顯下降,大部分用戶會在晚上時段購物,平台開展活動獲取客戶首選這個時間段進行。
淘寶是電商第一平台,用戶基數大,可以利用用戶轉發的方式獲取新客戶,比如在晚間時段做促銷活動,邀請朋友拼團享受優惠來增加用戶數,適合利用口碑渠道獲取新客戶。
第二環節激活用戶(Activation):摸清楚產品的“啊哈”時刻,用戶從瀏覽到最終購買整個過程的流失情況,確定夾點位置,提出改善轉化率的建議。
用戶行為包括點擊、放進購物車、收藏以及購買,點擊量占總行為的94%,而放進購物車只占2.97%,最后實際購買跌至1.04%,夾點在放進購物車這一環節上。可能出現的原因是用戶花了大量時間尋找合適的產品。
根據數據分析結果改善轉化率的建議有:(1)優化電商平台的篩選功能,增加關鍵詞的准確率,讓用戶可以更容易找到合適產品;(2)給客戶提供同類產品比較的功能,讓用戶不需要多次返回搜索結果反復查看,便於用戶確定心怡產品;(3)精簡下單步驟,提供一鍵下單服務,比如只包含點擊-購買-支付三個環節,縮短購買流程,提高用戶體驗。
第三個環節提高留存(Retention):讓用戶養成使用習慣。
讓用戶保持使用淘寶電商平台的習慣是提高留存率的關鍵,可采用的方案可能有:(1)按照使用頻率和購買次數積攢積分,每天上線點擊量達到某個數值即可自動領取積分,到月末換取購物禮券;(2)對於年購買次數和金額達到規定量的客戶推出VIP服務,享受全場不限時9.5折優惠,購買次數同比上升之后相應福利也上升,利用這種方法提高高價值用戶的留存率和對平台的忠誠度。
第四個環節增加收入(Revenue):提高成交轉化率、復購率及產品和類目的購買率情況。
獨立用戶從點擊到最后購買的轉化率約為68%,用戶購買誠意還是很足的,所以通過合理優化電商平台的篩選功能可以提高最終購買的轉化率。
有購買行為的用戶中,大概有92%的用戶會重復購買。我們可以通過復購率、購買金額(本次數據集沒有提供)等來確定價值用戶,通過分析找出價值用戶的購買偏好,產品和類目等,給價值用戶制定個性化的產品推薦,從而提高用戶體驗和電商平台銷售情況。
以上數據顯示淘寶平台的最大優勢是產品種類和類目豐富,用戶可選擇的范圍非常廣,吸引不同類型的客戶群,所以應該繼續保持這個優勢。
可能合適的提高方案有:(1)內容營銷:“沒有找不到的產品,只有想不到的產品”來宣傳平台購物種類豐富,讓用戶形成“只要買東西上淘寶一定有”的思維習慣;(2)針對前面確定的價值用戶提供個性化產品推薦,比如最關心的產品類目和種類,上新之后定時推送給用戶;(3)針對復購率,可以推出3個月內復購優惠活動,讓客戶保持購買頻率。
第五個環節推薦(Refer):用戶推薦給其他人,關注轉發率、轉化率和K因子。
針對淘寶平台,讓用戶推薦給其他人的方案有:(1)產品在購買的時候提供拼團服務,讓用戶主動推薦給其他人;(2)每當推出新功能,比如前面提到的一鍵下單,讓體驗過的用戶轉發和分享領取優惠券,快速實現新功能推廣;(3)當用戶使用優惠券購物或者通過某種行為積分購物之后提供朋友圈打卡功能,分享給好友,實現傳播功能。
在實行以上方案之后需要關注轉發率,也既用戶分享的比例,轉化率,通過用戶分享鏈接點擊購買的用戶比例以及K因子( = 感染率*轉化率)來檢測提出方案的有效性。