摘要:在縱向時間軸上設(shè)定滑動窗口來動態(tài)選擇商品合適的同期歷史記錄,并在所選時間序列中巧妙地將滑動窗口與最佳(Pearson Correlation)擬合公式和均值生成函數(shù)相結(jié)合,提高了算法的靈活性和預(yù)測值的精度。該方法的主要優(yōu)點包括過濾異常數(shù)據(jù)記錄, 避免因其產(chǎn)生負(fù)面影響,并能得到清晰的商品銷量變化趨勢。實驗證明,該方法無論從時間復(fù)雜度還是預(yù)測準(zhǔn)確度來說都是可行的。
關(guān)鍵詞:滑動窗口; Pearson Correlation; 過濾異常; 預(yù)測變化趨勢; 縱向分析
中圖法分類號:TP311文獻(xiàn)標(biāo)識碼:A
文章編號:1001-3695(2007)01-0061-03
1引言
影響商品銷量的因素很多,除了商品自身的生命周期外,還有商品間的互相影響以及許多
不可預(yù)測的外界因素的影響,而能夠較為準(zhǔn)確地預(yù)測商品的銷量對于市場營銷無疑是大有裨益的。傳統(tǒng)的分析方法如短期自憶模式[7]、滑動平均模型[3]、自回歸模型[3]、均值生成函數(shù)[4]、MMFA模型[4]等都可以從不同的角度進(jìn)行預(yù)測,而且一般情況下也能收到比較好的效果。但在下面兩種情況下的表現(xiàn)卻差強人意:
①商品銷量在某一階段驟增或驟減時;
②商品銷量在整體上呈遞增或遞減變化趨勢明顯時。為了說明這兩種情況,下面給出兩個例子。
例1表1是某商店最近幾年口罩的銷量記錄表。
表1口罩銷售記錄表
顯然,由于2002年 “非典”對口罩銷量的影響,導(dǎo)致其當(dāng)年銷量劇增。用現(xiàn)有的預(yù)測方法無論是自回歸模型、均值生成函數(shù)模型,還是MMFA模型都不能給出合適的預(yù)測值,盡管它們在沒有顯著異常的數(shù)據(jù)集上實驗是成功的,因為它們都是直接對歷史記錄數(shù)據(jù)進(jìn)行數(shù)學(xué)計算,不可能消除異常數(shù)據(jù)對預(yù)測的負(fù)影響。例如圖1是2005年口罩實際銷量和預(yù)測銷量的對比直接用均值生成函數(shù)生成的實際銷量和預(yù)測銷量的擬合情況,這明顯不是決策者想要的結(jié)果。
例2表2是某商場前十年來一月份黑白電視機的銷售記錄。
表2黑白電視機銷售記錄表
因此,本文致力于避免顯著異常數(shù)據(jù)對預(yù)測值的影響,以及找出商品銷量、庫存量的變化趨勢,用動態(tài)的滑動窗口與擬合公式Pearson Correlation 相結(jié)合,過濾掉異常記錄。對不同的商品需要考慮的時間序列長度也不一樣,有些商品需要分析其前十年的銷量記錄,而有些商品生命周期較短,如時裝、保健品腦白金等,分析其前十年的銷量記錄顯然不僅沒有意義而且會影響預(yù)測的準(zhǔn)確性,所以本文通過改變滑動窗口的端點位置來提高算法的靈活性和預(yù)測精度。另外由于本算法的時間復(fù)雜度小,所以可以在同一時間序列上采用小步長、重疊窗口的方法多做幾個滑動窗口,以判斷商品正處在其生命周期的哪個階段,即判斷其銷量變化趨勢,從而提高預(yù)測的準(zhǔn)確性。
2相關(guān)背景及我們的工作
2.1相關(guān)背景
用于商品銷量預(yù)測的方法都是以分析時間序列為基礎(chǔ)的,目前最常用的方法中,自憶模式[7]和自回歸模式[3]都是通過靜態(tài)分析歷史時間序列給出預(yù)測值,但只適用于短期預(yù)測;滑動平均模式[3]是與滑動窗口相結(jié)合,通過均值給出預(yù)測值;均值生成函數(shù)[4]是基于時間序列的均值派生出來的,提取主成分因子是把握序列因子作用大小的關(guān)鍵,依此建立的模式更能顯著反映時間序列的發(fā)展趨勢和存在的周期性;MMFA模型[4] 是基于時間序列均值生成函數(shù)的主成分分析建立的。封國林也在此基礎(chǔ)上提出自憶模式與均值生成函數(shù)模式相結(jié)合的組合預(yù)測模式。這些方法都是可行的,但都存在一個共同的弱點,如例1、例2所證明的,遇到以下兩種情況時預(yù)測結(jié)果就會不理想:
①商品銷量在某一階段驟增或驟減時;
②商品銷量在整體上呈遞增或遞減變化趨勢明顯時。
所以本文巧妙地將滑動窗口、最佳(Pearson Correlation,PC)擬合公式和均值生成函數(shù)相結(jié)合,很好地解決了上述問題。
所謂滑動窗口是指在縱向時間序列中,尋找到適合決策者要求的若干年的銷量和其同期庫存量記錄,用從界面上輸入的滑動窗口的起點和終點來表示當(dāng)前的時間序列。由于其搜索范圍是隨著當(dāng)前位置的變化而變化的,因而稱為滑動窗口。
原始數(shù)據(jù)一般會給出以前十年、二十年或更多的歷史記錄,所以直接用最佳擬合公式進(jìn)行協(xié)調(diào)過濾的話,不方便掃描時間序列去掉異常數(shù)據(jù);時間序列太長,若超出商品的生命周期,則預(yù)測準(zhǔn)確性就會受到影響;另外,直接分析整個時間序列,不知道商品處在其生命周期的哪個階段,也會使預(yù)測值出現(xiàn)嚴(yán)重的偏差。
采用滑動窗口可以很好地解決例1、例2中的問題。采用小步長(最小三個點線距)重疊窗口的方案,在某個特定窗口內(nèi)實現(xiàn)分析運算,每個窗口最終給出一個預(yù)測值,最終使擬合值有很好的連續(xù)性和精度。這樣,不僅可以縮短單個時間序列的長度,更方便檢索出異常數(shù)據(jù),而且可以根據(jù)連續(xù)窗口的預(yù)測結(jié)果發(fā)現(xiàn)商品銷量和庫存量的變化趨勢(即商品正處在其生命周期的哪個階段),從而提高了預(yù)測的精度。
在例2中, 若加上滑動窗口,得到的銷量預(yù)測結(jié)果如圖2所示(庫存量預(yù)測情況與此類似)。
由圖2可以清楚地看到,采用滑動窗口后不僅提高了預(yù)測的準(zhǔn)確度,而且明顯可以看出銷量變化趨勢是下降的。實際值一定比預(yù)測值稍微小一點,顯然更有利于決策者作出準(zhǔn)確預(yù)測。
2.2異常數(shù)據(jù)的過濾
先討論一個窗口內(nèi)商品銷量與其同期庫存量的匹配以及異常數(shù)據(jù)的過濾問題,方法的數(shù)學(xué)思想歸結(jié)為在Pearson Correlation 公式意義下的曲線擬合問題。若出現(xiàn)異常,則掃描該窗口內(nèi)的時間序列,將異常記錄刪除即可。
著名的基于相關(guān)性研究的協(xié)調(diào)過濾模式(Correlationbased Collaborative Filter,CorrCF)[2~4],是用Pearson Correlation 公式對原始記錄進(jìn)行計算,用PC結(jié)果與1的接近程度來判斷使用者和其潛在指導(dǎo)專家的匹配情況。本文是用PC公式對滑動窗口所選的時間序列記錄進(jìn)行計算,以判斷商品銷量和同期庫存的匹配情況,結(jié)果越接近1則兩者越協(xié)調(diào)。實驗證明此算法比用方差驗證兩者協(xié)調(diào)情況效果更好。
其中,x1i 和x2i分別是滑動窗口內(nèi)第i個銷量和庫存量,x1和x2分別是滑動窗口所選時間序列的平均銷量和平均庫存量;δ1和δ2分別是對應(yīng)時間序列銷量和庫存量的標(biāo)準(zhǔn)差;Y1.2是滑動窗口的寬度。
顯然,PC值越接近1說明所選時間序列內(nèi)商品銷量與庫存量越匹配;否則說明此滑動窗口內(nèi)出現(xiàn)了異常數(shù)據(jù),掃描滑動窗口去掉異常數(shù)據(jù),就完成了過濾異常數(shù)據(jù)的過程。
在例1中用本文方法過濾異常數(shù)據(jù)后得到的2005年口罩的預(yù)測銷量和實際銷量的擬合情況如圖3所示,顯然擬合情況比圖1好得多。
2.3算法分析
本文采用滑動趨勢分析方法,滑動窗口的大小、起點和終點均由決策者根據(jù)需要在界面直接輸入。在每個滑動窗口內(nèi)以最佳(PC)擬合準(zhǔn)則來確定是否有異常數(shù)據(jù),若沒有則用均值生成函數(shù)給出合適的預(yù)測值;否則掃描該窗口去掉異常數(shù)據(jù),然后依據(jù)剩余記錄給出合適的預(yù)測值。
算法流程如下:
3實驗及其分析
本文顯著的優(yōu)點就是巧妙地將滑動窗口、最佳(PC)擬合公式和均值生成函數(shù)相結(jié)合,
從而彌補了現(xiàn)有方法的不足,解決了異常數(shù)據(jù)對預(yù)測值的影響,提高了算法的靈活性和預(yù)測結(jié)果的準(zhǔn)確性,更方便決策者操作,可以判定商品正處在其生命周期的哪個階段,即銷量變化的趨勢如何,提高了預(yù)測精度。
在這部分測試中,從時間復(fù)雜度、預(yù)測精度以及在數(shù)據(jù)集改變時,其預(yù)測精度的改變情況的角度分析了本文方法的優(yōu)越性。
3.1實驗數(shù)據(jù)集
本文分別在三個合成數(shù)據(jù)集上作實驗。三個數(shù)據(jù)集均包括十種商品,分別由1 000條交易、
10 000條交易、100 000條交易合成這十種商品在(1996—2005年)連續(xù)十年各月的銷量和庫存量記錄。
3.2預(yù)測精度
本文分別用此三個數(shù)據(jù)集做了實驗,效果十分理想,以2005年各月預(yù)測銷量和實際銷量的擬合情況舉例說明(圖4~圖7)。
定義誤差公式為 E(x,y)=∑Ni=1yi-xiN
其中,N為階段數(shù),在本實驗中為月份數(shù);yi為第i月的預(yù)測結(jié)果; xi為第i月的實際銷量。
顯然由圖4~圖7可以清楚地看出,預(yù)測精度在數(shù)據(jù)集大小改變時受到的影響并不大,并且隨著數(shù)據(jù)集的增大,誤差逐漸減小。另外,本算法的時間復(fù)雜度極小,用最大的數(shù)據(jù)集3作實驗,時間還不足1s。
4綜述
本文巧妙地將滑動窗口、最佳擬合公式和均值生成函數(shù)相結(jié)合,彌補了現(xiàn)有方法的不足,不僅提高了算法的靈活性和預(yù)測值的精度,而且最顯著的優(yōu)點是:①滑動窗口和擬合公式相結(jié)合可以過濾掉異常數(shù)據(jù)記錄;②使滑動窗口采用小步長、重疊窗口的策略,可以得出商品正處在其生命周期的哪個階段,即可以清楚地得出商品銷量的變化趨勢。實驗證明本文方法無論從時間復(fù)雜度還是從預(yù)測準(zhǔn)確度來看都是可行的。
本方法不僅可以用來預(yù)測商品銷量和庫存量,還可以用在許多其他方面,如可以用來預(yù)測農(nóng)作物成熟期、河流的封凍日期等。另外,本文過濾異常數(shù)據(jù)的方法,適合任意二維平面信號背景值和異常值的分離,所以本方法具有很廣泛的使用價值。
參考文獻(xiàn):
[1]Sonny Han Seng Chee, Jiawei Han, Ke Wang.RecTree: An Efficient Collaborative Filtering Method[C].Munich: Proc.of the 3rd International Confenerce on Data Ware housing and knowledge Discovery,2001.141151.
[2]P Resnick, N Iacovou, M Sushak, et al. GroupLens: An Open Architecture for Collaborative Filtering of Netnews[C]. New York:Proc. of ACM Conf. Computer Support Cooperative Work(CSC), 1998.
[3]J S Breese, D Heckerman, C Kadie. Empirical Analysis of Predictive Algorithms for Collaborative Filtering[C].San Franciso:Proc.of the 14th Conf.Uncertainty in Artificial Intelligence(UAI’98),1998.4352.
[4]B M Sarwar, J A Konstan, A Borchers, et al. Using Filtering Agents to ImprovePrediction Quality in the GroupLens Research Collaborative Filtering System[C]. Seattle: Proc. of ACM Conf. Computer Support Cooperative Work (CSCW),1998.345354.
[5]魏鳳英,曹鴻興.長期預(yù)測的數(shù)學(xué)模型及其應(yīng)用[M].北京:氣象出版社,1990.157.
[6]張學(xué)成.河流封凍日期長期預(yù)報的MMFA模型[J].冰川凍土,1994,16(1):5359.
[7]封國林.長江三角洲汛期預(yù)報模式的研究及其初步應(yīng)用[J].氣象學(xué)報,2001,59(2):204212.
作者簡介:
尤曉芳(1981),女,碩士研究生,主要研究方向為數(shù)據(jù)挖掘、數(shù)據(jù)庫;覃澤(1958),副院長,副教授,主要研究方向為數(shù)據(jù)挖掘;陳峰(1980),男,碩士研究生;汪展(1982),女,實驗員,主要研究方向為數(shù)據(jù)庫;張師超(1962),男,教授,博士,主要研究方向為數(shù)據(jù)挖掘、人工智能等。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文