
時間序列預測網(wǎng)站流量增長趨勢(ARIMA)
在文章《淺析網(wǎng)站流量趨勢預測》中,我們曾對網(wǎng)站的直接流量進行過分析和預測,直接流量整體較為平穩(wěn),但在工作日和周末存在較大差異。因此我們之前的方法是將工作日和周末的訪問量數(shù)據(jù)分開處理,通過分布情況單獨進行預估。這種方法得到的預測值范圍較大,精確度也較差。本篇文章我們將使用時間序列的方法對網(wǎng)站直接流量的變化趨勢進行預測。
下面是4月4日——5月1日的網(wǎng)站直接流量會話數(shù)據(jù),我們在表格的周索引列中單獨標明了工作日(weekday)和休息日(weekend)用以說明會話所屬的類別??梢钥闯鲈谶@組數(shù)據(jù)中存在著明顯的周末趨勢,周末的會話數(shù)據(jù)要明顯低于工作日的會話數(shù)據(jù)。
使用時間序列對數(shù)據(jù)進行分析和預測的第一步是觀察數(shù)據(jù)的形態(tài),因此我們將會話數(shù)據(jù)繪制到折線圖中觀察變化趨勢。從直接流量變化趨勢圖上可以看出整體趨勢較為平穩(wěn),沒有明顯的增長或下降。同時也能更明顯的看出會話數(shù)據(jù)共分為4周,并且每一周都有明顯的周末趨勢。工作日每天的會話量在300—400之間,周末的會話量則為200以下,兩者之間差距較大。如何對這兩個差距較大的數(shù)據(jù)進行預測?我們使用一元線性回歸的方法,一元線性回歸可以反映一個因變量(Y)與一個自變量(X)之間的線性關(guān)系。對應到這里直接流量的會話就是因變量(Y),我們只需要再找到一個自變量(X)就可以建立一元回歸線性方程來預測直接流量的變化趨勢了。
從前面的趨勢圖中可以看出,直接流量整體趨勢比較平穩(wěn),只有在周末的時候才會出現(xiàn)較大的變化,造成周末數(shù)據(jù)與工作日數(shù)據(jù)的差異。因此造成直接流量變化的主要原因是所在日期的周屬性,當所在日期為工作日(weekday)時,會話數(shù)據(jù)在300-400之間。而當所在日期為周末(weekend)時,會話數(shù)據(jù)下降到200以下。我們將日期的周屬性設定為自變量(X),取名“周變量”,這個周變量(X)共有兩個取值,當日期為工作日時,取值為0,當日期為休息日時,取值為1。
設置好周變量后,我們在直接流量的源數(shù)據(jù)表中增加一列“周變量”,并按日期的周屬性輸入“周變量”的值。Weekday=0,weekend=1。現(xiàn)在我們有了因變量(Y)和自變量(X),可以使用一元線性回歸建立方程求兩者之間的關(guān)系。
通過Excel中的回歸分析功能,將會話作為因變量(Y)輸入,將“周變量”(X)作為自變量輸入,我們獲得了以下分析結(jié)果。在這個結(jié)果中,我們主要關(guān)注“周變量”的系數(shù)和截距(Intercept),通過這兩個值可以建立“周變量”與會話的一元線性回歸方程。
這是一元線性回歸方程,我們將前面的分析結(jié)果代入到這個方程中,就可以計算出直接流量的值。其中y是直接流量的會話值,x是“周變量”的取值,a是“周變量”系數(shù),b是截距。
前面說過,“周變量”有兩個取值,工作日為0,休息日為1。因此在對直接流量進行預測時我們也分別按照日期的周屬性取值來計算工作日和休息日的直接流量會話值,以下為兩個取值的計算公式。
通過一元線性回歸方程我們獲得了直接流量在工作日和休息日的會話預測值,每天具體實際數(shù)據(jù)和預測數(shù)據(jù)展現(xiàn)在下面表格中。
將直接流量實際的會話數(shù)據(jù)與預測數(shù)據(jù)繪制成折線圖進行對比,在較為平穩(wěn)的趨勢中預測數(shù)據(jù)較好的模擬并預測了直接流量中工作日和休息日的數(shù)據(jù)變化。
以上是一種較為簡單且理想化的流量變化情況。實際工作中情況會更加復雜,直接流量除了自身的規(guī)律以外,還會受到外部因素的影響,呈現(xiàn)上升或下降的趨勢。這時候,直接流量的整體趨勢不再平穩(wěn),并且還同時摻雜自身的周末趨勢。這種情況下如何對直接流量進行分析和預測呢?
下面是4月4日——5月1日的直接流量會話數(shù)據(jù),由于有周末趨勢存在我們同樣增加了周索引列來標識會話所屬日期的周屬性。
第一步將直接流量的會話數(shù)據(jù)匯總折線圖觀察流量的形態(tài)。直接流量除了自身的周末趨勢以外,還有一個明顯的上漲趨勢。我們在進行分析和預測時要兼顧直接流量的周末趨勢和上漲趨勢。這里一元線性回歸已經(jīng)無法滿足我們的需求了,需要使用多元線性回歸。多元線性回歸是一元線性回歸的升級版,可以反應一個因變量(Y)與多個自變量(X)之間的關(guān)系。這里直接流量的會話數(shù)據(jù)是我們要求的因變量(Y),周末趨勢是一個自變量(X),另一個自變量(X)就是直接流量的增長趨勢。
我們首先在直接流量的原始數(shù)據(jù)中增加兩個字段作為兩個自變量X。第一個字段是周變量,設置的方法和取值范圍與前面例子中介紹的完全一致。第二個字段是趨勢變量,用來描述直接流量的增長趨勢。在前面的折線圖中已經(jīng)看到直接流量呈線性增長,因此我們使用從1到28作為趨勢變量中每一天的取值。現(xiàn)在我們有了因變量(Y)和兩個自變量(X),可以通過建立多元線性回歸方程來計算并預測直接流量的會話值了。
使用Excel中的回歸功能,將會話作為因變量(Y)輸入,將趨勢變量和周變量作為自變量(X)輸入,獲得以下分析結(jié)果。在這個結(jié)果中我們主要關(guān)注三個值,截距(Intercept),趨勢變量系數(shù)和周變量系數(shù)。
這是多元線性回歸方程,我們將前面的分析結(jié)果代入到這個方程中,就可以獲得直接流量的值。其中y是直接流量的會話值,x1是趨勢變量,x2是周變量,b1是趨勢變量系數(shù),b2是周變量系數(shù),a是截距。
通過多元線性回歸方程我們獲得了直接流量的預測值,每天的實際數(shù)據(jù)和預測數(shù)據(jù)展現(xiàn)在下面表格中。
將直接流量實際的會話數(shù)據(jù)與預測數(shù)據(jù)繪制成折線圖進行對比,通過多元線性回歸預測數(shù)據(jù)同時兼顧了直接流量中的周末趨勢和整體的增長趨勢。如果流量中還包括有其他影響因素只需通過繪制折線圖觀察影響因素的變化趨勢和規(guī)律,然后增加相應的自變量(X)即可。
通過時間序列我們對直接流量的增長趨勢進行了預測,很多時候除了知道趨勢以外我們還希望對流量進行分解,了解影響流量變化的因素,這些因素在變化中所起的作用以及消除影響因素后流量真實的變化情況。我們使用時間序列對直接流量進行分解。下面是直接流量在最近4周時間的會話數(shù)據(jù)。
直接流量的變化可能受多個因素影響。例如前面的例子中,直接流量自身有明顯的周末趨勢,同時,受外部因素影響還有明顯的增長趨勢,此外可能還有一部分難以解釋的隨機波動因素。因此,我們將直接流量分為三個主要部分,分別為趨勢值,周因素和隨機波動。并對直接流量按這三部分進行分解。以下是時間序列乘法分解模型。這里需要說明的是,除了趨勢值以外,周因素和隨機波動將被分解為相對度量。數(shù)值大于1表示他們的影響在趨勢值之上,數(shù)值小于1表示他們的影響在趨勢值以下。
直接流量有明顯的周末趨勢,因此首先我們通過移動平均來消除直接流量中的周末趨勢。由于周末趨勢的變化是以周為單位的,因此我們選擇7天的數(shù)據(jù)進行移動平均計算。下面是移動平均的計算公式。
我們按照移動平均公式對直接流量消除周末趨勢,只保留直接流量的趨勢值。以下是移動平均的計算結(jié)果。
移動平均通過對7天數(shù)據(jù)的平均對直接流量進行了平滑處理,消除了周末趨勢及隨機波動的影響,獲得了直接流量的趨勢值。下圖是直接流量的實際值與趨勢值的對比。
獲得直接流量趨勢值后,我們可以通過時間序列乘法分解模型獲得周因素和隨機波動的相對度量。將時間序列乘法分解模型兩邊同時除以趨勢值,可以獲得周因素和隨機波動的組合度量。
分別將每一天的直接流量會話實際值除以移動平均后的趨勢值,獲得了周因素和隨機波動的組合度量值。下表中匯總了整個時間段的周因素和隨機波動的組合度量。
我們根據(jù)每一天的周因素和隨機波動組合度量值計算出周指數(shù),方法是將上表星期索引中同一天的值進行平均。下表是直接流量一周的指數(shù)值。其中大于1表示周因素的影響在趨勢值之上,小于1表示周因素的影響在趨勢值之下。從下表中可以明顯看出,周一到周五周因素的影響都要大于趨勢,而周末兩天周因素的影響小于趨勢。
將周指數(shù)還原到每一天中,獲得直接流量每一天會話的星期指數(shù)。使用實際會話值除以星期指數(shù)獲得直接流量消除星期因素的會話量數(shù)據(jù)。也就是直接流量排除周末因素影響后的變化趨勢。
將消除周末趨勢后的直接流量變化趨勢繪制到折線圖上,使用趨勢線來擬合消除周因素影響的直接流量與時間周期。到目前為止我們分解出了直接流量中排除周因素和隨機波動的會話值,排除周因素的會話值以及周因素對于趨勢值的影響。下面我們將使用排除周因素的會話值對直接流量進行預測,并與周因素進行整合,預測出帶有周因素的直接流量變化趨勢。
我們將消除周因素后的直接流量會話值作為因變量(Y),將時間作為自變量(X),通過一元線性回歸來描述會話值與時間的關(guān)系。將因變量(Y)與自變量(X)輸入到回歸分析中,獲得以下結(jié)果。其中星期ID是時間X的系數(shù),Intercept是截距。
將回歸分析的結(jié)果導入到一元線性回歸方程,計算出排除周因素的直接流量預測值。下表中顯示了消除周末因素的直接預測值的計算結(jié)果。
將消除周末因素的預測值乘以星期指數(shù),計算出直接流量實際值的預測趨勢,下表中顯示了計算結(jié)果和預測值。
將直接流量的實際值與增加周因素的預測值繪制到折線圖中,由于我們是先剝離出了直接流量的趨勢值,然后在趨勢值和隨機波動值上增加的周因素,因此預測值同時兼顧了直接流量的增長趨勢和周末趨勢。文章開始部分的預測相比,更加符合直接流量的真實變化趨勢。
本篇文章的名字是使用時間序列預測網(wǎng)站流量增長趨勢,但整篇文章只介紹了對直接流量的預測。其實這些方法適用于任何一種流量渠道,找到這些流量渠道的規(guī)律和影響因素就可以套用本文中的方法對流量趨勢進行分解和預測。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎用法到實戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預期算子的內(nèi)涵、作用與應用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應用 在數(shù)據(jù)分析與統(tǒng)計學領域,假設檢驗是驗證研究假設、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網(wǎng)絡請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實戰(zhàn)指南 在業(yè)務系統(tǒng)落地過程中,“業(yè)務邏輯” 是連接 “需求設計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當下,精準營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10