1. 程式人生 > >R語言學習筆記:時間序列分析

R語言學習筆記:時間序列分析

1.生成時間序列

ts()

ts(data = NA, start = 1, end = numeric(), frequency = 1, deltat = 1, ts.eps = getOption("ts.eps"), class =, names = )
data是數值向量或矩陣,資料框將被強制轉化為數值向量;start是收集資料的第一年集第一個間隔期,如2018年第1季度,start = c(2018 , 1);end指終止時間點;frequency指定資料在一年中的頻數,如月份為12,季度為4;deltat是frequency的倒數,兩者設定其一;names為命名。

可以用plot.ts()繪製時間序列圖

2.時間序列的分解

主要有4種影響因素:T(長期趨勢),S(季節變動),C(迴圈變動),e(不規則變動)

估計趨勢、季節性、不規則:

decompose()

decompose(x, type = c("additive", "multiplicative"), filter = NULL)
x是時間序列物件;type指定季節分解的形式,選擇加法模型還是乘法模型;filter是濾波係數。

stl():使用Loess方法

stl(x, s.window, s.degree = 0,...)
x是時間序列的物件;s.window為字串“periodic”或Loess方法提取季節的跨度,應為奇數值,沒有預設值;s.degree是區域性多項式擬合季節性提取的程度,0或1。

兩種方法的結果都可以用plot()進行繪製。

3.指數平滑法

HoltWinters()

HoltWinders(x, alpha = NULL, beta = NULL, gamma = NULL, seasonal = c("additive", "multiplicative"), start.periods = 2, l.start = NULL, b.start = NULL, s.start = NULL, optim.start = c(alpha = 0.3, beta = 0.1, gamma = 0.1), optim.control = list())
x是時間序列的物件;alpha、beta、gamma是過濾係數,當beta和gamma都為FALSE時,使用簡單指數平滑法(沒有趨勢,沒有季節性),當只有gamma為FALSE時,使用Holt雙引數線性指數平滑法(擬合非季節性模型),都不為FALSE時,使用Winters線性和季節性指數平滑法;seasonal選擇加法模型還是乘法模型;start.periods是初始時期,用於初始值的自動檢驗,必須大於等於2;l.start、b.start和s.start分別表示水平、趨勢和季節部分的初始值

輸出的結果中,alpha、beta和gamma分別對應當前時點的水平、趨勢部分的斜率和季節性部分,取值都在0~1,越接近1說明近期觀測值再預測中佔據的權重越大。

可用forecast()進行預測

4.殘差的白噪聲檢驗

相關圖檢驗

acf()

acf(x, lag.max = NULL, type = c("correlation", "covariance", "partial"), plot = TRUE, na.action = na.fail, demean = TRUE, ...)
x為時間序列物件,檢驗時取模型的殘差,model$residuals;lag.max指定計算自相關的最大滯後階數;type指定計算自相關係數的方式;plot表示是否繪製自相關圖。

自相關圖中,如果自相關係數迅速衰落,落入邊界內,就可能是白噪聲;若超過邊界,表示存在相關關係,在哪期落入,就是自相關的階數。

Ljung-Box檢驗

Box.test()

Box.test(x, lag = 1, type = c("Box-Pierce", "Ljung-Box"), fitdf = 0)
x是檢驗的時間序列,檢驗時取模型的殘差,model$residuals;lag指定計算相關係數的最大階數;type指明檢驗型別,使用Ljung-Box;fitdf指明自由度。

根據檢驗的P值判斷,原假設為不存在自相關。

5.ARIMA模型分析

arima()

arima(x, order = c(0, 0, 0), seasonal = list(order = c(0, 0, 0), period = NA),...)
x是單變數的時間序列;order按順序設定p,d,q的值;seasonal是季節性部分

也可以通過forecast包中的auto.arima()函式獲取恰當的模型引數,引數“ic”設定為BIC,要求較嚴格。