專利名稱::一種預測灌區作物單產量的方法
技術領域:
:本發明屬于灌區生態系統分析
技術領域:
,具體涉及一種基于灰色理論和進化算法的灌區作物單產預測的方法。
背景技術:
:隨著農業市場化的不斷發展,作物品種和種植結構已有很大變化,灌區農業生產管理部門以及當地農業生產者和涉農企業,對作物產量預測信息的要求越來越高。預測作物產量的變化對當地政策宏觀調控和區域結構調整都有著十分重要的意義。建立合適的預測模型,加大作物產量預測研究,可以加強灌區農業氣象服務的針對性,增加預測的準確度,滿足更高的農業氣象服務需要。通過進行較為準確的產量預測,還可以提高農業及相關產業的生產率,增強對農業生產的指導作用。影響灌區作物產量的因素錯綜復雜,既有社會人為因素,又有自然環境因素,不同職能部門往往單從自身專業角度出發來進行分析預測。對于自然環境因素而言,有些作物生育期較長,氣象條件影響復雜,比如降雨量、氣壓、土壤肥力、太陽輻射量、溫度、日照、大氣環流、土壤含水量、大氣干燥力等等,以及可量化的灌區人為環境因素(比如灌水量、施肥量等),使用傳統的氣候統計分析、產量要素分析、農學分析等方法,預測準確率都不高。對于社會經濟因素,往往更是難以量化分析,比如當地政策措施、當地灌溉技術、農民種植水平、肥料質量等等。隨著多年來軟計算技術的逐步發展,農業與氣象科技人員在不斷嘗試引進多種基于軟計算科學的預報方法,如神經網絡、灰色預測、馬爾柯夫鏈預測等方法,但在實際應用中,單一的使用某種靜態模型往往難以取得令人滿意的效果,因為畢竟每種方法不是萬能的,不一定適合系統演化的諸多影響因子,另外各自在其數學理論依據上都有其自身的缺陷或局限性。
發明內容本發明的目的在于提供一種預測灌區作物單產的方法,該方法兼顧環境因素和社會經濟因素,克服了單一模型的缺陷,簡單易行,具有較高合理性和精確性。一種預測灌區作物單產量的方法,已知前n年的單產量,n25,預測未來單產量,該方法具體如下步驟A依據ln年的單產量,采用灰色建模方法,構建灌區的經濟產量預測公式i;(yt'),it'為待預測年;步驟B依據ln年的單產量,采用灰色關聯選取環境主因子后,使用神經網絡建模方法構建灌區的環境產量預測公式"(y),^為待預測年;步驟C確定經濟產量權重系數"和環境產量權重系數/,《+/=1,a與經濟產量預測誤差成反比,/與環境產量預測誤差成反比;所述經濟產量預測誤差定義為依據1v年的實際單產量,按照步驟A的方式構建經濟產量修正用公式K(/)。采用公式i;'(/)預測/"+1,…,年時的經濟產量,將預測結果與第v+l,…,"年的實際單產量比較,得到經濟所述環境產量預測誤差定義為依據1v年的實際單產量,按照步驟(B)的方式構建環境產量修正用公式《(/)。使用公式《(/)預測/i+l,…^年時的環境產量,將預測結果與第v+l,…^年的實際單產量比較,得到環境產量預測誤差;其中,l《v<n;步驟D采用單產量公式)=(/t')+("預測灌區在第年的單廣量,A:'卜w。所述步驟C具體為步驟C1提取1v年的實際單產量,按照步驟A的方式預測灌區在第/"+i,…^年的經濟產量預測值i;(/);提取1v年的實際單產量,以及環境主因子實測數據,按照步驟B的方式預測灌區在第/=^+1,".^年的環境產量預測值《(/);步驟C2計算第/"+i,…,n年的經濟產量預測值i;(/)與第/"+l,…^年實際的單產量間的差值,對這些差值作平方和計算,再求取其倒數Sl;計算第/i+l,…,"年的環境產量預測值"(/)與第/"+l,…,"年實際的單產量間的差值,對這些差值作平方和計算,再求取其倒數S2;步驟C3計算經濟產量的權重系數《=^;,環境產量的權重系數/^!。本發明的技術效果體現在(1)本發明從社會經濟生產力和灌區環境(自然氣象和人為種植環境)兩個角度出發,分析各自的影響因素,由此將灌區作物產量分解為經濟產量和環境產量,它們分別由社會人為因素、自然環境因素決定。分別對經濟產量和環境產量單獨建立各自的預測模型,然后通過權重系數加權求和得到作物產量的組合預測模型。該方法弱化了不同模型各自的缺陷,使得兩個模型相互自適應的取長補短,同時也弱化了社會經濟因素與自然環境因素單方面來預測作物產量所帶來的系統分析局限性。(2)由于經濟產量由社會經濟因素(當地政策措施、當地灌溉技術、農民種植水平、肥料質量等)決定,它對單產的影響難以定量表述,并且相當復雜,它反映的是一定時期社會生產力發展水平對作物產量的影響,因此也是相對穩定的因素,在一定時期類是一個平穩的過程,于是對其進行灰色預測建模。灰色建模是一種對含有不確定因素的系統進行預測的方法,它介于白色系統和黑色系統之間。GM(l,l)灰色模型預測方法通過對作物年產量原始數據作生成處理來尋找系統變動的規律,生成有較強規律性的數據序列,然后建立相應的微分方程模型,從而預測事物未來產量發展趨勢的狀況。該方法有以下幾方面優點①在中長期預測中可保持較高的預測精度和較強的穩定性;②不苛求大樣本量,甚至選擇5至8個小樣本即可進行建模,特別適合于數據難以求得的情況下進行預測;③建模靈活簡便,計算量不大,人工計算即可實現,并且便于調試和控制。(3)在進行作物經濟產量預測時,為傳統的灰色預測建模加入了一套完善的數據預分析處理、模型檢驗以及模型修正配套流程,增強了作物經濟產量預測建模的可行性和穩定性。同時為該灰色模型實施新息化處理,將最新信息取代最舊信息來不斷移動模型的序列滑動窗口,使模型更具有實效性和預測的準確性。由于利用灰色模型預測作物經濟產量時對樣本數據量要求較少,越近期的數據越有效,且原始數據不要求有很好的統計規律,做法是將原始數據根據發展系數范圍要求做相應預處理,并對預測數據做殘差檢驗和修正,通過了這一系列預處理、檢驗和修正過程,所建模型的中長期預測效果較好,但其近期預測效果比徑向基神經網絡差。于是對作物環境產量進行預測時,首先進行灰關聯分析,選取到合適的自然環境主因子,接下來對其作徑向基神經網絡建模。徑向基神經網絡的優點是短期預測精度很高,它具有局部逼近網絡的優點,可以近似任何非線性函數,它用于近期數據的模擬及預測,精度相當高,但對預測結果沒有做一定的檢驗,中長期預測效果較灰色預測模型差。所以,為了充分利用單一模型所反映的有效信息,克服單一模型的缺陷,減少預測的隨機性,提高預測精度,本發明建立了組合預測模型。本發明合理的作物產量預測為當地灌區農業部門安排農產品收購、存儲、進口、出口和消費等提供了重要的決策參考依據;為當地政府判斷農業生產形式,進行農業決策等提供了科學依據,對農業生產和灌區經濟發展的工作指導和政策制定很有益處。圖l是本發明整體流程圖2是本發明涉及的灰色新息建模及模型檢驗流程圖。具體實施例方式對于灌區生態系統進行作物產量預測這一具體問題,基于基本單產預測公式的原理,若能進行有針對性的組合建模,并使組合模型具備新城代謝的動態自適應更新能力,就能夠直觀的反映從社會生產力因素及環境因素綜合考慮對該問題的影響,因此可以提高預測的準確率,從而更好的指導灌區農業生產。根據作物單產諸多影響因子的特性,將灌區作物產量歸納為兩類,即經濟產量和環境產量。作物單產量由經濟產量與環境產量加權求和得到。計算公式為7="《'+/^(其中7表示作物單產量,《'、"分別為經濟產量和環境產量,《、"分別為兩者各自的權重系數);經濟產量由社會經濟因素(當地政策措施、當地灌溉技術、農民種植水平、肥料質量等)決定,它對單產的影響難以定量表述,并且相當復雜,它反映的是一定時期社會生產力發展水平對作物產量的影響,因此也是相對穩定的因素,在一定時期類是一個平穩的過程,因此適合對其建立GM(l,l)灰色預測模型;環境產量受灌區一系列自然環境和人為環境影響,降水、氣壓、太陽輻射、溫度、日照、大氣環流、土壤含水量、灌水量、施肥量等諸多環境因子的不斷變化,使得環境產量不斷波動,因此環境產量是非穩定隨機過程,反映了環境因素對灌區作物產量的影響;本發明基于灰色理論和進化算法的灌區作物單產預測的動態自適應組合建模預測方法如圖l,具體步驟如下1.對歷史產量數據建立新息GM(l,1)灰色預測模型。具體路線如下(流程如圖2所示)(1)取灌區前n(n25)年的歷史單產量數據組成初始時間序列),x(。)=(x(。)(1),x(。)(2),…,x(。)(")},對x(0)作累加生成(/)=t,Z=1,2…,",即;c("—x("(l),x①(2),…,x(1)(^。令z("為的緊鄰均值生成序列,z(1)={z(1)(2),z("(3)'…,其中z("(ifc)+("(it—1)+會x("(it),"2,3,…,";(2)根據灰色系統理論可建立如下形式的白化微分方程:+ox("=w,"發展系數,w:灰作用量,,表示時間,d表示微分方程的解為x(,卜(x(D(,。)」K"'—'。)+^"。為初始時刻)對其取等間隔離散值得到x(、'+l)-(x("(l)2),'+2(時間響應函數),^為取樣時刻,從l開始依次取正整數值,e二2.71828;(3)用最小二乘法對序列值計算發展系數和灰作用量的估計值,艮卩a、《,表達式為i7'W—^乂"表示對矩陣進行轉置,陣求逆),其中^="(1)(2),1-z(1)(3),1—1,T=(x(°)(2),x(°)(3),…,;c(。)(")f,此時,如果0.S叫5卜0.8,將當前x(')返給,)序列再一次做累加生成,得到新的x("序列,然后回到步驟(2);*如果間》0.8,則更新原始產量數據,更新方式可以采用對原始產量數據作平滑處理,回到步驟(1);若間S0.3,進入下一步時可以做中長期預測;*若0.3乂間《0.5,進入下一步時最好只做短期預測;(4)將5、《代入微分方程的解,得到預測模型^"W+l)-(x(1)(1)-4)e-汲'+4,,(l)=x(。)(l),當/t^l,2,…,"-l時,序列估計值為模型的擬合值,當r》n時,序列估計值為模型的預測值;(5)計算模型精度。首先定義相對誤差^t'),平均相對誤差f與精(6)將r與人為預定的精度要求值進行比較,若小于(即不符合精度要求),可在嚴重偏離點附近用殘差序列建立GM(l,l)殘差灰色模型,對原來的模型進行修正,即用實際值與估計值之差組成的序列作殘差序列f'(1)("=W')-,W),用GM(l,l)灰色建模方法建立新的微分方程模型,再將該殘差模型的估計值^"加到序列估計值,上去對時間響應方程做修正。反復修正,直到滿足精度要求。(7)對修正合格后的模型預測序列作累減生成,累減次數與之前所做累加次數相等,得到待預測年作物經濟產量預測值時間序列將上述預測方法進行新息化處理,即置入新信息^(°)("+1),同時去掉最老的信息,將x(°)={x(°)(2),...,x(°)("),x(°)("+l)}賦給x(°)={x(°)(l),;c(°)(2),...,x(°)(")},重新建立GM(l,l)模型,這樣隨著時間的推移,未來的擾動因素不斷的加入到了模型中去,使得模型具有自身新陳代謝能力,增加了預測模型的魯棒性。2.以年為時間粒度對作物環境產量的灌區環境影響因素做灰色關聯分析來選取環境主因子。環境因子包括輻射、溫度、日照、大氣環流、土壤含水量、灌水量、施肥量等,此步驟的目的是從環境因子中找出對產量影響最大的幾個環境因子,稱為環境主因子。具體步驟如下(1)將作物年產量歷史數據(即?)^盧(l),嚴②,…,x(G)(""序列)作初值化處理生成母序列Z(。),將1n年的單環境因子實測數據序列作初值化處理生成單環境因子序列義(,,),/'=1,2,...,,共考慮m個環境因子,義(,.)中的元13素個數為n,其中第j個元素表示為灌區在第j年實測的第/'個環境因子作初值化處理后的數據,這樣得到了整個無量綱化灰色關聯系統。(2)計算各環境因子的關聯系數yomaxmax|義(,,)(乂)—義(0)(')l義(,')(力—義(。)+Z7maxmax(/)—義(。)(力|maXmaX|x(,,)(_/)-義(。)(/)|為兩級最大差,為X(。)中的第個元素與Z(,,的第y個元素間的誤差絕對值,一l,2,…w,分辨率p取值于0到l開區間里的值;G)計算^與^,)的關聯度r(,。=I|>(y);W乂=1(4)按照子序列與母序列的關聯度從大到小將m個子序列排序組成關聯序,關聯序直接反映了各個子序列對同一母序列的"主次"關系,選取前m'(m、m)個因子就很方便的得到了環境產量的主因子。3.從每一年的環境因子實測數據中,提取主因子對應的環境因子實測數據,構建為w'(m、m)維的單年環境主因子實測數據序列,將其作為一個輸入樣本,則輸入層包括w'個神經元,將對應于該年的實際年單產量作為目標輸出樣本,即輸出層包括l個神經元,這樣便構成了一個樣本對。選擇ln年的樣本對作為訓練樣本,構建徑向基人工神經網絡。用待預測年的單年環境主因子實測數據序列作為網絡仿真輸入進行預測,得到作物待預測年環境產量的預測值。4.用上述方法,對n年中第1v年歷史數據預測第v+l,…,n年的經濟產量和環境產量,即用于檢驗模型的預測效果,lv。7。5.將步驟4預測的第v,v+l,…,n年的經濟產量與實際第v+l,,n14年的單產量相比較得到誤差,計算n-V+l個誤差的平方和,再求取其倒數Sl。按照同樣的方式求取第v+l,…,n年的環境產量誤差的平方和倒數S2,la=-5"2環境產量預測值與實際產。組合模型每預測一年,便將最新的經濟產量、:量值置入模型,將最舊的灰色預測模型、徑向基神經網絡模型的檢驗樣本從模型中剔除,重新計算Sl、S2、"、/,這樣一來,兩個模型的權重系數在組合模型逐年預測中不斷更新。6.將上述第1步、第3步分別得到的作物待預測年經濟產量(K)、環境產量(K)預測結果,以及第5步得到的兩者權重系數(《、")按年帶入組合模型單產量計算公式(r=ai;+y^),得到的y值即為對應年作物單產量最終預測值。在做組合模型單步預測(僅預測來年單產量)時,可以將上述方法得到的來年作物單產量最終預測值和實際值作為最新樣本帶入已有的n年歷史數據,同時n值累加計數(n=n+l),用新的歷史樣本來進行更遠未來的實施例原始數據是甘肅省某生態灌區1988年至2005年棉花單產量及部分環境因子的歷史數據(如表l所示)。表l<table>tableseeoriginaldocumentpage15</column></row><table><table>tableseeoriginaldocumentpage16</column></row><table>具體過程如下:1.對1988年至2005年歷史棉花產量數據(n=13)建立GM(l,l)灰色預測模型。擬合精度為87.7135%(假定滿足擬合精度要求,可以對經濟產量K進行預測),得到2006年經濟產量預測值為1788.0(kg/hmA2),2007年經濟產量預測值為1832.9(kg/hmA2);2.整理1988年至2005年歷史產量數據和歷史氣象環境數據(n=13),氣象環境數據含氣壓(編號為1)、生長期日均氣溫(編號為2)、濕度(編號為3)、風速(編號為4)、降水量(編號為5)共5個環境因子(m=5),以產量數據作母序列;),各個氣象環境數據分別作子序列X(2)、;)Z(4)、Z(5),進行灰色關聯分析,得到各子序列相對與母序列關聯度依次為0.56920.6卯20.75000.61360.6554,灰關聯序為&)>^2,^—^卜&)。這里選取第3、2、5個共三個('"'=3)因子(即濕度、生長期日均氣溫、年降水量)作為環境產量的主因子-,3.將上面1988年至2005年三個環境主因子的歷史數據作為輸入,對應年的棉花實際產量數據作為訓練目標,建立徑向基神經網絡模型(以徑向基神經網絡參數spread^.6為例進行實驗),對模型進行訓練。然后以待預測年(2006-2007年)的三個環境主因子數據(如表2所示)作為輸入,仿真輸出得到2006年、2007年環境產量預測值(K)分別為1568.9(kg/hmA2)、1672.5(kg/hmA2);年份生長期日均氣溫(°c)濕度(%)年降水量(imi)200624.152.359.1200723.853.658.44.用上述方法,對1988年至2005年中的前13年(1988-2000年)歷史數據預測后5年(2001-2005年)的經濟產量和環境產量,結果如表3所示;表3年份20012002200320042005經濟產量(kg/hnT2)1574.21614.21655.21697.21740.2環境產量(kg/hnT2)1620.21681.51667.21645.61596.95.對于2001年至2005年的檢驗樣本,用預測誤差平方和倒數法計算灰色預測模型與神經網絡模型的權重系數,即經濟產量與環境產量的權重a、/,結果如表4所示;'表4年份、權重20012002200320042005a、-17<table>tableseeoriginaldocumentpage18</column></row><table>6.將上述方法得到的待預測年作物經濟產量、環境產量,以及兩者權重系數帶入單產預測公式y-"K+Z^,得到2006年棉花單產量最終預測值為1602.1(kg/hmA2),2007年棉花單產量最終預測值為1696.8(kg/hmA2)。權利要求1、一種預測灌區作物單產量的方法,預測前已知n年的單產量,n之5,該方法具體如下步驟A依據1~n年的單產量,采用灰色建模方法構建灌區的經濟產量預測公式Ye(k′),k′為待預測年;步驟B依據1~n年的單產量,采用灰色關聯選取環境主因子后,使用神經網絡建模方法構建灌區的環境產量預測公式Yi(k′),k′為待預測年;步驟C確定經濟產量權重系數α和環境產量權重系數β,α+β=1,α與經濟產量預測誤差成反比,β與環境產量預測誤差成反比;所述經濟產量預測誤差定義為依據1~v年的實際單產量,按照步驟A的方式構建經濟產量修正用公式采用公式預測f=v+1,…,n年時的經濟產量,將預測結果與第v+1,…,n年的實際單產量比較,得到經濟產量預測誤差;所述環境產量預測誤差定義為依據1~v年的實際單產量,按照步驟B的方式構建環境產量修正用公式采用公式預測f=v+1,…,n年時的環境產量,將預測結果與第v+1,…,n年的實際單產量比較,得到環境產量預測誤差;其中,1《v<n;步驟D采用單產量公式Y(k′)=αYe(k′)+βYi(k′)預測灌區在第k′年的單產量。2、根據權利要求1所述的一種預測灌區作物單產量的方法,其特征在于,所述步驟A具體為ln年的單產量數據組成原始產量序列x(0)={x(0)(l),x(0)(2),...,x(0)(")},步驟A1計算x("(A)=tx(。)(/),A=1,2...,";步驟A2依據公式=(^5)—、^確定發展系數估計值5和灰作用:估計值"其中T表示矩陣轉置,<formula>formulaseeoriginaldocumentpage3</formula>步驟A3若0.5<間<0.8,則原始產量序列x(。匕x("(A),返回步驟A1;若間20.S,則對原始產量序列,)中的數據做平滑處理,返回步驟A1;若&|^0.5,進入步驟A4;步驟A4構建公式;(')(r+l)-(x(')(1)-蘭)e-戰'+S,P)(l)w(。)(1),A'為正整數;步驟A5計算精度r-l-"平均相對誤差f=J_t|^t')|,相對誤差x,')'步驟A6若精度r小于精度閾值,則在嚴重偏離點附近構建殘差序列f'(1)0t')=x("0t')-P)(",采用GM(l,l)灰色建模方法得到殘差序列s'("(A')對應的殘差估計值序列^)(",更新i(,')"(,')+s'("(",返回步驟A5;否則,進入步驟A7;步驟A7構建灌區在第A'年的經濟預測公式3、根據權利要求1所述的一種預測灌區作物單產量的方法,其特征在于,所述步驟B具體為1n年的單產量數據組成原始產量序列x(0)={;c(0)(l),x(0)(2),..-,x(0)(")},步驟Bl對原始產量序列,)M;c(。)(l),x(。)(2),…乂。)0^作初值化處理生成母序列X(。);將1n年的m個單環境因子實測數據序列作初值化處理生成子序列X(。,r=l,2,..,m,m為環境因子個數;步驟B2計算各環境因子的關聯系數<formula>formulaseeoriginaldocumentpage4</formula>l;)(_A。)(y)|為義(w中的第乂個元素與中的第乂個元素間的誤差絕對值.'步驟B3計算義(。)與;)的關聯度r(,》J力7(。<formula>formulaseeoriginaldocumentpage4</formula>步驟B4將m個環境因子按照子序列與母序列的關聯度從大到小排序,選擇前切'個環境因子作為環境產量主因子,m、w;步驟B5構建第j年的樣本對,樣本對中的輸入樣本為第j年的單年環境主因子實測數據序列,輸出樣本為第j年的實際單產量,/",2,…";步驟B6將1n年的樣本對作為訓練樣本,構建徑向基人工神經網絡;步驟B7構建灌區在第^年的環境產量預測公式《/t'):將灌區在第^年的單年環境主因子實測數據序列作為徑向基人工神經網絡的輸入,輸出即為灌區在第^'年的環境產量i;on。4、根據權利要求1所述的一種預測灌區作物單產量的方法,其特征在于,所述步驟C具體為步驟C1提取1v年的實際單產量,按照步驟A的方式預測灌區在第/"+l,…,/7年的經濟產量預測值i;(/);提取1V年的實際單產量,以及環境主因子實測數據,按照步驟B的方式預測灌區在第/^v+I,…^年的環境產量預測值i;(/);步驟C2計算第/"+l,…,"年的經濟產量預測值^(/)與第/=1;+1,...,年實際的單產量間的差值,對這些差值作平方和計算,再求取其倒數Sl;計算第/^+l,…,"年的環境產量預測值^(/)與第/"+l,…,"年實際的單產量間的差值,對這些差值作平方和計算,再求取其倒數S2;步驟C3計算經濟產量的權重系數"二^^,環境產量的權重系全文摘要本發明提供一種預測灌區作物單產量的方法,分別對經濟產量和環境產量單獨建立各自的預測模型,然后通過權重系數加權求和得到作物產量的組合預測模型。該方法弱化了不同模型各自的缺陷,使得兩個模型相互自適應的取長補短,同時也弱化了社會經濟因素或自然環境因素單方面來預測作物產量所帶來的系統分析局限性。文檔編號A01G7/00GK101480143SQ20091006063公開日2009年7月15日申請日期2009年1月21日優先權日2009年1月21日發明者乘王,玥陳申請人:華中科技大學