楊 雪 李文獻
(1武漢中育科技有限公司,湖北武漢 430070;2河南龍鳳山股份有限公司,河南駐馬店463000)
我國居民飲食習慣決定國內生豬消費以“鮮肉”為主,生豬產業鏈從生豬養殖到活豬屠宰最后到豬肉產品送達餐桌,即從供應端直接到達需求端,因而影響供需平衡的生產、需求、庫存3個因素里面的庫存因素對供需調節的影響很小,由此可以假設生豬供應量約等于消費需求量。隨著我國宏觀經濟增長和居民收入水平提高,生豬價格的需求彈性越來越小,目前我國約5 500萬噸的年豬肉消費需求量,已經讓供應端的收入接近邊際成本,因此需求的剛性增加已經不足以引起強有力的價格波動進而推動新一輪豬周期的產生,只有當某一因素影響到供應端生產效率導致供應不足,才有可能引發一輪豬周期。本輪豬周期就是由于2018年8月以來非洲豬瘟疫情嚴重影響生豬生產效率,從而引發的生豬價格大幅波動,同時這也是自20世紀90年代以來6輪豬周期中價格波動最強的一次。通過分析引起本輪豬周期的主因非洲豬瘟內在邏輯對供應影響的規律,從而達到預測本輪豬周期價格規律的目的。
主因強度因子(Strength,簡稱S):根據主因的流行病學規律,分析主因發生后在未來持續作用的幾個月內每個月的作用強度。
主因時間因子(Time,簡稱T):根據生豬繁殖周期、MSY等生豬生產技術指標及主因發生后的復養時間,分析在不同生產模式下,主因發生后在未來一段時間內的生豬減產復產周期以及生豬出欄減少量的規律。
分配函數(Φ):根據主因強度因子(S)和時間因子(T)雙維度分配結果,總結主因導致的生豬出欄減少量分配至未來各月的規律的函數。
量價運算框(Operation box):分析生豬出欄減少量和生豬價格關系規律的運算模型,按輸入與輸出變量不同,可分為P-Y量價運算框(輸入實際生豬價格,輸出生豬出欄減少量估計理論值)與量價運算框(輸入預測生豬處理減少量,輸出預測生豬價格)。
廣義簡約梯度法運算框(GRG box):根據P-Y量價運算框輸出的生豬出欄減少量(Y),結合分配函數(Φ)并設定相關約束條件,通過廣義簡約梯度法(GRG)輸出最佳估計值:預測生豬出欄減少量的運算模型。
2.1.1 主因強度因子(S)分析與計算方法
強度因子主要是基于主因在一個區域發生后,在該區域的流行病學作用強度邏輯,即主因發生后影響持續M個月,每個月影響強度為βm(m=1,2,3,…,M),總強度因子(S)如列式(1):
主因作用產生后,受資金和復養信心等影響,一部分受主因作用而淘汰的產能在短時間無法復產,據此本模型將24個月內無法復產部分的強度因子記為S^sp,如列式(2):
由列式(1)和列式(2)可得:
以受主因影響能繁母豬數(X)為自變量,通過強度因子(S)參數β可以計算能繁母豬減少數(Z),
計算模型如下:
其中xi表示自變量在第i個月上的值(i=0,1,2,…,N),zt表示因變量在第t個月上的值(t=0,1,2,…,N+M-1),主因強度影響持續M個月,故因變量可在最新自變量觀測值基礎上預測至未來M-1個月的值。
該計算公式的矩陣形式可表示為:
2.1.2 主因時間因子(T)分析與計算方法
⑴生豬生產技術指標計算方法
生豬生產具有一定周期性,這也導致主因對生產產能的減產影響在時間維度上具有周期性規律,因此生豬繁育周期、MSY等生產技術指標是計算主因時間因子(T)的關鍵一環。生豬繁育從母豬繁育到育肥豬出欄具有明顯的階段性,經歷階段不同所需的繁育周期常數也不同,如列式(7) (8):
MSY指每年每頭母豬出欄育肥數,本模型基于月度數據建立,故定義MSM為每月每頭母豬出欄育肥數,用來衡量受主因減少的能繁母豬導致生豬出欄減少的效率,計算如列式(9) (10) (11) (12):
⑵不同生產模式(C)下減產復產周期(tij)的計算方法
復養時間和生產模式的不同使得生豬減產復產時間產生變化,進而影響主因時間因子(T)的計算,記:
B2的情況已包含在強度因子列式(2)的計算中,故時間因子中不再重復考慮其影響,由列式(8) (13)(14)可得:
⑶主因時間因子(T)的計算方法
時間因子主要分析不同生產模式下受主因影響后生豬減產復產的時間邏輯,參數表征主因發生后,每頭受主因影響減少的能繁母豬在未來一段時間內導致的生豬出欄減少量在每個月的分配情況。記:
根據列式(12) (17)建立Tc的計算模型如下:
其中參數γij表示第j種生產模式下 (j=1,2,3,4,5),主因發生后第i個月 (i=0,1,2,…)的時間因子。當減產未開始 (i
由列式(15)和公式2-1可計算總時間因子(T):
時間因子只考慮主因發生后24個月內可復產的情況,以可復產的能繁母豬減少數 (Znsp)為自變量,通過總時間因子(T)參數γi可以計算標豬出欄減少量(Y),計算模型如下:
其中ztnsp表示自變量在第t個月上的值 (t=0,1,2,…,N+M-1),γi表示時間因子在第i個月上所有生產模式的總值 (i=0,1,2,…,L),時間因子的作用時長(即i的最大值)取決于不同生產模式中最長減產結束時間 (L=MAX(int(t2j)),L≤24)。y_n表示因變量在第n個月上的值(n=0,1,2,…,+N+M+L-2),主因時間影響最長持續L個月,故因變量可在最新自變量觀測值基礎上預測至未來L-1個月的值。
公式2-1、2-2、2-3的矩陣形式可表示為:
2.1.3 分配函數(Φ)計算方法
主因在某一區域發生后,在該區域流行持續M個月,在這M個月內,每個月不同強度的主因同時又作為獨立的1起疫情以該月為起點對未來i個月的生豬出欄減少量造成影響。主因以上述方式構成了強度-時間雙維度的作用矩陣 (φim),由列式(1) (2) (3) (12)和公式2-2可得:
不可復產部分最長持續時間為B2≥24,可復產部分最長持續時間為L≤24,故φim的i值的最大值取B2。分配函數(Φ)為同一月份的合計影響值,需將矩陣(φim)轉換為數據序列φt,表示自第1起主因發生后第t個月的分配函數值,計算如下:
以受主因影響能繁母豬數(X)為自變量,通過分配函數(Φ)參數φ_t可以計算標豬出欄減少量(Y),計算模型如下:
其中xi表示自變量在第i個月上的值 (i=0,1,2,…,N),φt表示分配函數在第t個月上的值 (t=0,1,2,…,B2+M-1)。yn表示因變量在第n個月上的值 (n=0,1,2,…,N+B2+M-2),分配函數 (Φ)最長分配時間為B2+M-1個月,故因變量可在最新自變量觀測值基礎上預測至未來B2+M-2個月的值。
公式3-1、3-2、3-3的矩陣形式可表示為:
在2.1章節分配函數的設計中,已建立主因發生后標豬出欄減少量(Y)在之后一段時間內每個月的分配規律模型。本章節的量價運算框則構建了標豬出欄減少量(Y)與生豬價格(P)之間的運算模型,按輸入與輸出變量不同,可分為P-Y量價運算框(輸入實際生豬價格,輸出生豬出欄減少量估計理論值)與量價運算框(輸入預測生豬處理減少量,輸出預測生豬價格)。
生豬價格需求函數Q=f(P)以及豬周期起點標準豬肉年供應量的變化函數Qt=f(i)是實現量價運算的重要函數:
根據分配函數Φ(公式3-3)構建規劃求解的Y-X函數方程,采用廣義簡約梯度法(GRG)求自變量X變化情況下因變量Y的最優解,即得出預測標豬出欄減少量,使得P≥Pthr(Pthr為設定有效性篩選閾限值)條件下,GRG法計算出的最優解與2.2中由量價運算框計算出的理論值Y的相關系數最大,運算邏輯如圖2:
量價運算框與GRG運算框是本模型價格預測技術路線的核心成分,以實際價格序列數據作為輸入值,經過3步運算,可得到未來預測價格的序列數據。將輸入的序列數據分為3個不相交的集合:
訓練集:輸入模型進行運算,獲得訓練誤差;
驗證集:與訓練集相對獨立,獲得模型在該集上的預測誤差;
測試集:與訓練集和驗證集相對獨立,獲得模型在該集上的測試誤差。
本文采用3項擬合指標對模型預測結果進行評估,具體評估方案如表1:
本模型預測結果并不是靜態值,而是進行迭代計算,即模型運算結果隨輸入的實際價格數據序列的更新而更新。這種迭代設計使本模型可以盡可能接受最新的價格波動信息,對歷史預測進行糾偏。記:
本輪豬周期受2018年8月國內暴發的非洲豬瘟疫情影響,故為驗證本模型預測效果,本文選取2018年8月1日至2020年7月31日(不含節假日)的全國生豬均價日度數據作為原始數據總體(F),數據取自卓創資訊,見圖4。從總體F中抽取每月的最高價形成月度數據樣本(P,即當月生豬最高日均價)作為研究樣本,記:
價格越高,則受主因影響導致的減產越嚴重,主因對價格波動的解釋力就越強,而均價則會在一定程度上削弱主因的解釋力,故本文研究樣本的選擇使用最高價而不是均價。
對多組α與β取值進行評估篩選,最終確定值為

表1 預測評估指標及方法
生豬繁育周期常數及生產技術指標如下:

表2 生產技術指標
將上述參數代入公式3-3得出分配函數,分配函數曲線近似正偏態分布曲線,上升段短而快,下降段長而緩,如圖5。
依據生豬行業的歷史數據及國家統計公布的人口數據,可得量價運算框涉及常數q=75%,w=110 kg,Pop=14億,同時對參數θ多組取值進行評估篩選,最終確定最優值θ=2.5。公式4-1、4-2和4-3引用本團隊另一研究結果:
將生豬價格樣本數據(P)與上述參數值輸入P-Y量價運算框,可計算出標豬出欄減少量(Y)。但是本模型是建立在主因導致產能減少進而影響價格波動的理論基礎上的,忽略了影響價格波動的其他因素,如季節性需求變化和突發事件等。因此生豬價格(P)通過P-Y量價運算框計算出的每月標豬出欄減少量(Y),與本模型涉及的受主因影響的每月標豬出欄減少量之間存在偏差。當主因的解釋力越強時,這種偏差就越小,本模型的預測性就越強,因此需要對Y進行有效性篩選,進而得出受主因影響的標豬減產量的最佳估計。
有效性篩選以生豬價格閾限為標準,假設P≥Pthr時,主因對價格波動的解釋力最高,其他因素的影響幾乎可以忽略不計。分析2006年6月至2018年7月3輪豬周期的價格波動,生豬價格的最高點都在20元/kg左右,而本輪豬周期生豬價格超過歷史高位20元/kg,則假設Pthr=20。
將Y與有效性篩選閾值Pthr=20輸入GRG運算框,參考國內能繁母豬存欄情況限定自變量X的取值范圍為10≤X≤800(單位:萬頭),計算出Y的最佳估計。
為比較多次迭代結果變化,將不同時間更新的樣本數據(Pi)輸入模型,得出2019年12月(i=16)至2020年7月(i=23)共8次迭代計算的結果,如圖7。
多次迭代計算結果在MAE、MAPE、MSE和RMSE指標上均達到檢驗標準,在訓練集上計算的r和R2也均大于0.95,驗證集由于受樣本量限制(n<8)沒有表現出線性相關性,計算的r和R2參考性不大。見表3。
本模型試驗測試過程使用的數據來源于卓創資訊,目前國內生豬價格統計數據來源眾多,不同數據來源可以得到不同的預測結果,但只要原始數據統計標準一致就不影響模型趨勢的預測。由于當前數據樣本有限,模型測試時使用的訓練集為全部樣本數據,暫無其他數據集作為驗證集與測試集進一步檢驗模型效果,因此由訓練集計算出的評估指標值存在“過度擬合”的可能(即訓練誤差低估實際預測誤差),無法完全表征本模型對未來價格的預測效果好壞。但是后期的模型迭代計算設計將彌補這一問題,使預測值隨迭代更新。

表3 預測結果檢驗與評估
本模型使用的參數α、β和θ取值的篩選過程,限于本文篇幅,不在此詳細闡述,后續再對參數估計過程進行解釋。
本模型量價運算框中應用需求函數及其反函數(公式4-1、4-2)的價格范圍是12≤P≤40,當生豬價格超過這一數據范圍時,會產生模型鈍化。本輪豬周期實際預測過程中,超出定義范圍的價格出現次數很少,因此不影響模型整體的預測效果。
本模型量價運算框在推導標豬數量對應豬肉產量時,標豬的體重(w)按110 kg計算,模型雖然最后通過2次量價運算框的計算(P-Y量價運算框與量價運算框)將這一因素抵消,從而不影響預測價格的趨勢,但w會使預測價格的絕對值偏大或偏小。我們將繼續研究價格與銷售體重的最佳銷售經濟模型,以進一步消除預測誤差。
本模型GRG運算框采用的有效性篩選閾值Pthr=20,該閾值的選擇是存在決策誤差的,但后期我們將根據數據量的增加,不斷地校正這一因素,以減少決策誤差。
本模型除主因影響外,只考慮宏觀剛性需求的變化(公式4-3),未考慮季節性因素和突發性因素(如2020年新冠肺炎疫情)對豬肉消費的影響,因此預測價格對這2個因素產生的波動不敏感,當相關事件發生時預測值的絕對誤差會偏大,但當這一事件結束時,模型將自行校正,因此不影響長期趨勢的預測。如圖7所示的多次迭代計算結果,受新冠肺炎疫情影響,2019年底至2020年初期間,雖然主因導致的減產因素仍然存在,但這一時期需求同時被抑制,導致生豬價格未能表現出主因的真實影響,主因影響被低估,于是預測價格出現整體偏低。隨著新冠肺疫情得到控制,需求恢復,模型自動對前期預測進行校正,使得2020年7月迭代計算結果高于前期預測,因此本模型應用的預測價格通常采用最新迭代計算結果。我們后期將繼續研究季節因素對需求的影響,以減少該因素產生的預測誤差。
本模型只適用于分析本輪豬周期起因(非洲豬瘟)引起的減產因素對價格波動的影響,當非洲豬瘟因素結束或者生豬價格低于20元/kg時,本模型就不具備預測性,則需應用其他模型進行價格預測。