拓端tecdat|R語言ARIMA、GARCH 和 VAR模型估計、預測ts 和 xts格式時間序列
原文連結:http://tecdat.cn/?p=25180
原文出處:拓端資料部落公眾號
時間序列分析
對於時間序列分析,有兩種資料格式:ts(時間序列)和xts(可擴充套件時間序列)。前者不需要時間戳,可以直接從向量轉換。後者非常重視日期和時間,因此只能使用日期和/或時間列來定義。我們涵蓋了基本的時間序列模型,即 ARMA、GARCH 和 VAR。
時間序列資料
函式ts將任何向量轉換為時間序列資料。
- price
我們首先為估計定義一個時間序列(ts)物件。請注意,ts與xts類似,但沒有日期和時間。
- df <- ts(df)
- df
可擴充套件的時間序列資料xts
要處理高頻資料(分秒),我們需要包xts。該包定義可擴充套件時間序列 (xts) 物件。
以下程式碼安裝並載入xts包。
library(xts)
考慮我們的可擴充套件時間序列的以下資料
- date
- time
- price
現在我們準備定義xts物件。程式碼as.POSIXct()將字串轉換為帶有分鐘和秒的日期格式。
- df <-data.frame
- df$daime <-paste
- df$dttime <-as.POSIXct
- df <- xts
對於僅使用日期的轉換,我們使用POSIXlt()而不是POSIXct()。
- df$date <- as.POSIXct
- df$price <-as.numeric
- price <-xts
自迴歸移動平均模型arima
可以使用arima()函式估計自迴歸移動平均模型。
以下程式碼估計了一個 AR(1) 模型:
- AR1
以下程式碼估計了一個 AR(2) 模型:
- AR2 <- arima
- AR2
以下程式碼估計一個 MA(1) 模型:
- MA1 <- arima
- MA1
以下程式碼估計一個 MA(2) 模型:
MA2 <- arima
以下程式碼估計了一個 ARMA(1,1) 模型:
ARMA11 <- arima
有時,我們只想保留係數。
coef #得到係數
以下程式碼顯示了殘差圖。
plot
R 有一個方便的函式來autofit() 擬合ARIMA 模型的引數。
現在尋找最好的 ARIMA 模型了。
autoarma
時間序列模型的一項重要功能是預測。以下程式碼給出了兩步的預測:
teFoast <-predict
下面顯示了預測圖。
plot.ts#視覺化預測
ARCH 和 GARCH模型
要估計 ARCH 和 GARCH 模型,我們需要安裝和載入包rugarch。
我們將在生成隨機數時使用 ARMA(1,1) 估計 GARCH(1,1)
- a <- runif #隨機數
- Spec <-ugarchspec
為了獲得 GARCH 模型的具體結果,我們使用以下程式碼:
- coffnt <-coef
- voy <- sigma
- logr.vrae <- uncvariance
VAR模型
以下資料將用於估計 VAR 模型。
要估計 VAR 模型,我們需要安裝和載入vars。
以下程式碼估計 VAR(2) 模型。
- abr<-VAR #執行 VAR(2)
- coef #VAR的係數公式
summary #VAR的摘要
要生成係數圖,我們需要安裝並載入包:
以下程式碼為 VAR 模型生成係數圖:
plot
最受歡迎的見解
1.在python中使用lstm和pytorch進行時間序列預測
2.python中利用長短期記憶模型lstm進行時間序列預測分析
8.r語言k-shape時間序列聚類方法對股票價格時間序列聚類
▍關注我們 【大資料部落】第三方資料服務提供商,提供全面的統計分析與資料探勘諮詢服務,為客戶定製個性化的資料解決方案與行業報告等。 ▍諮詢連結:http://y0.cn/teradat ▍聯絡郵箱:[email protected]