田歌 吳曠 田紅蕊
摘要:現(xiàn)多數(shù)的商品銷量預(yù)測是以單個商品預(yù)測為主,而針對多類商品的銷量預(yù)測如綜合型商超或社區(qū)便利店來說存在一定的需求;同時對于縣域或鄉(xiāng)鎮(zhèn)級商超,在傳統(tǒng)節(jié)假日如春節(jié)期間出現(xiàn)大量返鄉(xiāng)人員,由于人員數(shù)量激增,且春節(jié)具有走親訪友,互饋禮品的傳統(tǒng)習(xí)俗,因此對各類商品的消費需求會在短時間內(nèi)劇增,故對春節(jié)期間商品種類及銷貨數(shù)量的預(yù)測是商家及廠家備貨的重要參考數(shù)據(jù)。本文基于以上兩種現(xiàn)實需求對商品的種類和銷量進行預(yù)測:由于不同類別商品銷售量的波動會千差萬別,如果使用所有的數(shù)據(jù)進行訓(xùn)練會對引入很多不必要的噪聲,導(dǎo)致誤差的增大,因此設(shè)計使用k-means聚類方法及ARIMA模型對多種商品在傳統(tǒng)節(jié)假日期間的銷量進行預(yù)測,在真實的某一典型縣級商超銷量數(shù)據(jù)庫上進行評估驗證,最后將其與基準的模型進行數(shù)據(jù)對比,以驗證本方法對精度提升的度量。
關(guān)鍵詞 :多類商品;傳統(tǒng)節(jié)日;銷量預(yù)測;K-means聚類;ARIMA模型
中圖分類號:TP311? ? ? ? 文獻標(biāo)識碼:A
文章編號:1009-3044(2022)18-0059-02
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
1引言
信息化的浪潮為商業(yè)帶來了巨大的發(fā)展機遇,依據(jù)數(shù)據(jù)來驅(qū)動管理,指導(dǎo)決策極具商業(yè)價值,依靠智能運算對零售產(chǎn)品的銷量預(yù)測估值已成為商家提高其競爭力的重要方式。根據(jù)對以往客戶消費商品類別、數(shù)量、時間節(jié)點等大量信息,從中高效及時地預(yù)測客戶需求,便于及時進行貨品準備、推送廣告及價格調(diào)整等后續(xù)準備動作的部署,為客戶提升滿意度,為商家創(chuàng)造更大的商業(yè)利潤,同時也為避免商家因預(yù)測不準確導(dǎo)致的商業(yè)損失,幫助企業(yè)長期保持競爭優(yōu)勢。因此針對銷售量的預(yù)測具有一定的商業(yè)和學(xué)術(shù)價值。
很多學(xué)者專注于該方向的研究突破以期得到更為準確或代價更低的計算方法。銷量的預(yù)測大多數(shù)以時間序列進行,且以高聚合預(yù)測值為最終目標(biāo),對于低聚合的相關(guān)探究涉及不多,低聚合因素所產(chǎn)生的影響維度較多,天氣、廣告效果、促銷等因素也是重要影響因素,如沒有針對性去噪操作,會使損失一定的數(shù)據(jù)精度。常見的基于銷售量的預(yù)測方法如ARIMA[1]和指數(shù)平滑法[2]等基于時間序列的預(yù)測已經(jīng)得到大范圍的使用。然單使用傳統(tǒng)預(yù)測方法僅僅只能使用內(nèi)部的變量進行預(yù)測,且一些非線性因素如上文提到的促銷、廣告等未能完全融合其綜合影響,部分文獻提出將線性因素使用ARIMA預(yù)測,非線性因素使用反向傳播模型進行預(yù)測,結(jié)合二者優(yōu)點,生成預(yù)測結(jié)果[3]。隨著機器學(xué)習(xí)在各個領(lǐng)域的廣泛應(yīng)用,相繼出現(xiàn)了多種結(jié)合機器學(xué)習(xí)的方法將時序預(yù)測模型轉(zhuǎn)換為數(shù)據(jù)驅(qū)動及監(jiān)督學(xué)習(xí)的方式,如將ARIMA與BP神經(jīng)網(wǎng)絡(luò)結(jié)合[4],支持向量機與ARIMA結(jié)合[5],ARIMA和XGBoost組合[6]卷積網(wǎng)絡(luò)CNN與ARIMA結(jié)合,極限學(xué)習(xí)模型ELM與ARIMA結(jié)合等方式均能在不同層次不同行業(yè)領(lǐng)域內(nèi)得出較理想的預(yù)測結(jié)果。除此之外也有不少的學(xué)者認為引入聚類模型可以大大的提升預(yù)測的精度效果,Venkatesh等使用聚類的方式預(yù)測ATM機的現(xiàn)金流量,根據(jù)其周季節(jié)特征進行聚類,在每一類上做神經(jīng)網(wǎng)絡(luò)訓(xùn)練,其實驗驗證了基于聚類的預(yù)測效果明顯優(yōu)于未實行聚類的效果[7]。目前大多數(shù)的預(yù)測都是基于單個商品,對于多類商品的銷量預(yù)測相對不夠廣泛。本文以聚類模型將數(shù)據(jù)池中的數(shù)據(jù)分成一定的商品簇,通過ARIMA模型對每一商品簇進行銷量預(yù)測,以此構(gòu)建的多種類商品銷量預(yù)測模型,將此模型與一般的ARIMA模型在同一數(shù)據(jù)池上進行測試,數(shù)據(jù)表明該模型具有較理想的預(yù)測效果。
2 K-means聚類算法
K-means即k均值算法的原理簡單易且高效,因此在很多領(lǐng)域得到了廣泛的應(yīng)用[8],其主要思想是從數(shù)據(jù)樣本中隨機地選擇k個初始點作為聚類的中心,[a=a1,a2,...ak];計算每個樣本點[xi]到每個聚類中心[ai]的歐式距離,并將其分類到聚其最近的[ai]對應(yīng)的類中,對每個類別[ai],再次計算其聚類中心公式為:
[ai=1Cx∈cix]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
重復(fù)迭代以上步驟,直至聚心不再變動為止。我們以此為出發(fā)點,假設(shè)在商品銷售歷史數(shù)據(jù)中取時間點[Ti]為界,該界限前的銷售量為樣本訓(xùn)練數(shù)據(jù),其余為測試數(shù)據(jù)
[d(s,Mj)=i=1T1(sj-Mij)](計算歐式距離)(2)
3 ARIMA模型
自回歸移動平均模型(ARIMA也稱Box-Jenkins模型)在1970年被BOX首次提出,該模型在基于對時間序列的數(shù)據(jù)分析中被廣泛應(yīng)用,主要研究某一種現(xiàn)象根據(jù)時間的不同所呈現(xiàn)的變化情況,因此不僅可以展示過去與現(xiàn)在的變化情況,也可以根據(jù)之前的數(shù)據(jù)分析、建模并預(yù)測出未來的變化趨勢。
該模型將自回歸、差分與移動平均線三種方法相結(jié)合,按以下步驟進行建模:
1)數(shù)據(jù)的平穩(wěn)性檢驗與處理。平穩(wěn)序列為某時間序列為一固定數(shù)值或在固定數(shù)值范圍內(nèi)波動,且延遲m期變量的自協(xié)方差與其自相關(guān)的系數(shù)ACF是基本相等的。平穩(wěn)性即要求由樣本的時間序列所生成的未來的擬合曲線依然可以按照現(xiàn)在的“慣性”往下延續(xù),其均值與方差變動不明顯。其檢驗方法大致分為主觀圖形檢驗、單位級根檢驗等。數(shù)據(jù)平穩(wěn)性的處理一般使用d階差分運算:將兩個相鄰時間段的序列值相減即為差分運算(一階差分),將所得數(shù)值再次相減即為二階差分,重復(fù)d次即為d階差分。
2 )p和q定階、參數(shù)估計。即根據(jù)ACF(自相關(guān)系數(shù))和PACF(非自相關(guān)系數(shù))趨向于0的方法進行定階,一般選擇部分時間序列進行計算,根據(jù)網(wǎng)格法遍歷所有參數(shù),然后用python對時間序列進行擬合,若預(yù)測序列圖與實際序列圖大致吻合,則對當(dāng)前模型進行肯定。
3)殘差檢驗(白噪聲)。白噪聲檢驗即檢查一個序列中是否存在一定的關(guān)系,若沒有任何關(guān)系,則稱該序列為純隨機序列。檢驗方法為檢查ACF是否趨近于0。
4)估算并預(yù)測。根據(jù)p、q、d等模型參數(shù)進行對未來時間序列的預(yù)測。
本文在jupyter平臺完成代碼的實現(xiàn)及數(shù)據(jù)處理與圖形制作。
4使用jupyter平臺使用matplotlib基于K-means和ARIMA模型進行預(yù)測
4.1數(shù)據(jù)來源
收集了一縣域級小型商超在2017~2021年春節(jié)期間的商品銷量記錄。
4.2使用k-means進行聚類
聚類后將商品分為里三個商品簇:可概括為日用品、煙酒類及副食品等產(chǎn)品簇。
4.3對每個商品簇進行銷量預(yù)測
4.3.1平穩(wěn)性檢驗
本文使用ADF檢驗,該方法是判斷一個序列中是否存在有單位根,如何一個序列是平穩(wěn)序列,則沒有單位根,在python中可通過模塊statsmotels進行檢驗實現(xiàn)。導(dǎo)入數(shù)據(jù)后進行原始序列的ADF檢驗,結(jié)果為: (adf檢驗的結(jié)果:-3.0303619167579696, 統(tǒng)計量的P值:0.03215462767083654, 計算過程中用到的延遲階數(shù):5, 用于ADF回歸和計算的觀測值的個數(shù):
31,{'1%': -3.661428725118324,'5%': -2.960525341210433,'10%': -2.6193188033298647}, 426.8275356961312)是配合adf檢驗的結(jié)果一起看的,是在0.99,0.95,0.90置信區(qū)間下的臨界ADF檢驗值。
一階差分序列的白噪聲檢驗結(jié)果為: (array([8.41941052]), array([0.00371236]))。
4.3.2 定階
分別使用AIC和BIC方法得到最優(yōu)的p值和q值均是0和1。
4.3.3 建模與預(yù)測
5預(yù)測結(jié)果分析
表1為使用K-means模型聚簇后的arima預(yù)測與不使用K-means方法的預(yù)測結(jié)果對比,使用該方式在商品銷量預(yù)測中具?有較高的準確率。本文所設(shè)計的預(yù)測方法不僅對商超零售具有一定的指導(dǎo)意義,對相似的基于時間序列的、銷量預(yù)測也具有一定的參考價值,但由于K-means具有需要手動設(shè)置聚類的數(shù)值,因此或可嘗試將更多的機器學(xué)習(xí)的方法融入其中,以期達到更優(yōu)的效果。
參考文獻:
[1] 姜曉紅,曹慧敏.基于ARIMA模型的電商銷售預(yù)測及R語言實現(xiàn)[J].物流科技,2019,42(4):52-56,69.
[2] 張蔚虹,劉立.指數(shù)平滑法在銷售預(yù)算中的應(yīng)用[J].中國管理信息化,2008,11(2):84-86.
[3] 閆博,李國和,林仁杰.混合銷售預(yù)測模型[J].計算機工程與設(shè)計,2015,36(3):814-818.
[4] 朱家明,胡玲燕.基于ARIMA和BP神經(jīng)網(wǎng)絡(luò)對人民幣匯率預(yù)測的比較分析——以美元人民幣匯率為例[J].重慶理工大學(xué)學(xué)報(自然科學(xué)),2019,33(5):207-212.
[5] 劉家學(xué),白明皓,郝磊.基于ARIMA-SVR組合方法的航班滑出時間預(yù)測[J].中國科技論文,2021,16(6):661-667.
[6] 謝學(xué)斌,孔令燕.基于ARIMA和XGBoost組合模型的交通事故預(yù)測[J].安全與環(huán)境學(xué)報,2021,21(1):277-284.
[7] Venkatesh K,Ravi V,Prinzie A,et al.Cash demand forecasting in ATMs by clustering and neural networks[J].European Journal of Operational Research,2014,232(2):383-392.[8] 李秉晨,于惠鈞,劉靖宇.基于Kmeans和CEEMD-PE-LSTM的短期光伏發(fā)電功率預(yù)測[J].水電能源科學(xué),2021,39(4):204-208.
【通聯(lián)編輯:聞翔軍】