1. 程式人生 > >R學習筆記(2)——SARIMA模型

R學習筆記(2)——SARIMA模型

昨天做完ARIMA的模型,由於對於其中seasonal部分的不理解,外加我的用電負荷模型應該滿足一個季節特徵,因此得到建議去了解一下SARIMA模型

memo:

(1)將資料從文字檔案中讀取 : kings<-scan("adress",skip=n)  其中,adress為檔案地址,skip引數可以略去檔案中前n行的資料,注意資料在文字檔案中的排列必須為一行一個數據

(2)我們在R中使用ts()函式將資料儲存到一個時間序列物件中去:kingstimeseries <- ts(kings) 

增加引數設定birthstimeseries <- ts(births, frequency=12, start=c(1946,1)),前式為月度資料,第一個時間節點為1946年1月

(3)繪製時間序列圖:plot.ts(kingstimeseries)

(4)分解非季節性資料:在R 的"TTR" 包中的SMA()函式可以用簡單的移動平均來平滑時間序列資料。作用?

(5)分解季節性資料:我們可以使用R 中"decompose()" 函式來估計。這個函式可以估計出時間序列中趨勢的、季節性的和不規則的部分,而此時間序列須是可以用相加模
型描述的。" decompose()" 這個函式返回的結果是一個列表物件,裡面包含了估計出的季節性部分,趨勢部分和不規則部分,他們分別對應的列表物件元素名為“seasonal" 、”trend“ 、和"random” 。   

birthstimeseriescomponents < - decompose(birthstimeseries)

我們可以輸出季節性部分的估計值:> birthstimeseriescomponents$seasonal #get the estimated values of the seasonal component

(6)使用forecast. HoltWinters()返回的樣本內預測誤差將被儲存在一個元素名為"residuals" 的列表變數中。如果預測模型不可再被優化,連續預測中的預測誤差是不相關的。換句話說,如果連續預測中的誤差是相關的,很有可能是簡單指數平滑預測可以被另一種預測技術優化。

(7)ARIMA模型:差分得到平穩時間序列,對於平穩性正式的檢驗對於平穩性正式的檢驗稱作"單位根測試",可以在fUnitRoots 包中得到,可以在CRAN 中獲得fUnitRoots 包而
執行。

acf(kingtimeseriesdiff1, lag.max=20)  # plot a correlogram

acf(kingtimeseriesdiff1, lag.max=20, plot= FALSE) #get the autocorrelation values