李偉民,高仲合
(曲阜師范大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,山東 曲阜 273165)
混沌現(xiàn)象最早由Lorentz在天氣預(yù)報研究中發(fā)現(xiàn),之后很多人對其進(jìn)行了研究?;煦鐣r間序列預(yù)測方法是一種非線性的時間序列預(yù)測方法,具有非線性和預(yù)測精度高等特點。常用的混沌時間序列預(yù)測方法有全局預(yù)測法和局域預(yù)測法[1]。全局預(yù)測法利用過去已有的全部歷史信息對未來值進(jìn)行預(yù)測,具有預(yù)測精度低和計算量大等缺點,因此用的較多的方法是局域預(yù)測法[2]。文獻(xiàn)[3]提出利用鄰近點下一步預(yù)測的平均值作為待預(yù)測點的下一步預(yù)測值,并提出了一種區(qū)分混沌時間序列與隨機時間序列的方法。局域預(yù)測法只利用部分歷史信息,而且局域動力方程的擬合相對容易,計算量較小。本文改進(jìn)局域線性預(yù)測模型中的參數(shù)選取,實驗結(jié)果表明改進(jìn)后的局域線性模型預(yù)測精度較好。
對已獲得的標(biāo)量時間序列x(n),n=1,2,3,…,N,應(yīng)用相空間重構(gòu)理論,可以將標(biāo)量時間序列x(n)重構(gòu)為相空間中的軌跡X(n),公式如下:
式中,n=1+(m-1)τ,2+(m-1)τ…,N;m和τ是相空間重構(gòu)的兩個重要參數(shù),它們決定了重構(gòu)的相空間與混沌系統(tǒng)演化的近似程度。
當(dāng)重構(gòu)的相空間用于預(yù)測時,需找到X(N)的一些鄰近點,N表示x(n)中最后一個值的下標(biāo)[4]。在X(1)到x(n-1)的N-1個點中利用公式:
找到最近的k個點X(i),dist(i)表示點X(N)第i個點的距離。鄰近點選好之后,可以進(jìn)行模型的建立與時間序列值的預(yù)測。
局域線性預(yù)測法是用幾個過去值的線性組合來表示將來值的一種方法,即:
式中,A=[a0,a1,…,am];X′=[1,x(N),x(N-τ),…,x(N-(m-1)τ)]T。它利用已獲得的鄰近點得到一個線性回歸方程,并用最小二乘法對線性組合的參數(shù)A進(jìn)行求解,解出后即可進(jìn)行預(yù)測。當(dāng)step=1時,即為一步預(yù)測[5,6]。
對未來值的預(yù)測,一般利用如下公式:
式中,參數(shù)m和τ是重構(gòu)相空間的參數(shù)。但對于相空間重構(gòu)為最佳值的m和τ,對于預(yù)測來說不一定是最佳的,即產(chǎn)生最佳預(yù)測效果的參數(shù)mp和τp可以取與m和τ不同的值[2]。
對于參數(shù)m和τ最優(yōu)值的選取,本文提出利用遺傳算法來進(jìn)行。即利用遺傳算法進(jìn)行參數(shù)取值空間中最優(yōu)參數(shù)值的搜索,搜索完成后用以下公式預(yù)測:
式中,Y=[1,x(N),x(N-τ),x(N-(mp-1)τp)]T;step 取為 1。預(yù)測完成后將預(yù)測值加入到原序列中繼續(xù)下一步的預(yù)測。遺傳算法的適應(yīng)度函數(shù)應(yīng)與ε(m,τ)有關(guān),ε(m,τ)的計算如下:
其為參數(shù)取m和τ時的標(biāo)準(zhǔn)預(yù)測誤差,t為預(yù)測步數(shù)。
本文中取適應(yīng)度函數(shù)為:
即誤差越小,適應(yīng)度函數(shù)值越大。
預(yù)測流程如圖1所示。
圖1 改進(jìn)的模型預(yù)測流程圖
采用洛倫茲吸引子軌跡為實驗對象,洛倫茲吸引子軌跡的常微分方程組為:
采用龍格-庫塔算法進(jìn)行積分,積分步長為0.01。取其中的x坐標(biāo)的時間序列為分析對象,即上文所述的x(n)。一共5 000個數(shù)據(jù)點,用前4 000個點建立模型,后面的點用于評估預(yù)測效果[7-9]。
采用傳統(tǒng)的局域線性預(yù)測和改進(jìn)的局域線性預(yù)測方法的結(jié)果如下,圖2(a)和(b)分別表示傳統(tǒng)局域線性模型和改進(jìn)的局域線性模型在預(yù)測步數(shù)為50時的預(yù)測結(jié)果和誤差,傳統(tǒng)局域線性模型的ε(m,τ)值為0.010 734,改進(jìn)的局域線性模型的ε(m,τ)值為0.001 754[10]。
圖2 改進(jìn)的局域線性模型與傳統(tǒng)的局域線性模型預(yù)測比較
圖3(a)和(b)分別表示傳統(tǒng)局域線性模型和改進(jìn)的局域線性模型在預(yù)測步數(shù)為100時的預(yù)測結(jié)果和誤差,傳統(tǒng)局域線性模型的ε(m,τ)值為0.068 439,改進(jìn)的局域線性模型的ε(m,τ)值為0.018 721。
圖3 改進(jìn)的局域線性模型與傳統(tǒng)的局域線性模型預(yù)測比較
局域預(yù)測法是混沌時間序列預(yù)測的一種有效方法,傳統(tǒng)局域線性預(yù)測模型中參數(shù)和τ是和相空間重構(gòu)的參數(shù)和τ一樣,改進(jìn)的局域線性預(yù)測模型中參數(shù)經(jīng)過遺傳算法優(yōu)化后使得預(yù)測效果有了提升,說明了遺傳算法和重新選取的參數(shù)的有效性。