非平稳序列的确定性分析
非平穩序列的分析方法:
{確定性時序分析隨機性時序分析{確定性時序分析隨機性時序分析
由確定性因素導致的非平穩通常顯示出明顯的規律性
可以分解為4大類因素:
1、長期趨勢
2、循環波動(or交易日因素)
3、季節性因素
4、隨機波動
因素之間的相互作用模式:
加法模型:xt=Tt+Ct+St+Ttxt=Tt+Ct+St+Tt
乘法模型:xt=Tt×Ct×St×Ttxt=Tt×Ct×St×Tt
分析目的:
一、 趨勢分析
1、趨勢擬合法
找到序列中的趨勢,利用這種趨勢對未來做預測
①線性擬合
線性模型:
ItIt為隨機波動
利用 lm( ) 函數擬合線性趨勢 #讀入數據 x<-c(8444,9215,8879,8990,8115,9457,8590,9294,8997,9574,9051,9724,9120,+ 10143,9746,10074,9578,10817,10116,10779,9901,11266,10686,10961,10121,+ 11333,10677,11325,10698,11624,11502,11393,10609,12077,11376,11777,+ 11225,12231,11884,12109) #構造時間變量 t<-c(1:40) x.fit<-lm(x~t) summary(x.fit) x<-ts(x) plot(x,lwd=2.5) abline(lm(x~t),col="red",lwd=3)
②曲線擬合
對曲線模型估計時,應通過變換將其轉換為線性模型,再用最小二乘估計,用 lm( ) 函數擬合;
不能轉換的就用迭代法估計,用 nls()函數
例如,下面的例子,對1949-2008年的化肥產量進行曲線擬合:xt=a0+a1t+a2t2xt=a0+a1t+a2t2
a=read.table("D:\\Backup\\桌面\\R\\時間序列分析--基于R\\data\\file12.csv",sep = ",",header = T) x<-ts(a$output,start = 1949) plot(x)
時序圖顯示有明顯的曲線遞增趨勢。
可見,兩個函數的擬合結果一樣:
xt=319.0225?57.7690t+2.3551t2+εt,εt~N(0,2632)xt=319.0225?57.7690t+2.3551t2+εt,εt~N(0,2632)
繪制非線性擬合圖:
y<-predict(x.fit2) #將nls得到的擬合值賦給y y<-ts(y,start = 1949) plot(x,type="p") lines(y,col=2,lwd=2.5)2、平滑法
①移動平均法
用一定時間間隔內的加權平均值作為下一期的預測值,權重為 1n1n,說明無論時間遠近,過去的 n 期對下一期的影響是一樣的。
如:在一個有30個序列值得時間序列當中,假如用4期的的加權平均值預測第31期,那么x^30(1)=x30+x29+x28+x27+x265x^30(1)=x30+x29+x28+x27+x265
如:對北京1949-2008年的每年最高氣溫序列做5期移動平均擬合
library(TTR) a=read.table("D:\\Backup\\桌面\\R\\時間序列分析--基于R\\data\\file6.csv",sep = ",",header = T) x<-ts(a$temp,start = 1949) x.ma<-SMA(x,5) plot(x,type="o",lwd=1.5) lines(x.ma,col=2,lwd=2.5) legend(locator(1),cex=0.75,x.intersp=0.3,xjust = 0,yjust = 1, text.width=17,inset=5,c("觀察值序列","5期移動平均擬合值序列"),lty = c(1,1),col = c("black","red"))②指數平滑法
在實際當中,大多數是近期對現在的影響較大,遠期對現在的影響較小,所以在指數平滑法中各期權重隨時間間隔的增大而減小
- 簡單指數平滑:
x^t(1)=x~t=αxt+(1?α)x~t?1x^t(1)=x~t=αxt+(1?α)x~t?1,指定x~0=x1x~0=x1,變化緩慢的序列,取較小的 α 值,反之取較大的 α 值。
只能做1期預測
Holt兩參數指數平滑
適用于含有線性趨勢的序列
思想:假定序列有較固定的趨勢–每期都遞增or遞減 r ,那么第 t 期的 估計值就等于前一期的值加上固定的趨勢變動值 r。但 r 不是固定的,是一個隨機序列rtrt 。Holt三參數指數平滑
適合序列既含有趨勢又含有季節
利用 HoltWinters( ) 函數做平滑趨勢擬合
例如:對每頭奶牛月產量序列做3參數指數平滑,并預測未來兩年產量
b<-read.table("D:\\Backup\\桌面\\R\\時間序列分析--基于R\\data\\file5.csv",sep = ",",header = T) x<-ts(b$milk,start = c(1962,1),frequency = 12) x.fit<-HoltWinters(x) plot(x.fit) legend(locator(1),cex=0.75,x.intersp=0.3,xjust = 0,yjust = 1, text.width=5,inset=5,c("觀察值序列","Holt三參數指數平滑序列"),lty = c(1,1),col = c("black","red")) #預測序列并繪制預測效果圖 x.fore<-forecast(x.fit,h=24) plot(x.fore,main = "HoltWinters三參數指數平滑序列預測圖")二、 季節效應分析
有周期性變化的事件—-季節效應
例如:第 i 年第 j 個月的氣溫:
季節指數: Sj=各月平均氣溫總平均氣溫Sj=各月平均氣溫總平均氣溫,>1說明該月的值高于平均值,=1沒有明顯的季節效應
三、綜合分析
分析既有趨勢變動又有季節效應的序列
模型:
加法模型:xt=Tt+St+Ttxt=Tt+St+Tt
乘法模型:xt=Tt×St×Ttxt=Tt×St×Tt
利用函數decompose(x,type= )進行確定性因素分解。
type=”additive”,加法模型,默認
type=”mult”,乘法模型
例:對1993-2000年中國消費品零售總額序列進行確定性因素分解
c<-read.table("D:\\Backup\\桌面\\R\\時間序列分析--基于R\\data\\file14.csv",sep = ",",header = T) x<-ts(c$sales,start = c(1993,1),frequency = 12) plot(x) x.fit<-decompose(x,type = "mult") plot(x.fit)輸出季節指數圖
plot(x.fit$figure,type="o")
可見,在冬天零售總額偏高
總結
以上是生活随笔為你收集整理的非平稳序列的确定性分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数字图像处理 冈萨雷斯 (第四版) 比
- 下一篇: 数据分析(Data Analysis)