[摘 要] 文章運用MATLAB軟件中的一些時間序列建模方法及回歸分析方法對某商品的季度銷售額作了預測分析,得到了較高的預測精度,在實際應用中預測值的準確對于指導商家的戰略決策起著重要作用。
[關鍵詞] 時間序列 回歸模型 D—W檢驗 MATLAB
一、問題提出
某公司(記為A)想用全行業的銷售額作為自變量來預測公司的銷售額,表1給出了1977年~1981年公司銷售額和行業銷售額的分季度數據(單位:百萬元)。
表1A公司的公司銷售額和行業銷售額的分季度數據(單位:百萬元)
二、問題分析及建立模型
1.問題分析
表1的數據是以時間序列為序的,稱為時間序列。由于公司銷售額和行業銷售額等經濟變量均有一定的滯后性,因此,在這樣的時間序列數據中,同一變量的順序觀測值之間出現相關現象(稱自相關)是很自然的。然而,一旦數據中存在這種自相關序列,如果仍采用普通的回歸模型直接處理,將會出現不良后果,其觀測也會失去意義,為此,我們必須先來診斷數據是否存在自相關,如果存在,就要考慮自相關關系,建立新的模型。
2.基本回歸模型的建立
記該公司的行業銷售額為xt,公司銷售額為yt,t=1,2,……,n(=20)。因變量yt與自變量xt的散點圖見圖1。MATLAB繪圖命令如下:
x=[127.3 130.0 132.7 129.4 135.0 137.1 141.2 142.8 145.5 145.3 148.3 146.4 150.2 153.1 157.3 160.7 164.2 165.6 168.7 171.7];
y=[20.96 21.40 21.96 21.52 22.39 22.76 23.48 23.66 24.10 24.01 24.54 24.30 25.00 25.64 26.36 26.98 27.52 27.78 28.24 28.78];
plot(x,y,'+')
從圖1可以看出,隨著行業銷售額的增加,公司銷售額也增大,而且兩者有很強的線性關系,因此可以建立線性回歸模型
(1)
模型(1)中除了行業銷售額外,影響的其他因素的作用包含在隨機誤差內,這里假設(對t)相互獨立,且服從均值為零的正態分布,t=1,2,……,n.
根據表1的數據,對模型(1)直接用MATLAB統計工具箱求解,得到的回歸系數估計值及其置信區間(置信水平)、檢驗統計量R2,F,P的結果見表2。其中MATLAB命令如下(其中b是參數估計值、bint是置信區間、r是殘差、stats檢驗統計量):
X=[ones(20,1),x];
[b,bint,r,rint,stats]=regress(y,X)
表2 模型(1)的計算結果
將參數估計值代入模型(1)得到
(2)
結果分析:表2顯示,R2=1指因變量yt幾乎100%可由模型確定,F值遠遠超過F檢驗的臨界值,p遠小于,可以計算剩余標準差僅為0.081。因而模型(2)從整體上看是可用的。
用MATLAB中rstool命令也可得到相應的結果,在rstool交互式畫面中點擊左下方的Export,可輸出模型的統計結果,如剩余標準差s=0.081。如果求解的是純二次模型或其他二次模型,只要在Export下方窗口的下拉菜單中選取即可。求解的MATLAB命令如下:
rstool(x,y,'linear');%產生的交互式畫面見圖2。
3.自相關性診斷與處理方法
從表面上看得到的基本模型(2)的擬合度非常之高(R2=1),應該很滿意了。但是,這個模型沒有考慮到我們的數據是一個時間序列。實際上,在對時間序列數據作回歸分析時,模型的隨機誤差項有可能存在相關性。違背模型關于(對t)相互獨立的基本假設。為了對的自相關性作定量診斷,并在確診后得到新的結果,我們考慮如下模型:
(3)
其中是自相關系數,相互獨立且服從均值為零的正態分布。
模型(3)中若,則退化為普通的回歸模型;若,則隨機誤差存在正的自相關;若,則隨機誤差存在負的自相關。大多數與經濟有關的時間序列數據,在經濟規律作用下,一般隨著時間的推移有一種向上或向下變動的趨勢,其隨機誤差表現出正相關性。
D—W檢驗是一種常用的診斷自相關現象的統計方法。首先根據模型(2)得到的殘差,計算DW統計量如下:
(4)
其中n是觀察值個數,殘差為隨機誤差的估計值。當n較大時,
(5)
而(5)式右端正是自相關系數的估計值,于是
(6)
由于,所以,并且,若在0附近,則DW在2附近,的自相關性很弱;若在附近,則DW接近0或4,的自相關性很強。
要根據DW的具體數值確定是否存在自相關,應該在給定的檢驗水平下,依照樣本容量和回歸變量數目,查D—W分布表,得到檢驗的臨界dL和dU,然后由表3中DW所在的區間來決定。
表3 與DW值對應的自相關狀態
4.加入自相關后的模型
根據(4)式可計算出DW=0.7347,對于顯著性水平,查D—W分布表,得到檢驗的臨界值dL=0.95和dU=1.15,現在DW
作變量變換:
(7)
則模型(3)化為:
(8)
其中:
以的估計值代入(7)式作變換,利用變換后的數據估計模型(8)的參數,得到的結果見表4,可以得到其剩余標準差為0.067. 求解的MATLAB命令如下:
x1=zeros(19,1);y1=zeros(19,1);
for i=1:19
x1(i)=x(i+1)-0.6326*x(i);y1(i)=y(i+1)-0.6326*y(i);end
X1=[ones(19,1),x1];
[b,bint,r,rint,stats]=regress(y1,X1)
表4模型(8)的計算結果
對模型(8)也作一次自相關檢驗,即診斷隨機誤差是否還存在自相關,從模型(8)的殘差可計算出,對于顯著性水平以及時,檢驗的臨界值為,故,所以可以認為隨機誤差不存在自相關。因此經變換(7)所得到的回歸模型(8)是適用的。
最后,將模型(8)中的和還原為原始變量和,得到結果為:
(9)
三、結果分析及預測
從機理上看,對于帶滯后性的經濟規律作用下的時間序列數據,加入自相關的模型(9)更為合理,而且在本例中,衡量與實際數據擬合程序的指標——剩余標準差從模型(2)的0.081減少到0.0671。當用模型(9)對公司的銷售額yt作預測時,先估計未來的全行業銷售額xt,比如,設t=21時,xt=174.1,容易由模型(9)得到=29.1860。
參考文獻:
[1]姜啟源謝金星葉俊:數學模型(第三版)[M].北京:高等教育出版社,2003:316—322
[2]王向東戎海武文翰:數學實驗[M].北京:高等教育出版社,2004:252—259
[3]徐國樣:統計預測和決策(第二版)[M].上海:上海財經大學出版社,2005:61—169
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”