譚祖健 官丹萍 莫 愁 丁振偉 李曉霞
(1.廣西玉柴機(jī)器股份有限公司,廣西 玉林 537005;2.桂林電子科技大學(xué),廣西 桂林 541004)
基于已有產(chǎn)品銷(xiāo)售數(shù)據(jù)預(yù)測(cè)將來(lái)的訂單變化趨勢(shì),進(jìn)而配備合適的生產(chǎn)所需零部件庫(kù)存,并制定合適的生產(chǎn)方案,能夠在很大程度上提高訂單快速交付的能力。對(duì)于如何準(zhǔn)確地預(yù)測(cè)產(chǎn)品訂單,眾多研究者均取得過(guò)較好成果。杜瑩利用平滑指數(shù)模型優(yōu)化了某汽車(chē)公司的訂單預(yù)測(cè)方法,并改善了該公司生產(chǎn)經(jīng)營(yíng)流程中的重復(fù)環(huán)節(jié),降低了庫(kù)存量,提高了效益。佟晶博將動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)算法引入訂單預(yù)測(cè)模型中,建立了河蟹電商分銷(xiāo)系統(tǒng),該系統(tǒng)能夠預(yù)測(cè)未來(lái)一段時(shí)間內(nèi)各分銷(xiāo)商的訂單。李浩等人構(gòu)建了一種融合VGG 網(wǎng)絡(luò)與全卷積網(wǎng)絡(luò)(FCN)的出租車(chē)多區(qū)域訂單預(yù)測(cè)模型,與基于BP 神經(jīng)網(wǎng)絡(luò)、RBF 神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)模型相比,該預(yù)測(cè)模型平均準(zhǔn)確率更高且均方根誤差更低。也有一些研究的目標(biāo)并非提出成套的預(yù)測(cè)方法,而是著眼于提升預(yù)測(cè)過(guò)程中某個(gè)環(huán)節(jié)的質(zhì)量和/或簡(jiǎn)便程度。例如DANIEL ORTIZ-ARROYO 等人在模糊邏輯預(yù)測(cè)模型中,將有序加權(quán)平均算子應(yīng)用于原始時(shí)間序列劃分并重構(gòu),使一階預(yù)測(cè)模型精度比對(duì)比文獻(xiàn)高,盡管該模型精度仍達(dá)不到高階模型的水平,但仍然可以縮短計(jì)算時(shí)間。劉道元等人為了準(zhǔn)確預(yù)測(cè)某批訂單的剩余完工時(shí)間(以便動(dòng)態(tài)調(diào)整生產(chǎn)計(jì)劃、優(yōu)化制造過(guò)程),提出了一種基于自組織映射(SOM)網(wǎng)絡(luò)-特征加權(quán)模糊C 均值(FWFCM)的特征選擇算法。在現(xiàn)有的公開(kāi)文獻(xiàn)中,直接針對(duì)發(fā)動(dòng)機(jī)訂單預(yù)測(cè)進(jìn)行研究的文獻(xiàn)數(shù)量較少。
根據(jù)時(shí)間先后順序?qū)⒁欢〞r(shí)間范圍內(nèi)的采樣數(shù)排列成1組或多組數(shù)列,這些時(shí)間序列可以表征某種特征變量隨著時(shí)間不斷變化的過(guò)程和趨勢(shì)。發(fā)動(dòng)機(jī)月訂單數(shù)量、季度訂單數(shù)量就是一種典型的時(shí)間序列。但該時(shí)間序列在1 a 周期內(nèi)的每個(gè)月、每個(gè)季度都不是固定在某個(gè)范圍內(nèi)的,而是隨著企業(yè)產(chǎn)品質(zhì)量、企業(yè)供貨能力、客戶(hù)需求以及社會(huì)宏觀經(jīng)濟(jì)環(huán)境好壞等因素的變化呈一定規(guī)律的非平穩(wěn)變化,而且這個(gè)變化是隱含的,需要進(jìn)一步挖掘才能用一定的模型來(lái)表征。由于非平穩(wěn)時(shí)間序列特征數(shù)據(jù)呈隨機(jī)變化的趨勢(shì),其數(shù)理統(tǒng)計(jì)性質(zhì)也會(huì)隨著時(shí)間推移而發(fā)生變化,因此對(duì)這種特性的數(shù)據(jù)進(jìn)行未來(lái)趨勢(shì)預(yù)測(cè)時(shí),必須選擇能評(píng)估和處理序列中隨機(jī)擾動(dòng)項(xiàng)、能處理數(shù)理統(tǒng)計(jì)性質(zhì)變化的模型。滿足這個(gè)要求的模型有自回歸條件異方差模型(ARCH 模型(Autoregressive Conditional Heteroskedasticity Model))、灰色模型和自回歸整合滑動(dòng)平均模型(ARIMA 模型)等。其中,ARIMA 模型在建模時(shí)考慮了時(shí)間序列的自回歸特性和滑動(dòng)平均特性,并進(jìn)行了平穩(wěn)化處理,因此比較適合分析發(fā)動(dòng)機(jī)訂單時(shí)間序列和預(yù)測(cè)未來(lái)訂單。
自回歸功能可以描述一組變量在前后期的變化特征,即用前期若干時(shí)刻的隨機(jī)變量的線性組合來(lái)表征后期某時(shí)段隨機(jī)變量的線性回歸。其與用自變量預(yù)測(cè)因變量的其他線性回歸不同,該功能是用前期的預(yù)測(cè)后期的(自身)。將該自回歸模型記為(),將隨機(jī)序列記為X,其模型結(jié)構(gòu)如公式(1)所示。
式中:為時(shí)間點(diǎn);為模型階數(shù);,,…,a為自回歸系數(shù)(當(dāng)=0 時(shí),()去中心化);{}為白噪聲序列。
對(duì)時(shí)間點(diǎn)來(lái)說(shuō),如果有? <,(Xε)=0,即如果任意小于時(shí)間點(diǎn)的時(shí)間點(diǎn)對(duì)應(yīng)的變量與白噪聲序列相乘,其數(shù)學(xué)期望均為0,則表明前面的時(shí)間序列與后面的白噪聲不相關(guān),這是ARIMA 模型自回歸功能的基本條件和優(yōu)點(diǎn)。
對(duì)發(fā)動(dòng)機(jī)訂單時(shí)間序列的非平穩(wěn)性特征來(lái)說(shuō),線性回歸模型等簡(jiǎn)單模型的精度較低。自回歸模型將盡量消除白噪聲影響作為建模目標(biāo),因此它可以獲得較高的精度。
對(duì)公式(1)來(lái)說(shuō),只有確定了系數(shù)a,其才有使用意義,否則公式(1)就是一個(gè)無(wú)窮多項(xiàng)式??梢杂冒自肼曅蛄?span id="syggg00" class="emphasis_italic">ε,ε,ε,…,ε表示隨機(jī)序列X,并將滑動(dòng)平均模型記為MA(),其模型結(jié)構(gòu)如公式(2)所示。
式中:為多項(xiàng)式常數(shù),由變量特征確定;為模型階數(shù);,,…,b為滑動(dòng)平均系數(shù),且|b|<1,此處=1,2,…,。
如果設(shè)定了b的范圍,則公式(2)是收斂的。=1 的特例MA(1)如公式(3)所示。
由公式(3)可知,X為2 個(gè)擾動(dòng)因子(白噪聲)ε和ε的加權(quán)平均。根據(jù)以上分析可知,MA()模型是AR()模型的模型階數(shù)受到某種限制時(shí)的情形。由于ARIMA 模型融合了AR()模型和MA()模型,且值和值的大小體現(xiàn)了這 2 個(gè)模型在 ARIMA 模型中作用的強(qiáng)弱,因此在應(yīng)用時(shí)需要確定值和值。
由于類(lèi)似發(fā)動(dòng)機(jī)訂單這樣的時(shí)間序列有明顯的趨勢(shì)性和/或季節(jié)性,因此在建立ARIMA 模型時(shí)需要先去除這2 個(gè)趨勢(shì),再進(jìn)行平穩(wěn)化處理。一般來(lái)說(shuō),進(jìn)行1 次差分和2 次差分就可以剔除其中1 個(gè)趨勢(shì)和2 個(gè)趨勢(shì)。
使用ARIMA 模型進(jìn)行訂單預(yù)測(cè)的一般步驟如下:首先,對(duì)樣本進(jìn)行平穩(wěn)性檢驗(yàn),如果不平穩(wěn),通常就進(jìn)行若干次差分,直到樣本平穩(wěn)。其次,對(duì)模型進(jìn)行定階,確定ARIMA(,,)(為為檢驗(yàn)樣本平穩(wěn)性而進(jìn)行差分的次數(shù))中和值后即可建立模型。再次,對(duì)模型進(jìn)行適應(yīng)性檢驗(yàn),達(dá)到誤差要求后才可用于預(yù)測(cè)未來(lái)變量,否則需要重新進(jìn)行平穩(wěn)化處理或重新確定階數(shù)。ARIMA 建模和預(yù)測(cè)流程如圖1 所示。
圖1 ARIMA 預(yù)測(cè)建模流程
平穩(wěn)性檢驗(yàn)可以判斷特征樣本隱含的是確定性趨勢(shì)還是隨機(jī)趨勢(shì)(或者二者兼有)。主要方法有以檢驗(yàn)單位根為手段的笛基-福勒檢驗(yàn)(Dickey-Fuller 檢驗(yàn))和以檢驗(yàn)誤差項(xiàng)自相關(guān)或異方差為手段的菲利普斯-佩隆檢驗(yàn)(Phillips-Perron 檢驗(yàn))。在對(duì)模型進(jìn)行定階時(shí),確定值和值的方法主要有自相關(guān)函數(shù)法、偏自相關(guān)函數(shù)法、赤池信息準(zhǔn)則(Akaike Information Criterion,AIC 準(zhǔn)則)法和貝葉斯信息準(zhǔn)則(Bayesian Information Criterion,BIC 準(zhǔn)則)法;模型適應(yīng)性檢檢驗(yàn)的目的是評(píng)估建立的模型時(shí)間序列與樣本時(shí)間序列的相關(guān)性,評(píng)價(jià)手段是檢驗(yàn)擬合殘差項(xiàng){ε}是否為白噪聲。建立的模型建立的模型如果顯著有效,則表現(xiàn)為提取樣本中全部或接近全部相關(guān)信息后,殘差沒(méi)有相關(guān)性,即{ε}應(yīng)為白噪聲。通常會(huì)通過(guò)楊-博克斯Q 統(tǒng)計(jì)量檢驗(yàn)(Ljung-Box Q Test,LBQ 檢驗(yàn))來(lái)評(píng)估模型是否顯著有效。
以某發(fā)動(dòng)機(jī)生產(chǎn)商1995—2017 年(共23 a)每季度的發(fā)動(dòng)機(jī)訂單為樣本,基于以上理論,使用MATLAB 軟件編制相關(guān)程序,建立ARIMA(,,)模型,并預(yù)測(cè)未來(lái)3 a(2018—2020 年)的季度訂單。
通過(guò)Phillips-Perron 檢驗(yàn)對(duì)樣本進(jìn)行平穩(wěn)性檢測(cè)的方法如下:首先,用最小二乘法估計(jì)樣本回歸模型,得到參數(shù)估計(jì)和殘差序列。其次,利用殘差自相關(guān)中的信息計(jì)算統(tǒng)計(jì)量Z,如果Z滿足設(shè)定顯著性水平的限值,則認(rèn)為該樣本平穩(wěn)。在MATLAB 中調(diào)用pptest 函數(shù)進(jìn)行Phillips-Perron 檢驗(yàn)的程序語(yǔ)句為[h]=pptest(x,'model','AR')。其中,(輸入?yún)?shù))為檢驗(yàn)的序列,該文為發(fā)動(dòng)機(jī)訂單序列;'model','AR'為檢驗(yàn)的模型選用AR(自回歸)模型;(即輸出參數(shù))為測(cè)試結(jié)果的布爾決策向量,當(dāng)=1 時(shí),表示拒絕有單位根的假設(shè),當(dāng)=0 時(shí),表示不能接受原假設(shè),即模型有單位根。
將實(shí)例樣本發(fā)動(dòng)機(jī)季度訂單序列作為語(yǔ)句中的量代入,得到=0,則該實(shí)例樣本不平穩(wěn)。因?yàn)閷?shí)例樣本為季度訂單,具有典型的季節(jié)性和趨勢(shì)性,所以首先,應(yīng)以=4 的步長(zhǎng)做1 次差分去除季節(jié)性。其次,以=1 的步長(zhǎng)再做1 次差分去除趨勢(shì)性。最后,對(duì)差分后的時(shí)間序列進(jìn)行同樣的檢驗(yàn),檢驗(yàn)結(jié)果表明,該序列平穩(wěn)。
使用AIC 準(zhǔn)則對(duì)模型定階的基本原理是針對(duì)樣本時(shí)間序列建立 ARIMA 模型,用極大似然方法估計(jì)模型參數(shù),不同的AR 階數(shù)(值)、MA 階數(shù)(值)組合會(huì)得到不同的殘差、方差的極大似然值,最小極大似然值對(duì)應(yīng)的階次即為最優(yōu)值、值。在該實(shí)例使用AIC 準(zhǔn)則時(shí),根據(jù)經(jīng)驗(yàn)確定最高階次為4,在MATLAB 軟件中運(yùn)行AIC 準(zhǔn)則程序得到的AIC 定階數(shù)值分布熱度圖如圖2 所示。圖2 中的數(shù)值均為熱度值,深淺不同的顏色表示不同熱度。由圖2 可知,有2 組階數(shù)組合的最小極大似然值為1.641,取階數(shù)較小者,得到最佳自回歸階數(shù)()=3,滑動(dòng)平均階數(shù)()=3。
圖2 一般預(yù)測(cè)模型AIC 定階數(shù)值分布熱度圖
根據(jù)樣本平穩(wěn)化處理時(shí)所做的差分次數(shù)以及使用AIC法則定階時(shí)的()階數(shù)、()階數(shù),可建立模型ARIMA(3,2,3)。然后用LBQ 檢驗(yàn)來(lái)評(píng)估模型是否顯著有效。在MATLAB 中調(diào)用 lbqtest 函數(shù)進(jìn)行檢驗(yàn)的程序語(yǔ)句為[h]=lbqtest(reg,'Lags',1:4,'alpha',0.05)。其中,(輸入變量)為用于檢驗(yàn)的殘差序列;(輸入變量)為檢驗(yàn)的滯后項(xiàng)數(shù)目,這里分別取1、2、3 和4 共4 個(gè)項(xiàng)數(shù);(輸入變量)為假設(shè)檢驗(yàn)的顯著性水平,這里取0.05;(輸出變量)為檢驗(yàn)結(jié)果,因?yàn)闇箜?xiàng)數(shù)目是4,所以這里的測(cè)試次數(shù)為4 次。在每次得出的結(jié)果中,如果=1,則表示拒絕殘差無(wú)自相關(guān)的零假設(shè),如果=0,則表示不拒絕殘差無(wú)自相關(guān)的零假設(shè),即說(shuō)明殘差沒(méi)有自相關(guān)性。該模型的檢驗(yàn)結(jié)果顯示4 個(gè)項(xiàng)數(shù)均有=0,可知建立的模型顯著有效。
基于第2.1.3 節(jié)建立的模型,可預(yù)測(cè)2018—2020 年的季度訂單數(shù)量。在MATLAB 軟件中調(diào)用forecast 函數(shù)預(yù)測(cè)未來(lái)訂單的程序語(yǔ)句為[Y,YMSE]=forecast(mdl,12,'Y0',x)。其中,mdl(輸入變量)為建立的ARIMA 模型,即預(yù)測(cè)的推理依據(jù);12(輸入變量)為預(yù)測(cè)范圍,即預(yù)測(cè)未來(lái)12 個(gè)季度的訂單;'Y0',意為前樣本響應(yīng)數(shù)據(jù)為,即數(shù)據(jù)初值為發(fā)動(dòng)機(jī)訂單序列;(輸出變量)為預(yù)測(cè)值,為的均值平方誤差。
運(yùn)行此程序得到的結(jié)果如圖3 所示(”預(yù)測(cè)訂單1“部分)。為了分析預(yù)測(cè)訂單趨勢(shì)和以往實(shí)際發(fā)動(dòng)機(jī)訂單的變化趨勢(shì),該文將1995—2017 年發(fā)動(dòng)機(jī)季度銷(xiāo)量繪制在同一圖中(即圖3“實(shí)際訂單”部分)。由圖3 可知,與實(shí)際訂單變化情況一樣,2018—2020 年的預(yù)測(cè)訂單逐年上升,且每年內(nèi)4 個(gè)季度的訂單也逐季上升,呈現(xiàn)明顯的季節(jié)性。實(shí)際訂單與預(yù)測(cè)訂單的曲線變化趨勢(shì)的一致性較好。
圖3 發(fā)動(dòng)機(jī)實(shí)際訂單與預(yù)測(cè)訂單曲線
第2.1 節(jié)和第2.2 節(jié)是根據(jù)ARIMA 模型的一般流程來(lái)建模并分析的,而文獻(xiàn)[6]給出了一種在MATLAB 中直接利用arima 函數(shù)中的“Seasonality”來(lái)建立季節(jié)性模型的方法。與傳統(tǒng)方法相比,這種方法更簡(jiǎn)潔,因?yàn)槠浔A袅藰颖镜募竟?jié)性,所以建模時(shí)只需要進(jìn)行一次差分去除趨勢(shì)性即可。這種建模方法需要配合使用AIC 準(zhǔn)則來(lái)判斷最優(yōu)的()階數(shù)和()階數(shù),方法同第2.1.2 節(jié)所述。在MATLAB 中調(diào)用ARIMA 函數(shù)建立模型的程序語(yǔ)句為model=arima('D',1,'Sea sonality',4,'SARLags',i,'SMALags',j)。
語(yǔ)句含義為根據(jù)括號(hào)內(nèi)設(shè)置的參數(shù)建立一個(gè)ARIMA 模型。其中,'D',1 意為差分次數(shù)是1;'Seasonality',4 意為季節(jié)差分滯后算子多項(xiàng)式程度是4;'SARLags',i,'SMALags',j 意為()階數(shù)和()階數(shù)分別為由AIC 準(zhǔn)則確定的最優(yōu)的值和值。
基于一階差分樣本得到的AIC 定階數(shù)值分布熱度如圖4所示。由圖4 可知,各組()和()組合對(duì)應(yīng)的極大似然值與樣本經(jīng)過(guò)2 次差分后得到的結(jié)果不同,最佳()=4,()=1,因此可建立模型ARIMA(4,1,1),并用LBQ 檢驗(yàn)?zāi)P蜌埐?,由檢驗(yàn)結(jié)果可知,該模型顯著有效。用該模型預(yù)測(cè)的2018—2020 年季度訂單數(shù)量如圖5 所示(“預(yù)測(cè)訂單 2”部分)。
圖4 季節(jié)性預(yù)測(cè)模型AIC 定階數(shù)值分布熱度圖
為分析模型可信度,該文將2018—2020 年實(shí)際的發(fā)動(dòng)機(jī)季度訂單與2 種建模方法所得的預(yù)測(cè)訂單進(jìn)行比較,繪制的變化曲線圖如圖5 所示。由圖5 可知,2 種方法所得的預(yù)測(cè)訂單都很好地跟隨了實(shí)際訂單的變化,且除2020 年第一季度外,季節(jié)性預(yù)測(cè)模型所得預(yù)測(cè)訂單均更接近實(shí)際訂單的變化。2 種方法所得的2020 年第一季度預(yù)測(cè)訂單與實(shí)際訂單的相對(duì)誤差分別為6.2%和9.3%,而其他季度的相對(duì)誤差均為0.9%~2.3%,誤差較小。整體分析預(yù)測(cè)值與實(shí)際值的相關(guān)性,在顯著性水平=0.05 的情況下,2 種模型的預(yù)測(cè)結(jié)果均有決定系數(shù)=0.89,在滿意范圍內(nèi)。
圖5 2018—2020 年預(yù)測(cè)訂單與實(shí)際訂單的比較
時(shí)間序列預(yù)測(cè)基于這樣一個(gè)假設(shè):預(yù)測(cè)期與樣本采樣期的環(huán)境條件基本相同。而2020 年第一季度由于受新冠疫情影響,國(guó)內(nèi)外生產(chǎn)經(jīng)營(yíng)環(huán)境嚴(yán)重惡化,樣本采樣公司當(dāng)季銷(xiāo)量同比增幅極小,而當(dāng)季的預(yù)測(cè)值與實(shí)際值較大誤差為9.3%。
為了滿足快速交付訂單的客戶(hù)需求,首先,該文研究了某公司1995—2017 年(共23 a)的發(fā)動(dòng)機(jī)銷(xiāo)量時(shí)間特性,選擇ARIMA 模型建立發(fā)動(dòng)機(jī)訂單預(yù)測(cè)模型。其次,分析了ARIMA模型適用于非平穩(wěn)時(shí)間序列分析的自回歸功能、滑動(dòng)平均功能和平穩(wěn)化處理特征,給出了訂單預(yù)測(cè)模型的建模步驟。再次,以某公司以往訂單為訓(xùn)練樣本,使用該模型預(yù)測(cè)了2018—2020 年3 a 的季度訂單,結(jié)果表明,預(yù)測(cè)訂單的變化曲線與以往實(shí)際銷(xiāo)售數(shù)量的變化曲線的一致性較好。從次,將2018—2020 年的預(yù)測(cè)訂單與實(shí)際訂單進(jìn)行比較,結(jié)果顯示兩者誤差較小,決定系數(shù)較高。最后,得出該文所建立的預(yù)測(cè)模型具有較高的可信度,可以對(duì)發(fā)動(dòng)機(jī)訂單進(jìn)行預(yù)測(cè)。
中國(guó)新技術(shù)新產(chǎn)品2022年4期