本發(fā)明屬于糧食產(chǎn)量預(yù)測(cè)技術(shù)領(lǐng)域,具體涉及一種基于差分處理的糧食產(chǎn)量預(yù)測(cè)方法和裝置。
背景技術(shù):
糧食對(duì)于經(jīng)濟(jì)發(fā)展和社會(huì)穩(wěn)定十分重要,我國(guó)是一個(gè)農(nóng)業(yè)大國(guó),糧食產(chǎn)量的多少、能否滿足人民的需要是各級(jí)政府關(guān)注的主要問(wèn)題之一,所以預(yù)測(cè)糧食產(chǎn)量對(duì)指導(dǎo)糧食生產(chǎn)具有重要的意義。目前用于預(yù)測(cè)的方法很多,主要有時(shí)間序列的回歸方法、BP神經(jīng)網(wǎng)絡(luò)方法、灰度預(yù)測(cè)、多元線性回歸預(yù)測(cè)等。
但是由于糧食產(chǎn)量受到多種因素的影響,如糧食作物播種總面積、總勞動(dòng)力、化肥總用量、有效灌溉面積、用電總量、機(jī)械總動(dòng)力、受災(zāi)總面積等,導(dǎo)致糧食產(chǎn)量的時(shí)間序列的非平穩(wěn)性,也導(dǎo)致的預(yù)測(cè)方法預(yù)測(cè)結(jié)果的精度不高,魯棒性不強(qiáng)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種基于差分處理的糧食產(chǎn)量預(yù)測(cè)方法和裝置,用于解決上述現(xiàn)有技術(shù)對(duì)糧食產(chǎn)量預(yù)測(cè)的結(jié)果精度不高,魯棒性不強(qiáng)的問(wèn)題。
一種基于差分處理的糧食產(chǎn)量預(yù)測(cè)方法,包括如下步驟:
(1)獲取n年的糧食產(chǎn)量y(k)和影響因子x(k),利用差分算法依次計(jì)算相鄰年份影響因子的波動(dòng)量z(k),其中n為大于1的正整數(shù),k為正整數(shù),并且1<k≤n;
(2)計(jì)算n年影響因子波動(dòng)量z(k)絕對(duì)值的平均值z(mì);
(3)對(duì)每年的產(chǎn)量因子進(jìn)行校正:
如果第k年產(chǎn)量影響因子波動(dòng)量的絕對(duì)值大于平均值z(mì),判斷該年的產(chǎn)量因子波動(dòng)量是否大于0;
如果大于,則該年的產(chǎn)量影響因子x(k)=(1+z)×x(k-1);
否則該年的產(chǎn)量影響因子x(k)=(1-z)×x(k-1);
(4)采用灰色模型,根據(jù)前n-h年的經(jīng)過(guò)校正的影響因子,對(duì)n年中后h年的影響因子進(jìn)行預(yù)測(cè),以得到后h年的影響因子,h為大于0小于n的整數(shù);
(5)根據(jù)所述n年的糧食產(chǎn)量,以及前n-h年經(jīng)過(guò)校正的影響因子和預(yù)測(cè)得到的后h年的影響因子,計(jì)算出糧食產(chǎn)量與影響因子之間的關(guān)聯(lián)系數(shù),篩選出關(guān)聯(lián)系數(shù)大于設(shè)定值的影響因子;
(6)利用多元回歸方程建立糧食產(chǎn)量與各影響因子之間的關(guān)系模型,運(yùn)用該模型計(jì)算出未來(lái)b年糧食產(chǎn)量,其中b為大于0的整數(shù)。
本發(fā)明提供的一種基于差分處理的糧食產(chǎn)量預(yù)測(cè)方法,在預(yù)測(cè)未來(lái)m年的糧食產(chǎn)量時(shí),首先對(duì)前n年的糧食產(chǎn)量影響因子進(jìn)行了差分運(yùn)算,對(duì)能夠影響到糧食產(chǎn)量的因素進(jìn)行處理,篩選出與糧食產(chǎn)量關(guān)聯(lián)系數(shù)較大的影響因子對(duì)未來(lái)幾年的糧食產(chǎn)量進(jìn)行預(yù)測(cè),從而解決現(xiàn)有技術(shù)對(duì)糧食產(chǎn)量預(yù)測(cè)的結(jié)果精度不高,魯棒性不強(qiáng)的問(wèn)題。
進(jìn)一步的,對(duì)每年的影響因子進(jìn)行校正之后,再對(duì)每年的產(chǎn)量影響因子做指數(shù)平滑處理。
對(duì)每年的影響因子做指數(shù)平滑處理,能夠進(jìn)一步的減小數(shù)據(jù)波動(dòng),提高預(yù)測(cè)結(jié)果的準(zhǔn)確性。
進(jìn)一步的,預(yù)測(cè)出未來(lái)b年的糧食產(chǎn)量之后,將預(yù)測(cè)的糧食產(chǎn)量與往年的實(shí)際產(chǎn)量之差作為輸入數(shù)據(jù),運(yùn)用灰色模型預(yù)測(cè)未來(lái)b年的糧食產(chǎn)量誤差,再運(yùn)用此誤差修正未來(lái)b年的糧食產(chǎn)量。
進(jìn)一步的,篩選影響因子時(shí),所述設(shè)定值為0.8。
篩選產(chǎn)量影響因子時(shí)的設(shè)定值越高,預(yù)測(cè)的結(jié)果越準(zhǔn)確。
經(jīng)過(guò)對(duì)預(yù)測(cè)結(jié)果進(jìn)行誤差修正,預(yù)測(cè)的結(jié)果更加準(zhǔn)確。
進(jìn)一步的,所述步驟(5)包括:
(1)對(duì)所述n年的糧食產(chǎn)量y(k)以及前n-h年經(jīng)過(guò)校正的影響因子和預(yù)測(cè)得到的后h年的影響因子進(jìn)行歸一化處理,得到歸一化處理之后的糧食產(chǎn)量y″'(k)和影響因子x″'(k);
當(dāng)0<k<n-h時(shí),x″'(k)由前n-h年經(jīng)過(guò)校正的影響因子經(jīng)過(guò)歸一化處理之后得到;
當(dāng)n-h≤k≤n時(shí),x″'(k)由預(yù)測(cè)得到的后h年的影響因子經(jīng)過(guò)歸一化處理之后得到;
(2)計(jì)算出糧食產(chǎn)量與第i種影響因子之間的關(guān)聯(lián)系數(shù)G(i),
其中i為正整數(shù),
max(|y″'(k)-x″'(k)|)表示|y″'(k)-x″'(k)|的最大值,min(|y″'(k)-x″'(k)|)表示|y″'(k)-x″'(k)|的最大值;
(3)篩選出關(guān)聯(lián)系數(shù)大于設(shè)定值的影響因子。
一種基于差分處理的糧食產(chǎn)量預(yù)測(cè)裝置,包括如下模塊:
(1)獲取n年的糧食產(chǎn)量y(k)和影響因子x(k),利用差分算法依次計(jì)算相鄰年份影響因子的波動(dòng)量z(k)的模塊,其中n為大于1的正整數(shù),k為正整數(shù),并且1<k≤n;
(2)計(jì)算n年影響因子波動(dòng)量z(k)絕對(duì)值的平均值z(mì)的模塊;
(3)對(duì)每年的產(chǎn)量因子進(jìn)行校正:
如果第k年產(chǎn)量影響因子波動(dòng)量的絕對(duì)值大于平均值z(mì),判斷該年的產(chǎn)量因子波動(dòng)量是否大于0;
如果大于,則該年的產(chǎn)量影響因子x(k)=(1+z)×x(k-1);
否則該年的產(chǎn)量影響因子x(k)=(1-z)×x(k-1)的模塊;
(4)采用灰色模型,根據(jù)前n-h年的經(jīng)過(guò)校正的影響因子,對(duì)n年中后h年的影響因子進(jìn)行預(yù)測(cè),以得到后h年的影響因子的模塊,h為大于0小于n的整數(shù);
(5)根據(jù)所述n年的糧食產(chǎn)量,以及前n-h年經(jīng)過(guò)校正的影響因子和預(yù)測(cè)得到的后h年的影響因子,計(jì)算出糧食產(chǎn)量與影響因子之間的關(guān)聯(lián)系數(shù),篩選出關(guān)聯(lián)系數(shù)大于設(shè)定值的影響因子的模塊;
(6)利用多元回歸方程建立糧食產(chǎn)量與上述篩選出的影響因子之間的關(guān)系模型,運(yùn)用該模型計(jì)算出未來(lái)b年糧食產(chǎn)量的模塊,其中b為大于0的整數(shù)。
進(jìn)一步的,對(duì)每年的影響因子進(jìn)行校正之后,再對(duì)每年的產(chǎn)量影響因子做指數(shù)平滑處理。
進(jìn)一步的,預(yù)測(cè)出未來(lái)b年的糧食產(chǎn)量之后,將預(yù)測(cè)的糧食產(chǎn)量與往年的實(shí)際產(chǎn)量之差作為輸入數(shù)據(jù),運(yùn)用灰色模型預(yù)測(cè)未來(lái)b年的糧食產(chǎn)量誤差,再運(yùn)用此誤差修正未來(lái)b年的糧食產(chǎn)量。
進(jìn)一步的,篩選影響因子時(shí),所述設(shè)定值為0.8。
進(jìn)一步的,所述模塊(5)包括:
(1)對(duì)所述n年的糧食產(chǎn)量y(k)以及前n-h年經(jīng)過(guò)校正的影響因子和預(yù)測(cè)得到的后h年的影響因子進(jìn)行歸一化處理,得到歸一化處理之后的糧食產(chǎn)量y″'(k)和影響因子x″'(k)的單元;
當(dāng)0<k<n-h時(shí),x″'(k)由前n-h年經(jīng)過(guò)校正的影響因子經(jīng)過(guò)歸一化處理之后得到;
當(dāng)n-h≤k≤n時(shí),x″'(k)由預(yù)測(cè)得到的后h年的影響因子經(jīng)過(guò)歸一化處理之后得到;
(2)計(jì)算出糧食產(chǎn)量與第i種影響因子之間的關(guān)聯(lián)系數(shù)G(i)的模塊,其中
i為正整數(shù),
max(|y″'(k)-x″'(k)|)表示|y″'(k)-x″'(k)|的最大值,min(|y″'(k)-x″'(k)|)表示|y″'(k)-x″'(k)|的最大值;
(3)篩選出關(guān)聯(lián)系數(shù)大于設(shè)定值的影響因子。
附圖說(shuō)明
圖1為方法實(shí)施例所提供的基于差分處理的糧食產(chǎn)量預(yù)測(cè)方法流程圖。
具體實(shí)施方式
本發(fā)明提供一種基于差分處理的糧食產(chǎn)量預(yù)測(cè)方法和裝置,用于解決上述現(xiàn)有技術(shù)對(duì)糧食產(chǎn)量預(yù)測(cè)的結(jié)果精度不高,魯棒性不強(qiáng)的問(wèn)題。
一種基于差分處理的糧食產(chǎn)量預(yù)測(cè)方法,包括如下步驟:
(1)獲取n年的糧食產(chǎn)量y(k)和影響因子x(k),利用差分算法依次計(jì)算相鄰年份影響因子的波動(dòng)量z(k),其中n為大于1的正整數(shù),k為正整數(shù),并且1<k≤n;
(2)計(jì)算n年影響因子波動(dòng)量z(k)絕對(duì)值的平均值z(mì);
(3)對(duì)每年的產(chǎn)量因子進(jìn)行校正:
如果第k年產(chǎn)量影響因子波動(dòng)量的絕對(duì)值大于平均值z(mì),判斷該年的產(chǎn)量因子波動(dòng)量是否大于0;
如果大于,則該年的產(chǎn)量影響因子x(k)=(1+z)×x(k-1);
否則該年的產(chǎn)量影響因子x(k)=(1-z)×x(k-1);
(4)采用灰色模型,根據(jù)前n-h年的經(jīng)過(guò)校正的影響因子,對(duì)n年中后h年的影響因子進(jìn)行預(yù)測(cè),以得到后h年的影響因子,h為大于0小于n的整數(shù);
(5)根據(jù)所述n年的糧食產(chǎn)量,以及前n-h年經(jīng)過(guò)校正的影響因子和預(yù)測(cè)得到的后h年的影響因子,計(jì)算出糧食產(chǎn)量與影響因子之間的關(guān)聯(lián)系數(shù),篩選出關(guān)聯(lián)系數(shù)大于設(shè)定值的影響因子;
(6)利用多元回歸方程建立糧食產(chǎn)量與各影響因子之間的關(guān)系模型,運(yùn)用該模型計(jì)算出未來(lái)b年糧食產(chǎn)量,其中b為大于0的整數(shù)。
灰色理論以部分已知信息、部分未知信息的“少數(shù)據(jù)”、“貧信息”不確定性系統(tǒng)為研究對(duì)象,通過(guò)對(duì)部分已知信息的挖掘,提取有價(jià)值的信息,實(shí)現(xiàn)對(duì)系統(tǒng)運(yùn)行行為、演化規(guī)律的正確描述和有效監(jiān)控。
目前使用比較廣泛的灰色預(yù)測(cè)模型就是關(guān)于數(shù)列預(yù)測(cè)的一個(gè)變量、一階微分的GM(1,1)模型。
設(shè)時(shí)間序列X(0)有n個(gè)觀測(cè)值,X(0)={X(0)(1),X(0)(2),┅,X(0)(n)},通過(guò)累加生成新序列X(1)={X(1)(1),X(1)(2),…,X(1)(n)},則GM(1,1)模型相應(yīng)的微分方程為:
其中:a稱為發(fā)展灰數(shù);設(shè)為待估參數(shù)向量,利用最小二乘法求解可得:
其中:
求解微分方程,即可得預(yù)測(cè)模型:
其中k=1,2,...,n
進(jìn)一步得出預(yù)測(cè)公式:
多元線性回歸:
設(shè)系統(tǒng)中有m個(gè)輸入變量(影響因子)x1,x2,x3...xm輸出為Y,建立輸入與輸出之間的關(guān)系模型:Y=f(x1,x2...xm),由于f(x1,x2...xm)的復(fù)雜性,通常用Volterra級(jí)數(shù)展開的多項(xiàng)式去逼近:
進(jìn)一步簡(jiǎn)化模型,采用多元一次方程:
Y=a0+a1x1+a2x2+...amxm (7)
其中各影響因子的系數(shù)可通過(guò)線性回歸求得。
下面結(jié)合附圖對(duì)本實(shí)施例進(jìn)行詳細(xì)說(shuō)明。
方法實(shí)施例:
本實(shí)施例所提供的一種基于差分處理的糧食產(chǎn)量預(yù)測(cè)方法,其流程如圖1所示,具體步驟如下:
(1)獲取前n年的糧食產(chǎn)量數(shù)據(jù)和產(chǎn)量影響因子數(shù)據(jù)x(k),利用查分算法公式依次計(jì)算相鄰年份數(shù)據(jù)的波動(dòng)量z(k),其中n為大于1的正整數(shù),k為正整數(shù),并且1<k≤n;
(2)計(jì)算前n年影響因子波動(dòng)量z(k)絕對(duì)值的平均值z(mì)=Average((z(k)));
(3)對(duì)每年的產(chǎn)量影響因子進(jìn)行校正,方法如下:
如果第k年產(chǎn)量影響因子波動(dòng)量的絕對(duì)值大于波動(dòng)量的平均值z(mì),判斷該年的產(chǎn)量因子波動(dòng)量是否大于0;
如果大于,則該年的產(chǎn)量影響因子x(k)=(1+z)×x(k-1);
否則該年的產(chǎn)量影響因子x(k)=(1-z)×x(k-1);
(4)采用公式x'(k)=ex(k)對(duì)第k年的產(chǎn)量因子進(jìn)行指數(shù)平滑處理;
(5)采用灰色模型,利用前n-h年的經(jīng)過(guò)校正的影響因子,對(duì)n年中后h年的影響因子進(jìn)行預(yù)測(cè),以得到后h年的影響因子,h為大于0小于n的整數(shù);
(6)采用公式分別對(duì)n年的糧食產(chǎn)量以及前n-h年經(jīng)過(guò)校正的影響因子和預(yù)測(cè)得到的后h年的影響因子進(jìn)行歸一化處理,然后再采用公式進(jìn)行平滑性處理,得到n年糧食產(chǎn)量和影響因子歸一化處理之后的表達(dá)式y(tǒng)″'(k)和x″'(k);
max(x(k))為前n年中產(chǎn)量影響因子的最大值,min(x(k))為前n年中產(chǎn)量影響因子的最小值;
(7)采用公式計(jì)算糧食產(chǎn)量與第i種影響因子間的關(guān)聯(lián)系數(shù);其中G(i)為正整數(shù);
(8)將關(guān)聯(lián)系數(shù)G(i)大于0.8的影響因子保留,其它影響因子刪除,利用多元回歸方程建立糧食產(chǎn)量與篩選出的影響因子之間的關(guān)系模型;
(9)計(jì)算出步驟(8)中所建立模型中各影響因子的系數(shù);
(10)利用糧食產(chǎn)量與篩選出的影響因子之間的關(guān)系模型對(duì)未來(lái)b年中第p年糧食產(chǎn)量的歸一化表達(dá)式進(jìn)行預(yù)測(cè),其中b和p均為大于0的正整數(shù),且p的取值范圍為n<p≤n+b;
(11)按照與步驟(5)中相應(yīng)的逆歸一化公式
對(duì)進(jìn)行逆歸一化處理,得到第p年的糧食產(chǎn)量
(12)殘差修正:將預(yù)測(cè)的糧食產(chǎn)量與往年的實(shí)際產(chǎn)量之差作為輸入數(shù)據(jù),運(yùn)用灰色理論預(yù)測(cè)未來(lái)b年的糧食產(chǎn)量誤差,再運(yùn)用此誤差修正未來(lái)b年的糧食產(chǎn)量;
(13)計(jì)算糧食產(chǎn)量預(yù)測(cè)相對(duì)誤差。
在本實(shí)施例中,對(duì)每年的產(chǎn)量影響因子進(jìn)行校正之后,再對(duì)每年的產(chǎn)量影響因子做指數(shù)平滑處理;作為其他實(shí)施方式,可以采用其他算法進(jìn)行平滑處理。
在本實(shí)施例中,預(yù)測(cè)出未來(lái)m年的糧食產(chǎn)量之后,將預(yù)測(cè)的糧食產(chǎn)量與往年的實(shí)際產(chǎn)量之差作為輸入數(shù)據(jù),運(yùn)用灰色理論預(yù)測(cè)未來(lái)若干年的糧食產(chǎn)量誤差,再運(yùn)用此誤差修正未來(lái)m年的糧食產(chǎn)量;作為其他實(shí)施方式,可以采用其他的方法對(duì)預(yù)測(cè)的結(jié)果進(jìn)行修正。
在本實(shí)施例中,通過(guò)先對(duì)糧食產(chǎn)量和影響因子進(jìn)行歸一化處理,然后計(jì)算出關(guān)聯(lián)系數(shù),通過(guò)多元回歸方程建立糧食產(chǎn)量與各影響因子之間的模型,預(yù)測(cè)出未來(lái)b年的糧食產(chǎn)量;作為其他實(shí)施方式,可以通過(guò)其他方式利用多元回歸方程建立糧食產(chǎn)量與各影響因子之間的模型,運(yùn)用該模型計(jì)算出未來(lái)b年糧食產(chǎn)量。
在本實(shí)施例中,篩選產(chǎn)量影響因子時(shí)設(shè)定值為0.8;作為其他實(shí)施方式,設(shè)定值可以根據(jù)實(shí)際情況增加或減小。
裝置實(shí)施例:
一種基于差分處理的糧食產(chǎn)量預(yù)測(cè)裝置,包括如下模塊:
(1)獲取n年的糧食產(chǎn)量y(k)和影響因子x(k),利用差分算法依次計(jì)算相鄰年份影響因子的波動(dòng)量z(k)的模塊,其中n為大于1的正整數(shù),k為正整數(shù),并且1<k≤n;
(2)計(jì)算n年影響因子波動(dòng)量z(k)絕對(duì)值的平均值z(mì)的模塊;
(3)對(duì)每年的產(chǎn)量因子進(jìn)行校正:
如果第k年產(chǎn)量影響因子波動(dòng)量的絕對(duì)值大于平均值z(mì),判斷該年的產(chǎn)量因子波動(dòng)量是否大于0;
如果大于,則該年的產(chǎn)量影響因子x(k)=(1+z)×x(k-1);
否則該年的產(chǎn)量影響因子x(k)=(1-z)×x(k-1)的模塊;
(4)采用灰色模型,利用前n-h年的經(jīng)過(guò)步驟(3)處理過(guò)的影響因子,對(duì)n年中后h年的影響因子進(jìn)行預(yù)測(cè),以得到后h年的影響因子的模塊,h為大于0小于n的整數(shù);
(5)根據(jù)所述n年的糧食產(chǎn)量,以及前n-h年的影響因子和預(yù)測(cè)得到的后h年的影響因子,計(jì)算出糧食產(chǎn)量與影響因子之間的關(guān)聯(lián)系數(shù),篩選出關(guān)聯(lián)系數(shù)大于設(shè)定值的影響因子的模塊;
(6)根據(jù)篩選出的影響因子,利用多元回歸方程建立糧食產(chǎn)量與各影響因子之間的關(guān)系模型,運(yùn)用該模型計(jì)算出未來(lái)b年糧食產(chǎn)量的模塊,其中b為大于0的整數(shù)。
本實(shí)施例所提供的一種基于差分處理的糧食產(chǎn)量預(yù)測(cè)裝置,其中各模塊并不是硬件模塊,而是按照上述方法進(jìn)行編程所形成的軟件模塊,運(yùn)行在相應(yīng)的處理器中,并且能夠存儲(chǔ)在移動(dòng)存儲(chǔ)裝置或者固定存儲(chǔ)裝置中。
以上給出了本發(fā)明涉及的具體實(shí)施方式,但本發(fā)明不局限于所描述的實(shí)施方式。在本發(fā)明給出的思路下,采用對(duì)本領(lǐng)域技術(shù)人員而言容易想到的方式對(duì)上述實(shí)施例中的技術(shù)手段進(jìn)行變換、替換、修改,并且起到的作用與本發(fā)明中的相應(yīng)技術(shù)手段基本相同、實(shí)現(xiàn)的發(fā)明目的也基本相同,這樣形成的技術(shù)方案是對(duì)上述實(shí)施例進(jìn)行微調(diào)形成的,這種技術(shù)方案仍落入本發(fā)明的保護(hù)范圍內(nèi)。