用戶行為分析


 

  本文采用的數據集是阿里天池提供的user_behavior_data_on_taobao_app公開數據集進行分析,期望通過此次分析能通推動產品迭代、實現精准營銷,提供定制服務,驅動產品決策等,需要此數據的小朋友們可以前往天池下載

用戶行為分析

想要進行精細化運營,圍繞的中心永遠是用戶。用戶研究的常用方法有:情境調查、用戶訪談、問卷調查、A/B測試、可用性測試與用戶行為分析。其中用戶行為分析是用戶研究的最有效方法之一。

什么是用戶行為分析

了解用戶行為分析

用戶行為分析是對用戶在產品上的產生的行為行為背后的數據進行分析,通過構建用戶行為模型用戶畫像,來改變產品決策實現精細化運營,指導業務增長。

 

在產品運營過程中,對用戶行為的數據進行收集、存儲、跟蹤、分析與應用等,可以找到實現用戶自增長病毒因素群體特征與目標用戶。從而深度還原用戶使用場景操作規律訪問路徑及行為特點等。

 

用戶行為分析的目的

對於互聯網金融、新零售、供應鏈、在線教育、銀行、證券等行業的產品而言,以數據為驅動的用戶行為分析尤為重要。用戶行為分析的目的是:推動產品迭代實現精准營銷提供定制服務驅動產品決策等。

主要體現在以下幾個方面:

  • 產品而言,幫助驗證產品可行性,研究產品決策,清楚地了解用戶的行為習慣,並找出產品的缺陷,以便需求迭代與優化
  • 設計而言,幫助增加體驗友好性,匹配用戶情感,細膩地貼合用戶的個性服務,並發現交互的不足,以便設計的完善與改進
  • 運營而言,幫助裂變增長的有效性,實現精准營銷,全面地挖掘用戶的使用場景,並分析運營的問題,以便決策的轉變與調整。

 

 

用戶行為分析指標

對用戶行為數據進行分析,關鍵是找到一個衡量數據的指標。根據用戶行為表現,可以細分多個指標,主要分為三類:黏性指標、活躍指標和產出指標

 

  • 粘性指標:主要關注用戶周期內持續訪問的情況,比如新用戶數與比例、活躍用戶數與比例、用戶轉化率、用戶留存率、用戶流失率、用戶訪問率。
  • 活躍指標:主要考察的是用戶訪問的參與度,比如活躍用戶新增用戶回訪用戶、流失用戶、平均停留時長、使用頻率等。
  • 產出指標:主要衡量用戶創造的直接價值輸出,比如頁面瀏覽數PV獨立訪客數UV點擊次數消費頻次消費金額等。

 

這些指標細分的目的指導運營決策,即根據不同的指標去優化與調整運營策略。簡而言之,用戶行為分析指標細分的根本目的有:一是增加用戶的粘性提升用戶的認知度;二是促進用戶的活躍誘導用戶的參與度;三是提高用戶的價值培養用戶的忠誠度

 

 

實施用戶行為分析

確定好用戶行為分析指標后,我們可以借助一些模型用戶行為的數據進行定性定量分析

常用的分析模型有

  • 行為事件分析
  • 用戶留存分析
  • 漏斗模型分析
  • 行為路徑分析
  • 福格模型分析

 

 

行為事件分析

行為事件分析是根據運營關鍵指標用戶特定事件進行分析。通過追蹤或記錄用戶行為事件,可以快速的了解到事件趨勢走向和用戶的完成情況

作用:主要是解決用戶是誰,從哪里來,什么時候來,干了什么事情,如何做的,歸納總結即為事件的定義遵循5W原則:Who、When、Where、What、How。主要用於研究某行為事件的發生對企業組織價值的影響以及影響程度。

 

用戶留存分析

用戶留存分析是一種用來分析用戶參與情況與活躍程度的模型。通過留存量和留存率,可以了解用戶留存和流失狀況。比如用次日留存、周留存、月留存等指標來衡量產品的人氣或粘度

留存率=新增用戶中登錄用戶數/新增用戶數*100%(一般統計周期為天)

新增用戶數:在某個時間段(一般為第一整天)新登錄應用的用戶數;

登錄用戶數:登錄應用后至當前時間,至少登錄過一次的用戶數;

第N日留存:指的是新增用戶日之后的第N日依然登錄的用戶占新增用戶的比例

第1日留存率(即“次留”):(當天新增的用戶中,新增日之后的第1天還登錄的用戶數)/第一天新增總用戶數;

第3日留存率:(當天新增的用戶中,新增日之后的第3天還登錄的用戶數)/第一天新增總用戶數;

第7日留存率:(當天新增的用戶中,新增日之后的第7天還登錄的用戶數)/第一天新增總用戶數;

第30日留存率:(當天新增的用戶中,新增日之后的第30天還登錄的用戶數)/第一天新增總用戶數;

 

作用:

用戶留存一般符合40-20-10法則,即新用戶的次日留存應該大於40%,周留存大於20%,月留存大於10%才符合業務標准。我們做用戶留存分析主要驗證是否達到既定的運營目標,進而影響下一步的產品決策。

 

 

漏斗模型分析

漏斗模型分析是用戶在使用產品過程中,描述各個階段中關鍵環節的用戶轉化和流失率情況。比如在日常活動運營中,通過確定各個環節的流失率,分析用戶怎么流失、為什么流失、在哪里流失。找到需要改進的環節,要重點關注,並采取有效的措施來提升整體轉化率。

 

作用:

漏斗模型分析可以驗證整個流程的設計是否合理。通過對各環節相關轉化率的比較,可以發現運營活動中哪些環節的轉化率沒有達到預期指標,從而發現問題所在,並找到優化方向。

 

 

行為路徑分析

 

行為路徑分析就是分析用戶在產品使用過程中的訪問路徑。通過對行為路徑的數據分析,可以發現用戶最常用的功能和使用路徑。並從頁面的多維度分析追蹤用戶轉化路徑,提升產品用戶體驗。 不管是產品冷啟動,還是日常活動營銷,做行為路徑分析首先要梳理用戶行為軌跡。用戶行為軌跡包括認知、熟悉、試用、使用到忠誠等。軌跡背后反映的是用戶特征,這些特征對產品運營有重要的參考價值。

在分析用戶行為路徑時,我們會發現用戶實際的行為路徑與期望的行為路徑有一定的偏差。這個偏差就是產品可能存在的問題,需要及時對產品進行優化,找到縮短路徑的空間。

 

 

福格模型分析

福格行為模型是用來研究用戶行為原因的分析模型。福格行為模型用公式來簡化就是B=MAT,即B=MAT。B代表行為,M代表動機,A代表能力,T代表觸發。它認為要讓一個行為發生,必須同時具備三個元素:動機、能力和觸發器。因此可以借助福格行為模型來評估產品的合理性和能否達到預期目標

 

 

 

AISAS模型

用戶行為分析模型其實也是一種AISAS模型:Attention注意、Interest興趣、Search搜索、Action行動、Share分享,也影響了用戶行為決策。

  • Attention Attention是指我們要想獲得一定的業績,就要首先吸引客戶的注意。如果沒有客戶的話,那后面的一切營銷活動都會沒有任何用武之地。想要吸引客戶的注意,我們可以從多方面來下手,比如說通過互動營銷這種辦法來吸引到店消費。
  • Interest 吸引住了客戶之后,我們要想真正的留住這些客戶,就要讓客戶對我們的產品產生一定的興趣,讓他們發自內心的想要購買我們的產品。這就要求我們在事先要對目標群體進行一定的市場調查,了解目標群體的癢點。
  • Search 當目標群體對我們產生一定的興趣之后,他們可能就會通過一些線上或者線下的渠道來搜集我們產品的信息,這個階段就是搜索階段。如果要想使客戶對我們留下較好的印象,線上要注意搜索引擎優化,線下要做到優化服務、提升口碑

  • Action 如果客戶經過一系列的調查之后對公司的產品較為滿意的話,就會直接進行消費。在這個階段里面促進訂單成交的最主要的環節便是銷售環節,所以會對銷售能力有着較高的要求。

  • Share 如果客戶使用該企業的產品獲得了較好的使用感受,他可能會和周圍的人進行分享,向周圍的人推薦該企業的產品,這也就是所謂的口碑傳播。我們一定要重視口碑傳播的重要作用,它的說服力能夠秒殺一切營銷活動。

 

 

數據集描述

 

 

 

 

其中,用戶行為類別包含點擊、收藏、加購物車、支付四種類別,分別用數字1,2,3,4表示

 

 

明確分析目的

基於淘寶app平台數據,通過相關指標用戶行為進行分析,推動產品迭代實現精准營銷,提供定制服務,驅動產品決策等。

 

獲得相關指標:

  1. 總量

  2. 日pv

  3. 日uv

用戶消費行為分析

  1. 付費率
  2. 復購率

 

通過漏斗模型進行用戶行為分析

 

 

 

RFM模型分析用戶價值

  最近一次消費 (Recency) ,    消費頻率 (Frequency) ,     消費金額 (Monetary)

 

理解數據

 導入相關模塊

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import plotly
import plotly.graph_objects as go
import csv
import os
import warnings

 

 

 導入數據

os.getcwd()


plt.rcParams["font.family"] = "SimHei"
plt.rcParams["axes.unicode_minus"] = False
plt.rcParams.update({"font.size":15})
plt.style.use("seaborn-darkgrid")

warnings.filterwarnings("ignore")


os.chdir(r"H:\大數據分析\用戶行為分析")

# 數據讀入
dt = pd.read_csv("./tianchi_mobile_recommend_train_user/tianchi_mobile_recommend_train_user.csv",dtype=str)

 

 

查看數據形態

print(dt.shape)

 

 

 

 

查看數據集的字段

print(dt.columns)
# user_id 用戶id item_id 商品id
# behavior_type 用戶行為類別(1:點擊,2:收藏,3:加入購物車,4:支付)
# user_geohash 用戶地理位置 item_category 商品所屬品類
# time 用戶行為發生的時間

 

 

 隨機抽取數據集中的5條數據

print(dt.sample(5))

 

 

 

清洗數據

缺失值處理

統計缺失值

統計缺失率

print(dt.apply(lambda x: sum(x.isnull()) / len(x), axis=0))

 

 

 

統計缺失列中的缺失項總量

print(dt.user_geohash.isnull().sum())

 

 

 

  可見只有user_geohash這一列缺失,缺失率為68.001%,共缺失8334824,暫不處理

 

日期時間數據處理

從抽樣的5份數據看出,time字段包含日期及小時,這兒對日期與小時作拆分

 

# 日期時間數據處理,從抽樣的5份數據看出,time字段包含日期及小時,這兒對日期與小時作拆分
dt['date'] = dt['time'].str[0:10]
dt['hour'] = dt['time'].str[11:]
print(dt.sample(5))

 

 

 

 

 

更改數據類型

查看數據集的字段類型

print(dt.info())

 

 

更改time、date為日期型數據,hour為int型數據

# 更改time、date為日期型數據,hour為int型數據
dt['date'] = pd.to_datetime(dt['date'])
dt['time'] = pd.to_datetime(dt['time'])
dt['hour'] = dt['hour'].astype('int')
print(dt.info())

 

 

 

 

 

異常值處理

 

dt.sort_values(by="time", ascending=True, inplace=True)
dt.reset_index(drop=True, inplace=True)
dt.describe(include="all")

 

 

 

 

 

觀察知並無異常數據

 

 

數據分析

總量

 

# 用戶總量
totle_num = dt["user_id"].drop_duplicates().count()

 

 

pv、uv分析

  • pv(訪問量):PageView
  • uv(訪客量):UniqueVisitor

 

 

日訪問分析

 日pv : 記錄每天用戶訪問次數

 

# 日pv : 記錄每天用戶訪問次數
pv_d = dt.groupby("date").count()["user_id"]

 

 

pv_d.name="pv_d"

 

 

 

 

 

pv_d.index.name

 

 

 日uv : 記錄每日上線的用戶數

# 日uv : 記錄每日上線的用戶數
uv_d = dt.groupby('date')["user_id"].apply(
    lambda x: x.drop_duplicates().count())

uv_d.name = "uv_d"
uv_d

 

 

 

 

 

合並uv_d與pv_d

# 合並uv_d與pv_d
pv_uv_d = pd.concat([pv_d, uv_d], axis=1)

 

 

 

 

 查看pv_d與uv_d間的相關系數

# 查看pv_d與uv_d間的相關系數
method = ["pearson", "spearman"]
for i in method:
    corr = pv_uv_d.corr(method=i)
    print(f"{i}相關系數:{corr.iloc[0,1]:.3f}")

 

 

 

 

 

訪問量與訪問用戶間的pearson相關系數為0.921、spearman相關系數為0.825,表現為強相關性

 

 

plt.rcParams["font.family"] = "SimHei"
plt.figure(figsize=(16, 9))
plt.subplot(211)
plt.plot(pv_d,c="m",label="pv")
plt.legend()
plt.subplot(212)
plt.plot(uv_d, c="c",label="uv")
plt.legend()
plt.suptitle("PV與UV變化趨勢", size=25)

plt.show()

 

 

 

 

 

通過圖形我們很容易發現雙十二期間,pv與uv同時到達峰值

 

小時訪問分析

# pv_h 記錄每天中各小時訪問次數
pv_h = dt.groupby(["date","hour"]).count()["user_id"]

 

 

pv_h.name = "pv_h"
pv_h.head()

 

 

 

 

 uv_h 記錄每天中各小時訪問用戶數

 

# uv_h 記錄每天中各小時訪問用戶數
uv_h = dt.groupby(["date", "hour"])["user_id"].apply(lambda x: x.drop_duplicates().count())

 

 

uv_h.name = "uv_h"
uv_h.sample(5)

 

 

 

 

 

合並uv_h與pv_h

# 合並uv_h與pv_h
pv_uv_h = pd.concat([pv_h, uv_h], axis=1)
pv_uv_h.sample(5)

 

 

 

pd.MultiIndex.to_frame(pv_h.index)

 

查看pv_h與uv_h間的相關系數

# 查看pv_h與uv_h間的相關系數
method = ["pearson", "spearman"]
for i in method:
    corr = pv_uv_h.corr(method=i)
    print(f"{i}相關系數:{corr.iloc[0,1]:.3f}")

 

 

 

結論: 訪問量與訪問用戶間的pearson相關系數為0.929、spearman相關系數為0.943,表現出極強的相關性

 

對某天不同時間的pv,uv變化趨勢進行可視化

 

# 對某天不同時間的pv,uv變化趨勢進行可視化
# 以2014-12-12為例
plt.figure(figsize=(16, 9))
plt.subplot(211)
plt.plot(pv_h.loc["2014-12-09"].values.tolist(), lw=3, label="每小時訪問量")
plt.xticks(range(0, 24))
plt.legend(loc=2)
plt.subplot(212)
plt.plot(uv_h.loc["2014-12-09"].values.tolist(), c="c", lw=3, label="每小時訪問客戶數")
plt.suptitle("PV與UV變化趨勢", size=22)
plt.xticks(range(0, 24))
plt.legend(loc=2)
plt.show()

 

 

 

 

 

 結論:PV與UV呈相同的變化趨勢,0-5點呈下降趨勢,5-10逐漸增長,21時附近達到峰值,18點-0點為淘寶app用戶活躍時間段

 

 

 

不同行為類型用戶PV分析

計算不同行為的用戶,在每小時的訪問量

# 計算不同行為的用戶,在每小時的訪問量
d_pv_h = pd.pivot_table(columns="behavior_type",
                        index=["hour"],
                        data=dt,
                        values="user_id",
                        aggfunc=np.size)

 

 

 

d_pv_h.sample(10)

 

 

 

 

d_pv_h.rename(columns={"1": "點擊", "2": "收藏", "3": "加購物車", "4": "支付"})

 

 

 

 

 

 

plt.figure(figsize=(10, 4))
sns.lineplot(data=d_pv_h, lw=3)
plt.show()

 

 

 

 

 

 

plt.figure(figsize=(10, 4))
sns.lineplot(data=d_pv_h.iloc[:, 1:], lw=3)
plt.show()

 

 

 

 

 

結論:用戶行為類別1,2,3,4分別表示點擊、收藏、加購物車、支付,我們可以發現四種用戶行為的波動情況基本一致,加購物車的數量高於收藏數

 

 

計算各類行為間的流失率

# 計算各類行為間的流失率
d_pv_h["1-2流失率"] = (d_pv_h.iloc[:, 0] - d_pv_h.iloc[:, 1]) / d_pv_h.iloc[:, 0]
d_pv_h["1-3流失率"] = (d_pv_h.iloc[:, 0] - d_pv_h.iloc[:, 2]) / d_pv_h.iloc[:, 0]
d_pv_h["2-4流失率"] = (d_pv_h.iloc[:, 1] - d_pv_h.iloc[:, 3]) / d_pv_h.iloc[:, 1]
d_pv_h["3-4流失率"] = (d_pv_h.iloc[:, 2] - d_pv_h.iloc[:, 3]) / d_pv_h.iloc[:, 2]

 

 

print(d_pv_h)

 

 

 

 

獲取有支付行為的客戶信息

# 獲取有支付行為的客戶信息
plt.figure(figsize=(10, 8))
plt.subplot(211)
sns.lineplot(data=d_pv_h.iloc[:, 4:6], lw=3)
plt.subplot(212)
sns.lineplot(data=d_pv_h.iloc[:, 6:], lw=3)
plt.show()

 

 

 

 

 結論:我們能夠看到在點擊到加購物車和點擊到收藏行為間的流失率基本穩定在97.7%左右;在10-15日期間從收藏到支付與從加購物車到支付的流失率較低。

剛開始接觸到這類指標,可能得不到多少有效的結論。但不用擔心,數據收集和分析持續一段時間后,數據會穩定,你也會適應應用特有的數據分布模式。若是沒有這個積累過程,就算面對一個用戶嚴重流失的層次,你也可能完全說不出個所以然。

在獲得基線之后,我們可以將數據與基線比較,衡量改動。改進之后,重新收集相關數據。為積累足夠訪問量,收集過程需要相當時間。獲得的數據能清楚地表明改動的效果:若改動后,用戶流失比原來小了,那就說明改動成功。相反則需重新考慮設計

 

消費行為分析

購買頻次分析

獲取有支付行為的客戶信息

dt_buy = dt[dt.behavior_type=="4"]

 

dt_buy.sample(5)

 

 

 

 

 

獲取客戶消費次數

# 獲取客戶消費次數
buy_c = dt_buy.groupby("user_id").size()
buy_c.sample(10)

 

 

 

 

 

 

buy_c.describe()

 

 

 

 

結論:從以上統計可以看出,用戶平均購買次數為13.5次,標准差19.6,具有一定波動性。中位數是8次,75分位數是17次,說明用戶購買次數大部分都在20次以下。而最大值是809次,這差別有點大。

  • 一般情況,消費類型的數據分布,大部分呈現的是長尾形態;絕大多數用戶是低頻次消費客群,但用戶貢獻率集中在少數分群里,符合二八法則。

 

plt.hist(x=buy_c,bins=100)
plt.show()

 

 

 

 

 

plt.hist(x=buy_c[buy_c.values<=30],bins=10)

 

 

 

 

 

 

 

 

 

 

日ARPPU分析

 

ARPPU(average revenue per paying user)是指從每位付費用戶身上獲得的收入,即統計周期內,付費用戶對產品產生的平均收入

ARPPU = 總收入 / 付費用戶數

 

人均消費次數 = 消費總次數 / 消費總人次數

# 人均消費次數 = 消費總次數 / 消費總人次數
dt_arppu = dt[dt.behavior_type == "4"].groupby(
    ["date", "user_id"])["behavior_type"].count().reset_index().rename(
        columns={"behavior_type": "buy_count"})

 

 

dt_arppu.sample(10)

 

 

 

 

dt_arppu.describe()

 

 

計算ARPPU

# ARPPU = 每日消費總次數除以消費總人數
ARPPU = pd.DataFrame(
    dt_arppu.groupby("date").sum()["buy_count"] /
    dt_arppu.groupby("date").count()["buy_count"]).rename(
        columns={"buy_count": "ARPPU"})

ARPPU.describe()

 

 

 

 

ARPPU.plot()

 

 

 

 

 

 結論:絕大部分消費客戶每天消費次數在3次以內,雙十二期間達到峰值

 

日ARPU情況分析

ARPU值 (每用戶平均收入,Average Revenue Per User) 就是指每用戶平均收入。ARPU注重的是一個時間段內運營商從每個用戶所得到的利潤。很明顯,高端的用戶越多,ARPU越高。在這個時間段,從運營商的運營情況來看,ARPU值高說明利潤高,這段時間效益好。它可以衡量產品的盈利和發展活力。

ARPU = 消費總收入 / 用戶數

因數據集中沒有消費金額信息,本次采用消費次數代替消費金額

 
        
# 新增一列以便記錄各行為次數
dt["behavior_count"] = 1

 

 

dt.sample(3)

 

 

 

dt_arpu = dt.groupby(["date", "user_id", "behavior_type"
                      ])["behavior_count"].count().reset_index()

 

dt_arpu.sample(10)

 

 

 

ARPU = dt_arpu.groupby("date").apply(
    lambda x: x[x.behavior_type == "4"].sum()/len(x.user_id.unique()))
ARPU.describe()
ARPU.plot()

結論:淘寶app活躍用戶(有過操作行為的用戶)在2014-11-18至2014-12-18這31天內,每天消費次數在0.5次上下波動,而在雙十二期間到達峰值1,976,即平均每人雙十二消費2次


付費率

付費率 = 消費人數 / 總用戶數

從此份數據中我們不能得到淘寶總用戶數,故使用活躍用戶總數代替總用戶數

# 從此份數據中我們不嫩得到淘寶總用戶數,故使用活躍用戶總數代替總用戶數
rate_pay = dt_arpu.groupby("date").apply(lambda x: x[
    x.behavior_type == "4"].count() / len(x.user_id.unique())).iloc[:, 1]
rate_pay.plot()

 

 

 

 

 

 

 

 

rate_pay.describe()

 

 

 結論:在每天活躍用戶群中,具有消費行為的占24%左右,雙十二到達50%



同一時間段用戶消費次數分布

pay_f = dt[dt.behavior_type=="4"].groupby(["user_id","date","hour"])["behavior_count"].sum()

 

 

sns.distplot(pay_f)

 

 

 

 

pay_f.describe()

 

 

pay_f.mode()

 

 結論:在同一小時段中,用戶消費次數最多的為一次,75分位數為2次

 
        

復購情況分析

復購情況:存在兩天及以上有購買行為,一天多次購買算作一次

復購率 = 又復購行為的用戶數 / 有購買行為的用戶數

 

復購率

 

每個用戶在不同日期購買總次數

# 每個用戶在不同日期購買總次數
dt_rebuy = dt[dt.behavior_type == "4"].groupby('user_id')["date"].apply(
    lambda x: len(x.unique())).rename("rebuy_count")

 

dt_rebuy.sample(5)

 

 

print("復購率為:%.3f"%(dt_rebuy[dt_rebuy>=2].count()/dt_rebuy.count()))

 

 

復購時間分析

計算不同時間,不同用戶的購買次數

# 計算不同時間(天),不同用戶的購買次數
dt_buy_d = dt[dt.behavior_type == "4"].groupby(
    ["user_id", "date"])["behavior_count"].count().reset_index()
dt_buy_d.sample(10)

 

 

 

不同用戶購物時間間隔

# 不同用戶購物時間間隔
dt_buy_d["d_diff"] = dt_buy_d.groupby("user_id").date.apply(
    lambda x: x.sort_values().diff(1)).map(lambda x:x.days)
dt_buy_d.describe()

 

 

 

 

# 繪圖
dt_buy_d.iloc[:,-1].dropna().value_counts().plot(kind="bar")
plt.xlabel("day_diff")
plt.ylabel("count")
Text(0, 0.5, 'count')

 

 

 不同用戶平均復購時間

# 不同用戶平均復購時間
sns.distplot(dt_buy_d.groupby("user_id").d_diff.mean().dropna())

 

 

 

 計算分位數

dt_buy_d.quantile(np.linspace(0,1,11)).iloc[:,1]

 

 結論:80%的淘寶用戶復購復購時間在6天以內

 

漏斗流失分析

dt_c = dt.groupby("behavior_type").size()

 

 

print("從點擊到收藏流失率為%.3f" % ((dt_c[0] - dt_c[1]) * 100 / dt_c[0]))

 

 

print("從點擊到加購物車流失率為%.3f" % ((dt_c[0] - dt_c[2]) * 100 / dt_c[0]))

 

 

print("從加購物車到支付流失率為%.3f" % ((dt_c[2] - dt_c[3]) * 100 / dt_c[2]))

 

 

print("從加收藏到支付流失率為%.3f" % ((dt_c[1] - dt_c[3]) * 100 / dt_c[2]))

 

 

 

用戶價值RFM模型分析

因數據集中無消費金額相關信息,因此此處僅對R、F兩方面進行用戶價值分析

 

每位用戶最近的購買時間

 

# 參考時間
from datetime import datetime
datenow = datetime(2014, 12, 19)

 

 

# 每位用戶最近的購買時間
recently_pay_time =  dt[dt.behavior_type == "4"].groupby("user_id").date.apply(
    lambda x: datenow - x.sort_values().iloc[-1])

 

 

recently_pay_time = recently_pay_time.rename("recent")
recently_pay_time = recently_pay_time.reset_index()
recently_pay_time.recent = recently_pay_time.recent.map(lambda x: x.days)
recently_pay_time.head(5)

 

 

 

每位用戶消費頻率

# 每位用戶消費頻率
buy_freq = dt[dt.behavior_type == "4"].groupby("user_id").date.count().rename(
    "freq").reset_index()
buy_freq.head()

 

 

因為只有31天的數據,所以這兒只基於等頻分段,簡單的將R、F分為兩個等級

# 因為只有31天的數據,所以這兒只基於等頻分段,簡單的將R、F分為兩個等級(分數越高越好)
RFM = pd.merge(recently_pay_time,buy_freq,on="user_id",how="outer")
RFM["R_value"] = pd.qcut(RFM["recent"],2,labels=["2","1"])
RFM["F_value"] = pd.qcut(RFM["freq"],2,labels=["1","2"])
RFM["RFM"] = RFM["R_value"].str.cat(RFM["F_value"])
RFM.head()

 

 

 

 

結論:通過RFM對用戶進行分組后,可對不同組別的客戶擬制實施不同的營銷方式

 

總結

pv、uv分析得知:

日訪問

  • 訪問量與訪問用戶間,表現為強相關性
  • 雙十二期間,pv與uv同時到達峰值

    小時訪問

  • PV與UV呈相同的變化趨勢,0-5點呈下降趨勢,5-10逐漸增長,21時附近達到峰值,18點-0點為淘寶app用戶活躍時間段

    不同行為類型用戶PV分析

    我們能夠看到在點擊到加購物車和點擊到收藏行為間的流失率基本穩定在97.7%左右;在10-15日期間從收藏到支付與從加購物車到支付的流失率較低。

消費行為分析

  • 用戶平均購買次數為13.5次,標准差19.6,具有一定波動性。中位數是8次,75分位數是17次,說明用戶購買次數大部分都在20次以下。而最大值是809次,這差別有點大。
  • 一般情況,消費類型的數據分布,大部分呈現的是長尾形態;絕大多數用戶是低頻次消費客群,但用戶貢獻率集中在少數分群里,符合二八法則。

    ARPPU分析:

  • 絕大部分消費客戶每天消費次數在3次以內,雙十二期間達到峰值

    日ARPU情況分析

  • 淘寶app活躍用戶(有過操作行為的用戶)在2014-11-18至2014-12-18這31天內,每天消費次數在0.5次上下波動,而在雙十二期間到達峰值1,976,即平均每人雙十二消費2次

    付費情況

  • 在每天活躍用戶群中,具有消費行為的占24%左右,雙十二到達50%
  • 在同一小時段中,用戶消費次數最多的為一次,75分位數為2次

    復購情況

  • 80%的淘寶用戶復購復購時間在6天以內
  • 復購率為:0.872

    漏斗流失分析

  • 從點擊到收藏流失率為97.900
  • 從點擊到加購物車流失率為97.026
  • 從加購物車到支付流失率為65.012
  • 從加收藏到支付流失率為35.612

    RFM

  • 我們通過RFM將用戶分為了多組,可對不同組別的客戶擬制實施不同的營銷方式

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM