如何基于時序分析,預測余額寶的申贖金額?

8 評論 6278 瀏覽 16 收藏 12 分鐘

編輯導語:很多人都用過支付寶中的余額寶功能,可以將資金轉入余額寶后產生收益,如果我們對余額寶的申贖進行預測,可以是業務的理解更加的精準;本文是作者分享了關于如何基于時序分析,預測余額寶的申贖金額,我們一起來了解一下吧。

“統計模型用好了,預測準確性也很高。”

今天和大家分享一個14年下半年作者獨立負責的、基于時間序列模型的預測項目:余額寶的申贖預測。

一、項目背景

大家都用過余額寶。

用戶將資金轉入余額寶,在行業上叫“申購”;將資金轉出余額寶,或者用余額寶進行轉賬、購買等,在行業上叫做“贖回”。

總的贖回量大于申購量,對于余額寶來講,就是凈流入;反之是凈流出。

好幾億余額寶用戶,每天都會發生巨量的申購贖回行為;15年的時候,每天流入流出的規模都在百億級別;且隨著余額寶用戶的活躍度不斷提升,申贖的規模也不斷擴大。

這給余額寶的資金管理帶來了巨大的難題。

第一個問題就是,今天(或者近期)余額寶是凈流入還是凈流出?如果是凈流入,基金經理需要將凈流入的資金盡可能投資出去,避免滯留手中導致基金收益率下降;如果是凈流出,基金經理則需要提前預留到賬資金,應對資金贖回壓力。

其次的問題是,到底凈流入或者凈流出的規模有多大?這就是一個典型的預測問題;如果預測的精準,基金經理可以預留比較少的資金安全墊,提升收益率。

因此,我基于余額寶的歷史數據,建立了時序模型,預測未來一段時間(7天、14天、30天)以及當天的申贖金額。

隨著對業務理解的不斷加深,預測模型的精準度也不斷提升;最終實現當天預測當天的精準度在99%左右,預測未來7天時間的精準度平均95%以上,預測未來30天的精準度在90%以上。

有意思的是,在15年的5月份,阿里的天池大賽也搞了一個賽題,就是預測余額寶的申贖金額,如下圖:

二、余額寶申贖的一些規律

首先講講業務在數據上的一些規律,這對建模過程至關重要;每個因素、每個業務規律,都是影響預測準確性的因子,也是模型的業務解釋方向。

1. 關于申購

先看申購,先看一個總體轉入金額的走勢:

如何基于時序分析,預測余額寶的申贖金額?

申購層面,影響的因素主要有星期周期因素、工資發放因素、阿里活動因素、節假日因素、收益率因素、支付寶的自動轉入等。

星期周期:這個是比較明顯的因素,由于受到基金特點的影響,在每天15點以后申購的行為將記為次交易日申購;因此周五15點以后的申購將與周一的申購一樣,白白浪費周末兩天的收益損失,因此周六周日申購很少。

月度工資發放:這個主要和工資的發放有直接關聯,很多用戶會在發工資后直接轉入余額寶,因此工資發放日會帶來更多申購;日期往往是1號、10號、15號、月末。

阿里系活動:這個和阿里經常做的活動密切相關。

節假日:和星期因素類似,大型節假日期間申購會喪失收益,因此轉入很少,用戶會在節假日之前轉入。

余額自動轉入:很多支付寶用戶開通了余額自動轉入余額寶,每天凌晨到9點會系統自動轉入。

收益率:余額寶收益率的高低會影響大家轉入的多少。

為了便于分享,關于影響因素的拆解,主要羅列以上這些。

2. 關于贖回

再看贖回,以下是贖回的金額走勢:

如何基于時序分析,預測余額寶的申贖金額?

在贖回層面,影響的因素主要有星期因素、還信用卡、節假日、消費活躍情況、阿里活動、收益率(及資本市場情況)、轉出到卡轉賬等。

  • 星期因素:和申購類似,周末的贖回是延期到賬的。因此整體周末的贖回是要遠少于申購的;
  • 還信用卡:還信用卡日期經常固定在每個月幾個比較大的日期,尤其是下旬的還卡金額較多;
  • 節假日:在很多節假日前用戶會有較多資金需求,傾向轉出;
  • 消費活躍:很多用戶是用余額寶進行支付的。總體消費的活躍上升,會帶來余額寶的贖回也上升;
  • 阿里活動:主要就是雙十一等大促,對余額寶的贖回影響巨大;
  • 資本市場:在股市瘋漲、IPO重啟的時候,打新資金、流入股市的資金對余額寶贖回產生不小影響。

關于余額寶的申贖影響因素,以上是比較主要的一些,暫時分享到這里。

三、模型的建立

模型的核心邏輯,采用的是時間序列的分解法,將每日的申贖結果,認為是四個因素影響的:長期趨勢因素、季節因素、星期因素、其他因素。

最后用乘法模型,將每個因素參數相乘:

如何基于時序分析,預測余額寶的申贖金額?

具體建模過程如下:

1. 數據的預處理

首先進行申購和贖回數據的預處理,進行異常值的剔除,主要包括大額機構的申贖、雙十一大促等。

白名單機構的大額申贖,往往單筆金額就好幾億,對模型是有影響的,因此首先要剔除;另外雙十一的活動,由于過于低頻,且每年情況不一樣,也進行數據的剔除。

另外,由于13年余額寶處于飛速發展期,在數據使用上,我直接用14年的數據開始建模,排除業務爆發期的影響,因此大約有8個月的數據作為建模數據。

2. 長期趨勢因素的確定

這里的長期因素,其實主要就是上文分析中提到的收益率因素、用戶余額寶使用活躍情況等。

從上面的截圖中也可以看出,余額寶的申贖金額總體都在上漲趨勢中;這里要預測的,就是該趨勢。

具體實現上,在做完數據預處理的基礎上,進行線性回歸模型的建立。

如何基于時序分析,預測余額寶的申贖金額?

上圖其實是個示意圖了,數據已經到了17年了。在當時的建模情況下,我使用的數據就是近半年的數據作為長期趨勢的預測。

過長的數據做預測,將失去意義,并不能很好反映當前的狀況,因為歷史數據會有較大干擾。

3. 周期因素的確定

長期趨勢因素確定后,用每天數據與長期因素做除法,排除掉長期因素的影響,只剩下周期因素等因素。

這里的周期因素,其實包括了星期和月度因素。

星期因素影響因子的確定,有很多辦法,我是將歷史同周期進行了求動態均值,即最近3個月平均值。

如何基于時序分析,預測余額寶的申贖金額?

獲得星期的參數后,再次用排除長期趨勢的參數除以星期參數,排除星期的影響因素,此時主要是月份的影響因素了。

針對月份的因素做同樣的處理,則得到月度的因子參數,如下是申購的:

如何基于時序分析,預測余額寶的申贖金額?

從這個圖中明顯看出,1號、10號、15號確實是申購的小高峰。

申購、贖回,基本都是基于相似的邏輯,進行處理。

4. 其他因素的確定

到這里,我們獲得了長期趨勢因素、月度因素、星期因素的因子。但根據第二章節中提到的,影響申贖的因素,還有節假日、活動等;這對節假日,需要再進行專門性的參數獲取。

根本方法和之前也是一致的,用排除長期趨勢、周期因素的數據后,專門講節假日(國慶、春節等)前后的數據拿出來,做參數;但是由于當初是14年,可用的數據不多,因此對于長假的預測效果不是很好,但是3天小長假的數據表現還可以。

5. 預測過程

到這里,基本各類參數的計算,就算完成了。在做預測的時候,按照上述的過程,用各個因素進行乘法計算,即可獲得未來一段時間的預測結果。

另外,在實踐中,其實還有一個場景更高頻一些,就是當天預測當天。比如目前是上午11點,預測今天截止下午3點的申贖;針對這個場景,在原來的模型基礎上,做了一些調整,主要是加上了當日的數據走勢。

如何基于時序分析,預測余額寶的申贖金額?

由于能看到實時數據,而且只是預測當天數據,輸入模型的數據采用了昨日數據以及當天的情況,因此這個預測精度極高,往往達到99.5%以上。

關于余額寶的申贖預測,就先分享到這里,很多細節內容一方面我已經沒有原始數據了,另一方面確實寫不完;所以就先把預測的思路框架寫這些,歡迎各位小伙伴繼續關注~

 

本文由 @冬至 原創發布于人人都是產品經理,未經作者許可,禁止轉載。

題圖來自Unsplash,基于CC0協議。

給作者打賞,鼓勵TA抓緊創作!
更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 這個冬至不是我,同名緣~

    回復
  2. “首席數據科學家”作者:厲害了。我:膜拜了。

    回復
    1. 回復別人信息回復錯位置了

      回復
  3. “總的贖回量大于申購量,對于余額寶來講,就是凈流入;” 贖回是用戶行為,對支付寶來說不應該是“凈流出”嗎

    回復
    1. 寫反了……忘改了

      回復
  4. 看不懂啊

    回復
  5. 數據小白提問:您這屬于驗證性因子假設吧?盡管因子的選擇于情于理,但是沒有進行因子分析的驗證,沒有數據支撐呀?

    回復
  6. 厲害了

    回復